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•5 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•5 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•5 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•5 years ago
|
Assignee | ||
Comment 4•5 years ago
|
||
BTW, here's a Pernosco session running dom/tests/mochitest/sessionstorage/test_sessionStorageReplace.html
(and failing).
Comment 5•5 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•5 years ago
|
||
Tracking session storage work for Fission Nightly milestone (M6).
Assignee | ||
Comment 7•5 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•5 years ago
|
Assignee | ||
Comment 8•5 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•5 years ago
|
||
Depends on D55659
Assignee | ||
Comment 10•5 years ago
|
||
Depends on D55660
Assignee | ||
Comment 11•5 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•5 years ago
|
||
Resetting Fission milestone to M4.1. Yaron pointed out that this bug is about sessionStorage
, not session restore. :)
Comment 13•5 years ago
|
||
Assignee | ||
Updated•5 years ago
|
Comment 14•5 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•5 years ago
|
||
This also caused bug 1484492 to perma-fail:
Updated•5 years ago
|
Assignee | ||
Comment 16•5 years ago
|
||
I fixed the problem and will try to land the patches again tomorrow.
Comment 17•5 years ago
|
||
Comment 18•5 years ago
|
||
bugherder |
Comment 19•5 years ago
|
||
Assignee | ||
Updated•5 years ago
|
Comment 20•5 years ago
|
||
bugherder |
Description
•