Closed Bug 1700623 Opened 3 years ago Closed 3 years ago

Move collection of Session Storage for Session Store to parent process.

Categories

(Firefox :: Session Restore, task, P2)

task

Tracking

()

RESOLVED FIXED
90 Branch
Fission Milestone M7a
Tracking Status
firefox90 --- fixed

People

(Reporter: farre, Assigned: farre)

References

Details

Attachments

(10 files)

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
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
No description provided.
Assignee: nobody → afarre
Blocks: 1602687
Severity: -- → S3
Priority: -- → P2

The idea here is to collect using BackgroundSessionStorageManager and also allow for putting data into the BackgroundSessionStorageManager. Doing these two things is needed for Fission Session Restore's collect and restore step respectively.

Status: NEW → ASSIGNED
Fission Milestone: --- → M7a
Blocks: 1700960
No longer blocks: 1602687

We use the storage principal to look up origin records in the
background session storage manager.

To collect session storage data for session store, we make it possible
to query the background session storage managar for data.

Depends on D111432

Use the newly added session storage data getter to access the session
storage in the parent and store it in session store without a round
trip to content processes.

Depends on D111433

Before session store collection would actually force document creation
when collecting session storage data, but we don't do that
anymore. Instead we switch from using 'about:robots' as the iframe
document to an empty document to actually be able to get unload and
pagehide.

Depends on D111434

Attachment #9214702 - Attachment description: Bug 1700623 - Use the storage principal when checkpointing data. r=timhuang! → Bug 1700623 - Use the storage principal when checkpointing data.
Attachment #9214706 - Attachment description: Bug 1700623 - Add data querying to SessionStorageManager in parent process. r=nika! → Bug 1700623 - Add data querying to SessionStorageManager in parent process. r=nika
Attachment #9214702 - Attachment description: Bug 1700623 - Use the storage principal when checkpointing data. → WIP: Bug 1700623 - Pass the storage principal to SessionStorageManager::EnsureCache.
Attachment #9214702 - Attachment description: WIP: Bug 1700623 - Pass the storage principal to SessionStorageManager::EnsureCache. → Bug 1700623 - Pass the storage principal to SessionStorageManager::EnsureCache.
Attachment #9214702 - Attachment description: Bug 1700623 - Pass the storage principal to SessionStorageManager::EnsureCache. → WIP: Bug 1700623 - Pass the storage principal to SessionStorageManager::EnsureCache.
Attachment #9214706 - Attachment description: Bug 1700623 - Add data querying to SessionStorageManager in parent process. r=nika → Bug 1700623 - Add data querying to SessionStorageManager in parent process. r=nika!

This is used to update session store storage contents continuously.

Depends on D111435

