Move (push|pop|flush)PrefEnv logic into the parent process
Categories
(Testing :: Mochitest, task, P2)
Tracking
(Fission Milestone:M4, firefox69 fixed)
Tracking | Status | |
---|---|---|
firefox69 | --- | fixed |
People
(Reporter: kmag, Assigned: kmag)
References
Details
Attachments
(1 file)
Bug 1541557 fixes most of the pref env issues related to OOP frames, but there are still a few remaining. In particular:
-
There is some test harness code that expects
flushPrefEnv
to flush any preference environments, no matter which SpecialPowers instance they were created in. The works at the moment (mostly, and mostly by accident) for any SpecialPowers instances in the same process as the instance thatflush
is called in, but not for instances in remote processes. -
The
pushPrefEnv
code reads the current value of the preference in the child process to determine which value to restore. Unfortunately, there are some preferences whose changed values are never propagated to content processes, only their original values, which may lead to strange issues when used with this API. This is to say nothing of races. -
In some cases, when one of the issues in #2 arises, we may not get a preference observer notification for one of the preference changes, in which case the API will continue waiting forever for its changes to take effect, and will not resolve its returned promises, leading to hard-to-diagnose test timeouts.
-
This code is all horrendously complex, and difficult to maintain.
And, while not strictly related to fission, there's also,
- As reported in bug 1557397, when the API believes that all of the preferences it is asked to change have their required values, it returns immediately, without pushing anything onto the undo stack, leading the next
popPrefEnv
call to pop the wrong environment off of the stack, causing any number of arcane bugs to popup.
Assignee | ||
Comment 1•6 years ago
|
||
Updated•6 years ago
|
Updated•6 years ago
|
Updated•6 years ago
|
Updated•6 years ago
|
Updated•6 years ago
|
Assignee | ||
Comment 2•6 years ago
|
||
Assignee | ||
Comment 3•6 years ago
|
||
Assignee | ||
Comment 4•6 years ago
|
||
Comment 6•6 years ago
|
||
bugherder |
![]() |
||
Comment 7•6 years ago
|
||
Backed out 34 changesets (bug 1561150, bug 1541557, bug 1561724, bug 1561999, bug 1558298, bug 1561061, bug 1532795, bug 1560400, bug 1561122) for beta simulation failures (bug 1563905, bug 1564001):
https://hg.mozilla.org/mozilla-central/rev/7e6657f88b7694ecd841088963ff71d767e4ec22
![]() |
||
Comment 8•6 years ago
|
||
Relanded (backout got backed out):
https://hg.mozilla.org/mozilla-central/rev/e596664275d5e3e2fdcb7fa8d1447289f99269c3
Description
•