Make bookmark merges fully abortable
Categories
(Firefox :: Sync, task, P1)
Tracking
()
Tracking | Status | |
---|---|---|
firefox70 | --- | fixed |
People
(Reporter: lina, Assigned: lina)
References
(Blocks 1 open bug)
Details
Attachments
(2 files)
We have an AbortController
on the Rust side that we can use to abort a merge, but it's only triggered at shutdown. Additionally, it's not currently possible to interrupt fetching records or notifying observers, both of which can be pretty expensive (see bug 1561467, in particular, that notifying observers took 18 seconds in one case. I think our use of Async.jankYielder
means that we might wait for longer periods).
A while ago, Mark suggested having a watchdog timer automatically abort merges that take longer than a few minutes. 5 feels like a good starting point.
Assignee | ||
Comment 1•5 years ago
|
||
This commit changes mozISyncedBookmarksMerger.merge
to return a
cancelable operation, and adds an abort signal
option to
SyncedBookmarksMirror.apply
. Aborting the signal's
AbortController
, or finalizing the mirror, interrupts the merge.
Assignee | ||
Comment 2•5 years ago
|
||
This commit introduces a new Watchdog
class that signals an abort,
either after a delay or at shutdown, and wires up the buffered engine
to use it.
Depends on D41310
Updated•5 years ago
|
Updated•5 years ago
|
Comment 4•5 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/9f104a3a1304
https://hg.mozilla.org/mozilla-central/rev/595541e822af
Description
•