Make current session storage implementation Fission-compatible
Categories
(Core :: Storage: localStorage & sessionStorage, defect, P1)
Tracking
()
People
(Reporter: ytausky, Assigned: ytausky)
References
Details
Attachments
(5 files)
When the frame is replaced from example.org
in process A to example.com
the new page is loaded in another process B, but when the frame is replaced again back to example.org
it lands in a third process C, which doesn't have session storage data from process A.
Assignee | ||
Comment 1•3 years ago
|
||
My current understanding of what needs to be done:
- When navigating a window, all of its session storage entries (transitively including nested windows) need to be sent to the parent process.
- When loading a document in a window, all session storage entries for the document's origin need to get fetched from the parent process and populated before any scripts are run.
- Since sessionstore also needs this information and collects it periodically, the existing code could be partially reused.
Jan, please have a look when you're back and let me know if that's correct.
Comment 2•3 years ago
|
||
This may be connected to bug 1445464, as avoiding copying this data around during navigations should help with preserving it.
Assignee | ||
Comment 3•3 years ago
|
||
It's related, but we won't be able to get to that for a while, so we'll need to get the current implementation to work with Fission.
Assignee | ||
Updated•3 years ago
|
Assignee | ||
Comment 4•3 years ago
|
||
BTW, here's a Pernosco session running dom/tests/mochitest/sessionstorage/test_sessionStorageReplace.html
(and failing).
Comment 5•3 years ago
|
||
Tentatively moving all bugs whose summaries mention "Fission" (or other Fission-related keywords) but are not assigned to a Fission Milestone to the "?" triage milestone.
This will generate a lot of bugmail, so you can filter your bugmail for the following UUID and delete them en masse:
0ee3c76a-bc79-4eb2-8d12-05dc0b68e732
Comment 6•3 years ago
|
||
Tracking session storage work for Fission Nightly milestone (M6).
Assignee | ||
Comment 7•3 years ago
|
||
With Fission enabled we do not necessarily have access to the
nsDocShell that holds the top-level browsing context, so the
BrowsingContext is a better place to store information that needs
to be accessible to nested browsing contexts.
Updated•3 years ago
|
Assignee | ||
Comment 8•3 years ago
|
||
This reference is necessary when sending session storage data for
all browsing context to the parent process. Note that it entails
making SessionStorageManager a cycle collection participant, since
adding this reference creates a cycle.
Depends on D55276
Assignee | ||
Comment 9•3 years ago
|
||
Depends on D55659
Assignee | ||
Comment 10•3 years ago
|
||
Depends on D55660
Assignee | ||
Comment 11•3 years ago
|
||
This commit implements a simple data replication scheme, where
each content process receives a copy of the relevant session
storage data when navigating, and sending all its session storage
data to the parent process before shutting down.
Depends on D55661
Comment 12•3 years ago
|
||
Resetting Fission milestone to M4.1. Yaron pointed out that this bug is about sessionStorage
, not session restore. :)
Comment 13•3 years ago
|
||
Pushed by ytausky@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/d9f0d827e28d Part 1: Move SessionStorageManager to BrowsingContext r=dom-workers-and-storage-reviewers,sg,smaug https://hg.mozilla.org/integration/autoland/rev/2663311a1b62 Part 2: Give SessionStorageManager a reference to BrowsingContext r=sg https://hg.mozilla.org/integration/autoland/rev/fd389138a684 Part 3: Remove unused parameter from SessionStorageManager::GetSessionStorageCacheHelper r=dom-workers-and-storage-reviewers,sg
Assignee | ||
Updated•3 years ago
|
Comment 14•3 years ago
|
||
Backed out for build bustages on BrowsingContext.h.
Failure log: https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=280329217&repo=autoland&lineNumber=17361
Backout: https://hg.mozilla.org/integration/autoland/rev/922cb699c35184ba8825d404480a1fa873bbb11b
Comment 15•3 years ago
|
||
This also caused bug 1484492 to perma-fail:
Updated•3 years ago
|
Assignee | ||
Comment 16•3 years ago
|
||
I fixed the problem and will try to land the patches again tomorrow.
Comment 17•3 years ago
|
||
Pushed by ytausky@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/433fd567ff92 Part 1: Move SessionStorageManager to BrowsingContext r=dom-workers-and-storage-reviewers,sg,smaug https://hg.mozilla.org/integration/autoland/rev/c11ce752a12e Part 2: Give SessionStorageManager a reference to BrowsingContext r=sg https://hg.mozilla.org/integration/autoland/rev/44fb598d3ad8 Part 3: Remove unused parameter from SessionStorageManager::GetSessionStorageCacheHelper r=dom-workers-and-storage-reviewers,sg https://hg.mozilla.org/integration/autoland/rev/de6b543ce6d7 Part 4: Overload SessionStorageManager::GetSessionStorageCacheHelper r=dom-workers-and-storage-reviewers,asuth
Comment 18•3 years ago
|
||
bugherder |
Comment 19•3 years ago
|
||
Pushed by ytausky@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/aea23435804b Part 5: Replicate session storage data r=janv,asuth
Assignee | ||
Updated•3 years ago
|
Comment 20•3 years ago
|
||
bugherder |
Description
•