L10nRegistryService._synchronizeSharedData does not flush until the main thread is idle
Categories
(Core :: Internationalization, defect, P1)
Tracking
()
Tracking | Status | |
---|---|---|
firefox79 | --- | fixed |
People
(Reporter: bugzilla, Assigned: bugzilla)
References
(Blocks 1 open bug)
Details
(Whiteboard: [geckoview:m80])
Attachments
(4 files)
L10nRegistryService._synchronizeSharedData()
ends up calling mozilla::dom::ipc::WritableSharedMap::Set
which sets a value in the map but does not immediately flush; instead it calls the private WritableSharedMap::KeyChanged
method which queues up an idle-priority runnable to flush.
AFAICT this is what is causing various intermittent test failures in browser_resource_uri.js
: the setting up of the mock source will not make it to the content process at the correct time if the parent main thread never gets a chance to sit idle.
Preallocation of content processes makes it less likely that the main thread will idle, since it doesn't need to wait for a new content process to start.
Assignee | ||
Comment 1•4 years ago
|
||
Setting a key/value pair on the parent process message manager's sharedData
initiates a pending runnable that runs at idle priority. If the current
thread never gets a chance to idle, then those registry changes will never be
synchronized.
This patch adds an explicit flush so that _synchronizeSharedData
does indeed
actually synchronize.
Assignee | ||
Updated•4 years ago
|
Updated•4 years ago
|
Assignee | ||
Comment 2•4 years ago
|
||
Now that the L10nRegistry
source registration APIs accept arrays, we modify
this code to work with the revised signature.
Depends on D81243
Assignee | ||
Comment 3•4 years ago
|
||
Depends on D81390
Assignee | ||
Comment 4•4 years ago
|
||
Depends on D81391
Comment 6•4 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/35cf713e8854
https://hg.mozilla.org/mozilla-central/rev/b8feea0d2f5a
https://hg.mozilla.org/mozilla-central/rev/15afb002fb3b
https://hg.mozilla.org/mozilla-central/rev/0a4b3f99d2d1
Description
•