Bug 699850 (asyncHistory)

[meta] Refactor all synchronous history APIs to use async Storage APIs

RESOLVED FIXED in Firefox 62

Status

()

defect
P2
normal
RESOLVED FIXED
8 years ago
Last year

People

(Reporter: mak, Unassigned)

Tracking

(Blocks 2 bugs, {meta, perf})

unspecified
mozilla62
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(firefox62 fixed)

Details

(Whiteboard: [snappy:p1] [tracking][qf:meta])

Reporter

Description

8 years ago
All of the history APIs used in browsing and Sync are already async, we should remove and replace all the remainig synchronous APIs. This may require some deep test rewriting, but we can do fake-sync wrappers for that.
Alias: asyncHistory
Assignee: nobody → dteller
I'll take it, but I'll need some help to get started.
Reporter

Comment 2

8 years ago
I think you choose the hardest one, this will have to be splitted in a lot of smaller bugs, but don't want to scare you :)
History changes (in form of visits addition or removal) in the browser UI are already using async APIs, but we have to convert all of nsIBrowserHistory and nsINavHistoryService (there also other interfaces, but those are mostly dependent on these and should be done later).

A first dependent bug may be to deprecate addVisit and addPageWithDetails, that are used in a LOT of tests, to avoid rewriting all the tests we can likely write an addVisit wrapper that uses updatePlaces async API and spin the events loop till we get the callback. We should push people toward updatePlaces API.
Related to this, we should rewrite the importExport service (bug 482911), hsivonen wanted to do that but he's likely really busy.

If we kill any possibility to add visits synchronously, we can likely start converting nsIBrowserHistory the other methods, like removals.

If you prefer starting from a smaller project, Favicons service has to be finished (is partially async) and has less connections to other services.
Bug 672681 is another interesting entry point.
Reporter

Comment 3

8 years ago
hm I said the importExport service, but I meant the migrators, whatever uses addPageWithDetails.
De-assigning myself in case someone wants to take it. Otherwise, I will eventually return to it.
Assignee: dteller → nobody
Reporter

Updated

8 years ago
Reporter

Updated

7 years ago
Depends on: 739217
Reporter

Updated

7 years ago
Depends on: 739218
Reporter

Updated

7 years ago
No longer blocks: placesSessionID
Reporter

Updated

7 years ago
Depends on: 739219
Reporter

Comment 5

7 years ago
This is basically a tracking bug, so making it properly that.
Keywords: meta
Whiteboard: [snappy]

Updated

7 years ago
Whiteboard: [snappy] → [snappy:p1]
Reporter

Updated

7 years ago
Depends on: 615213
Reporter

Updated

7 years ago
No longer depends on: 739217

Updated

7 years ago
Depends on: 648232

Updated

7 years ago
Blocks: 648232
No longer depends on: 648232
Reporter

Updated

7 years ago
Depends on: 834457
Reporter

Updated

7 years ago
Depends on: 834539
Reporter

Updated

7 years ago
Depends on: 834541
Reporter

Updated

7 years ago
Depends on: 834543
Reporter

Updated

6 years ago
No longer depends on: 700250
Reporter

Updated

6 years ago
Depends on: placesSessionID
Reporter

Updated

6 years ago
Depends on: 846635
Reporter

Updated

6 years ago
Depends on: 846636
Reporter

Updated

6 years ago
Depends on: 846644
Depends on: 854925
Depends on: 854927
Depends on: 860625
Depends on: 870581
No longer depends on: 870581
Reporter

Updated

6 years ago
Whiteboard: [snappy:p1] → [snappy:p1][triage]
Whiteboard: [snappy:p1][triage] → [snappy:p1]
Whiteboard: [snappy:p1] → [snappy:p1] [tracking]
Reporter

Updated

5 years ago
Blocks: OMTPlaces
No longer blocks: fxdesktopbacklog
Reporter

Updated

5 years ago
No longer blocks: StorageJank
Reporter

Updated

5 years ago
Depends on: 1089332
Reporter

Updated

5 years ago
Depends on: 1090312
Reporter

Updated

5 years ago
No longer depends on: 1089332
Reporter

Updated

5 years ago
Depends on: 1090961
Reporter

Updated

5 years ago
Depends on: 1091851
Reporter

Updated

4 years ago
Priority: -- → P1
Reporter

Updated

4 years ago
Keywords: perf
Reporter

Updated

2 years ago
Depends on: 1350377
Reporter

Updated

2 years ago
Depends on: 1354531
Whiteboard: [snappy:p1] [tracking] → [snappy:p1] [tracking][qf:meta]
Reporter

Updated

2 years ago
Depends on: 1365913
Reporter

Updated

2 years ago
Priority: P1 → P5
Summary: Refactor all synchronous history APIs to use async Storage APIs → [meta] Refactor all synchronous history APIs to use async Storage APIs
Reporter

Updated

Last year
Blocks: 1365913
No longer depends on: 1365913
Reporter

Updated

Last year
Priority: P5 → P2
Reporter

Updated

Last year
Depends on: 1459856
Reporter

Updated

Last year
Blocks: 1458910
Reporter

Comment 6

Last year
And... 1 is gone.
Status: NEW → RESOLVED
Closed: Last year
Resolution: --- → FIXED
Target Milestone: --- → mozilla62
mak, is this something you'd like to note for 62 release?
Flags: needinfo?(mak77)
Maybe on MDN and not in the release notes. Let me know what you think.
Reporter

Comment 10

Last year
(In reply to Liz Henry (:lizzard) (needinfo? me) from comment #8)
> mak, is this something you'd like to note for 62 release?

It's mostly an internal detail, the most common operations were already converted in the past, this changed a few remaining APIs that are less often used (but still, when you hit one of these the jank is unprodictable).

I don't think it's facing users so easily to deserve a relnote.
Flags: needinfo?(mak77)
You need to log in before you can comment on or make changes to this bug.