Attachment #9214702 - Attachment description: WIP: Bug 1700623 - Pass the storage principal to SessionStorageManager::EnsureCache. → Bug 1700623 - Pass the storage principal to SessionStorageManager::EnsureCache.
Attachment #9214702 - Attachment description: Bug 1700623 - Pass the storage principal to SessionStorageManager::EnsureCache. → WIP: Bug 1700623 - Pass the storage principal to SessionStorageManager::EnsureCache.
Attachment #9214702 - Attachment description: WIP: Bug 1700623 - Pass the storage principal to SessionStorageManager::EnsureCache. → Bug 1700623 - Pass the storage principal to SessionStorageManager::EnsureCache.
Attachment #9214701 - Attachment description: Bug 1700623 - Add storagePrincipal to WindowGlobalParent. r=nika! → Part 1: Bug 1700623 - Add storagePrincipal to WindowGlobalParent. r=nika!,timhuang!
Attachment #9214702 - Attachment description: Bug 1700623 - Pass the storage principal to SessionStorageManager::EnsureCache. → Part 2: Bug 1700623 - Pass the storage principal to SessionStorageManager::EnsureCache. r=asuth!
Attachment #9214703 - Attachment description: Bug 1700623 - Used TabStateFlusher.flush to guarantee session store state. r=kashav! → Part 3: Bug 1700623 - Used TabStateFlusher.flush to guarantee session store state. r=kashav!
Attachment #9214704 - Attachment description: Bug 1700623 - Add js value conversion for Record. r=peterv! → Part 4: Bug 1700623 - Add js value conversion for Record. r=peterv!
Attachment #9214705 - Attachment description: Bug 1700623 - Add helper to get OriginAttributes from PrincipalInfo. r=timhuang! → Part 5: Bug 1700623 - Add helper to get OriginAttributes from PrincipalInfo. r=timhuang!
Attachment #9214706 - Attachment description: Bug 1700623 - Add data querying to SessionStorageManager in parent process. r=nika! → Part 6: Bug 1700623 - Add data querying to SessionStorageManager in parent process. r=nika!,asuth!
Attachment #9214707 - Attachment description: Bug 1700623 - Make session storage session store work with Fission. r=nika! → Part 7: Bug 1700623 - Make session storage session store work with Fission. r=nika!
Attachment #9214708 - Attachment description: Bug 1700623 - Switch to use empty document in iframe. r=kashav! → Part 8: Bug 1700623 - Switch to use empty document in iframe. r=kashav!
Attachment #9220787 - Attachment description: Bug 1700623 - Notify main thread about storage updates periodically. r=nika,asuth → Part 9: Bug 1700623 - Notify main thread about storage updates periodically. r=nika,asuth
Pushed by afarre@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/6cd0b7a269e5
Part 1: Bug 1700623 - Add storagePrincipal to WindowGlobalParent. r=nika,timhuang
https://hg.mozilla.org/integration/autoland/rev/26df421dac02
Part 2: Bug 1700623 - Pass the storage principal to SessionStorageManager::EnsureCache. r=dom-storage-reviewers,asuth
https://hg.mozilla.org/integration/autoland/rev/c13bdee1b526
Part 3: Bug 1700623 - Used TabStateFlusher.flush to guarantee session store state. r=kashav
https://hg.mozilla.org/integration/autoland/rev/88b4add342df
Part 4: Bug 1700623 - Add js value conversion for Record. r=peterv
https://hg.mozilla.org/integration/autoland/rev/513ea16be430
Part 5: Bug 1700623 - Add helper to get OriginAttributes from PrincipalInfo. r=timhuang
https://hg.mozilla.org/integration/autoland/rev/a4e673640de5
Part 6: Bug 1700623 - Add data querying to SessionStorageManager in parent process. r=nika,dom-storage-reviewers,asuth
https://hg.mozilla.org/integration/autoland/rev/7ab483627a27
Part 7: Bug 1700623 - Make session storage session store work with Fission. r=nika
https://hg.mozilla.org/integration/autoland/rev/97c3add3b00a
Part 8: Bug 1700623 - Switch to use empty document in iframe. r=kashav
https://hg.mozilla.org/integration/autoland/rev/5eae296ad8b5
Part 9: Bug 1700623 - Notify main thread about storage updates periodically. r=asuth

Backed out 9 changesets (Bug 1700623) for causing bc failures in browser_history_menu.js
Backout link: https://hg.mozilla.org/integration/autoland/rev/734a6b594d2170164e302f60c02883741a2a111d
Push with failures, failure log.

Flags: needinfo?(afarre)
Backout by malexandru@mozilla.com:
https://hg.mozilla.org/mozilla-central/rev/9d30cff8f9d4
Backed out 9 changesets for causing bc failures in browser_history_menu.js a=backout
Pushed by afarre@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/1510375be438
Part 1: Bug 1700623 - Add storagePrincipal to WindowGlobalParent. r=nika,timhuang
https://hg.mozilla.org/integration/autoland/rev/83b757d9d82b
Part 2: Bug 1700623 - Pass the storage principal to SessionStorageManager::EnsureCache. r=dom-storage-reviewers,asuth
https://hg.mozilla.org/integration/autoland/rev/741a8b0a0773
Part 3: Bug 1700623 - Used TabStateFlusher.flush to guarantee session store state. r=kashav
https://hg.mozilla.org/integration/autoland/rev/4f967aad4863
Part 4: Bug 1700623 - Add js value conversion for Record. r=peterv
https://hg.mozilla.org/integration/autoland/rev/d94aef8bad70
Part 5: Bug 1700623 - Add helper to get OriginAttributes from PrincipalInfo. r=timhuang
https://hg.mozilla.org/integration/autoland/rev/92f898311207
Part 6: Bug 1700623 - Add data querying to SessionStorageManager in parent process. r=nika,dom-storage-reviewers,asuth
https://hg.mozilla.org/integration/autoland/rev/ce5a3250a87f
Part 7: Bug 1700623 - Make session storage session store work with Fission. r=nika
https://hg.mozilla.org/integration/autoland/rev/f0fe8770fa5d
Part 8: Bug 1700623 - Switch to use empty document in iframe. r=kashav
https://hg.mozilla.org/integration/autoland/rev/08ec785e3c97
Part 9: Bug 1700623 - Notify main thread about storage updates periodically. r=asuth
https://hg.mozilla.org/integration/autoland/rev/51ac7ee1f56d
Part 10: Bug 1700623 - Wait for history navigation in browser_history_menu.js r=peterv

Fixed failure, trying to land again.

Flags: needinfo?(afarre)
Regressions: 1712132
Regressions: 1713174
Blocks: 1722235
Regressions: 1725996
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: