Require SHIP on desktop even when Fission is disabled
Categories
(Core :: DOM: Navigation, task)
Tracking
()
Tracking | Status | |
---|---|---|
firefox114 | --- | fixed |
People
(Reporter: nika, Assigned: peterv)
References
(Blocks 2 open bugs, Regressed 2 open bugs)
Details
Attachments
(5 files, 1 obsolete file)
Currently code which has to deal with session history is considerably more complex, due to needing to support both SHIP and non-SHIP configurations. We haven't managed to ship SHIP everywhere yet (bug 1736121), and Android still runs with SHIP and Fission disabled by default, however we have been shipping Fission (which requires SHIP) by default on Desktop for the last year.
We could consider forcing SHIP on for Desktop even when Fission is disabled in order to allow us to remove the non-SHIP codepath from desktop-only code such as sessionstore, which could be a substantial reduction in complexity for that code.
Reporter | ||
Comment 1•2 years ago
|
||
This will allow us to stop handling the non-SHIP case in desktop-only code. It
shouldn't impact release users, as we have been shipping Fission (which
requires SHIP) on desktop by default for a year. SHIP is not enabled on
Android, as supporting it is still WIP.
Reporter | ||
Comment 2•2 years ago
|
||
In part 1, SHIP was enabled by-default on desktop, meaning that the
SessionStore code no longer needs to handle SHIP being disabled. This allows us
to rip out a large chunk of sessionstore code which was non-SHIP-only.
Depends on D163880
Reporter | ||
Comment 3•2 years ago
|
||
Depends on D163881
Reporter | ||
Comment 4•2 years ago
|
||
In part 1, SHIP was enabled by default outside of Android. As browser
mochitests are only run on desktop, this means that we no longer need to handle
non-SHIP cases when running browser mochitests.
Depends on D163882
Reporter | ||
Comment 5•2 years ago
|
||
Posted some patches doing an initial version of this. Not sure if they're good enough to land (especially the test runner python, which I'm not super familiar with), and just doing a first-pass try push right now. https://treeherder.mozilla.org/jobs?repo=try&revision=65a3af70a8b902f5d2f6722e6c6ce0407cf66fd7
Assignee | ||
Comment 6•2 years ago
|
||
This will fail a bunch of tests which I have actual fixes for (chrome tests, xpcshell tests, WPT annotations, …). Here's ùy try push from last week with the relevant fixes: https://treeherder.mozilla.org/jobs?repo=try&revision=14cd27e001b451f487e72730bcd1f09bbdd6eac9
Updated•2 years ago
|
Assignee | ||
Comment 7•2 years ago
|
||
Updated•2 years ago
|
Assignee | ||
Comment 8•2 years ago
|
||
Depends on D172277
Comment 11•2 years ago
|
||
Backed out for causing multiple failures.
Backout link: https://hg.mozilla.org/integration/autoland/rev/c6a53f72103446c7268d949b93bff949e4b931ea
Failure log -> TEST-UNEXPECTED-FAIL | dom/tests/mochitest/chrome/test_focus.xhtml | Test timed out
Comment 12•2 years ago
|
||
Comment 13•2 years ago
|
||
Backed out for causing webdriver failures
Failure log: https://treeherder.mozilla.org/logviewer?job_id=412417980&repo=autoland
Backout link: https://hg.mozilla.org/integration/autoland/rev/67e0f79fcc88f4d84794e41238544efe636c9993
Assignee | ||
Comment 14•2 years ago
|
||
Henrik, here's some more failures when trying to enable SHIP without Fission. It looks like they all have a similar cause:
https://searchfox.org/mozilla-central/source/testing/web-platform/tests/webdriver/tests/navigate_to/navigate.py#60-80
https://searchfox.org/mozilla-central/source/testing/web-platform/tests/webdriver/tests/back/back.py#151-169
https://searchfox.org/mozilla-central/source/testing/web-platform/tests/webdriver/tests/forward/forward.py#176-195
Looking at the navigate.py failure:
-
With Fission we switch process for the cross-origin load, so we send a "browsing-context-discarded" notification for the previous page which clears the NodeCache. The element is removed from the node cache, which makes https://searchfox.org/mozilla-central/source/testing/web-platform/tests/webdriver/tests/navigate_to/navigate.py#77-78 work.
-
Without Fission and without SHIP, we don't BFCache because we attempt to process switch for the cross-origin load (but we don't). That destroys the frameloader, resulting in a "browsing-context-discarded" notification and so we clear the
NodeCache
. Things work mostly like in the Fission case. -
Without Fission but with SHIP, we do BFCache because the process switch code determines that we can put the frameloader in the BFCache. The NodeCache isn't cleared, because we don't destroy the frameloader and we don't process switch. The specific error changes to
error.StaleElementReferenceException
instead of the expectederror.NoSuchElementException
, because we now fall into the code in https://searchfox.org/mozilla-central/source/remote/marionette/element.sys.mjs#508. I can make the test pass by forcing the page to not be BFCached (withCache-Control: no-store
).
We can fix the test to expect both exceptions, or we can force the page to not be BFCached. Henrik, any suggestion?
Comment 15•2 years ago
|
||
Yes, this is actually a known regression that needs to be fixed and is covered by bug 1822466. I would suggest that you add an exception for those tests for non-Fission in a newly created meta file and reference this bug.
Comment 16•2 years ago
|
||
Comment 17•2 years ago
|
||
Comment 18•2 years ago
|
||
Comment 19•2 years ago
|
||
Comment 20•2 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/3ac74c309223
https://hg.mozilla.org/mozilla-central/rev/c437272e68c3
https://hg.mozilla.org/mozilla-central/rev/a5b86968f797
https://hg.mozilla.org/mozilla-central/rev/88de19897599
https://hg.mozilla.org/mozilla-central/rev/b510f9863597
Updated•1 year ago
|
Description
•