Remove the "SessionStore:update" and "SessionStore:flush" messages for SHIP
Categories
(Firefox :: Session Restore, task, P2)
Tracking
()
Tracking | Status | |
---|---|---|
firefox91 | --- | fixed |
People
(Reporter: u608768, Assigned: u608768)
References
Details
Attachments
(7 files, 1 obsolete file)
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review |
These are used to send frame data to the parent.
- https://searchfox.org/mozilla-central/rev/9b430bb1a11d7152cab2af4574f451ffb906b052/browser/components/sessionstore/TabStateFlusher.jsm#124
- https://searchfox.org/mozilla-central/rev/9b430bb1a11d7152cab2af4574f451ffb906b052/browser/components/sessionstore/ContentSessionStore.jsm#485
With SHIP, the update messages don't actually have any useful information except for the flushID
(to know which TabStateFlusher promise to resolve) and the isFinal
bit (for cleanup after a frame is unloaded), but it shouldn't be too hard to get that information into SessionStore in other ways.
Updated•4 years ago
|
Latest patch has 1 try-only permafail (browser_formdata_cc.js) and 2 try-only intermittents (browser_sessionHistory.js, browser_formdata.js). Looking forward to debugging those next week.
Still need to update the uses of "SessionStore:update" in talos.
For TabStateFlusher.flush() calls:
We now just resolve the TabStateFlusher.flush() promise immediately after the
native nsFrameLoader::RequestTabStateFlush promise resolves. This is fine
because SessionStore will have seen all tab state updates by this point. The
non-SHIP code still waits for the ContentSessionStore round trip.
For the final "SessionStore:update" (sent by the frame script on unload):
This still piggybacks on the somewhat-flaky tab state flush triggered by
nsFrameLoader::StartDestroy. To ensure we're only cleaning up SessionStore
state after we've received updates from all frames in the tree, SessionStore
tracks the number of isFinal updates it receives and only proceeds when
appropriate.
This also stops loading the content-sessionStore.js frame script for SHIP.
Updates some test helpers to use the "SSTabStateFinalUpdate" event instead of
the isFinal "SessionStore:update" frame script message, and skips a frame script
OOM test for Fission.
Depends on D115929
Updated•4 years ago
|
This will make it easier to handle isFinal updates.
Depends on D116144
Updated•4 years ago
|
We'll stop loading content-sessionStore.js for Fission in D116147.
Depends on D115930
Updated•4 years ago
|
Updated•4 years ago
|
Comment 10•4 years ago
|
||
Assignee | ||
Comment 11•4 years ago
|
||
Comment 12•4 years ago
|
||
Comment 13•4 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/279ab2402566
https://hg.mozilla.org/mozilla-central/rev/6b8520fb2bba
https://hg.mozilla.org/mozilla-central/rev/6b4440c599e1
https://hg.mozilla.org/mozilla-central/rev/4e393ab22e60
https://hg.mozilla.org/mozilla-central/rev/bf1815778af2
https://hg.mozilla.org/mozilla-central/rev/b607c8868333
https://hg.mozilla.org/mozilla-central/rev/2852817a4061
Description
•