Closed Bug 1689601 Opened 5 months ago Closed 4 months ago

BFCache in parent, skeleton

Categories

(Core :: DOM: Navigation, defect, P2)

defect

Tracking

()

RESOLVED FIXED
88 Branch
Fission Milestone M7a
Tracking Status
firefox88 --- fixed

People

(Reporter: smaug, Assigned: smaug)

References

(Blocks 1 open bug)

Details

(Whiteboard: fission-bfcache)

Attachments

(17 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
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.
Severity: -- → N/A
Status: NEW → ASSIGNED
Fission Milestone: --- → M7
Priority: -- → P2
Flags: needinfo?(bugs)
Flags: needinfo?(bugs)
Flags: needinfo?(bugs)
Flags: needinfo?(bugs)
Whiteboard: fission-bfcache

The name RemotenessChangeState uses same the convention as the related methods, even though there might
not be a remoteness change happening, only a browsing context switch. But the naming
inconsistency exists there even without any bfcache work.

Depends on D105228

EvictOutOfRangeContentViewers call in SetFrameLoader doesn't do anything in this patch, but will
work with some followups.

Depends on D105234

There are quite a few different logging modules for session history, but while developing
SHIP BFCache, I'd prefer to add some specific one for it. Later we can perhaps
merge various modules to some generic session history related.

SHIPBFCache log module will be used more in the followup patches.

Depends on D105236

Non-SHIP bfcache seems to be rather complicated here, since it needs to explicitly store inner windows and what not.
SHIP should be able to handle this in a simpler way.
It is possible that some ordering needs still tweaking.

Depends on D105239

Depends on: 1694651
Attachment #9203283 - Attachment description: Bug 1689601, make it easy to access DocumentChannelParent from DocumentLoadListener, r=peterv → Bug 1689601, Add DocumentChannel ID to DocumentLoadListener, r=peterv
Attachment #9203284 - Attachment description: Bug 1689601, add a pref to endable bfcache in parent process, r=peterv → Bug 1689601, add a pref to enable bfcache in parent process, r=peterv

This addresses part of the review comment from https://phabricator.services.mozilla.com/D105229

Depends on D105360

Moving all M7 Fission BFCache work to M7a.

Fission Milestone: M7 → M7a
Pushed by opettay@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/6d02e59ddc51
set active entry only when session history runs in the parent process, r=peterv
https://hg.mozilla.org/integration/autoland/rev/63295b3a62d0
pass various states of remoteness change / browsing context swap using a helper struct, r=peterv
https://hg.mozilla.org/integration/autoland/rev/6138bfc6c08d
add a comment about missing LOAD_FLAGS_DISALLOW_INHERIT_PRINCIPAL, r=peterv
https://hg.mozilla.org/integration/autoland/rev/7e8022e5696a
Add DocumentChannel ID to DocumentLoadListener, r=peterv
https://hg.mozilla.org/integration/autoland/rev/c261c243a64d
add a pref to enable bfcache in parent process, r=peterv
https://hg.mozilla.org/integration/autoland/rev/278db692aa8b
remove an assertion in SessionStorageManager.cpp since it isn't valid anymore with bfcache, r=peterv,ttung
https://hg.mozilla.org/integration/autoland/rev/701eccb34772
add assertions to ensure SessionHistoryEntry objects are created only when session history in parent is enabled, r=peterv
https://hg.mozilla.org/integration/autoland/rev/04aadec67ce2
store nsFrameLoader in SessionHistoryEntry/SHEntrySharedParentState, r=peterv
https://hg.mozilla.org/integration/autoland/rev/307bde43cc96
make it possible to call Document::CanSavePresentation non-recursively, r=peterv
https://hg.mozilla.org/integration/autoland/rev/2b2081a15d67
add a log module for SHIP BFCache, r=peterv
https://hg.mozilla.org/integration/autoland/rev/334aeb627855
try to use bfcache for top level pages, r=peterv
https://hg.mozilla.org/integration/autoland/rev/2fca23521891
evict frameloaders from bfcache (missing still the time based eviction), r=peterv
https://hg.mozilla.org/integration/autoland/rev/0c5fe977ced6
nested freeze/thaw, r=peterv
https://hg.mozilla.org/integration/autoland/rev/a594bd02b8b6
Rename RemotenessChangeState to RemotenessChangeOptions, r=peterv
https://hg.mozilla.org/integration/autoland/rev/745eaa468c74
hide fission.bfcacheInParent pref access behind a function which checks that also SHIP is enabled, r=peterv,necko-reviewers
https://hg.mozilla.org/integration/autoland/rev/6e5523a7210d
sync fields when loading a page from bfcache, r=peterv
Backout by malexandru@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/46614681fd5d
Backed out 16 changesets for causing cpp bustages in nsFrameLoader.

Backed out 16 changesets (Bug 1689601) for causing cpp bustages in nsFrameLoader.

Backout link: https://hg.mozilla.org/integration/autoland/rev/46614681fd5d96fc75ef2c7033abe96d402dcba4
Push with failures, failure log.

Flags: needinfo?(bugs)

Huh, odd. I had just pushed to try.

Flags: needinfo?(bugs)
Pushed by opettay@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/094c4ba34fd1
set active entry only when session history runs in the parent process, r=peterv
https://hg.mozilla.org/integration/autoland/rev/1502dc96c13f
pass various states of remoteness change / browsing context swap using a helper struct, r=peterv
https://hg.mozilla.org/integration/autoland/rev/c1ff2ca96a32
add a comment about missing LOAD_FLAGS_DISALLOW_INHERIT_PRINCIPAL, r=peterv
https://hg.mozilla.org/integration/autoland/rev/0f5fe8762bd6
Add DocumentChannel ID to DocumentLoadListener, r=peterv
https://hg.mozilla.org/integration/autoland/rev/46bcd4860216
add a pref to enable bfcache in parent process, r=peterv
https://hg.mozilla.org/integration/autoland/rev/07595dc11e77
remove an assertion in SessionStorageManager.cpp since it isn't valid anymore with bfcache, r=peterv,ttung
https://hg.mozilla.org/integration/autoland/rev/e74a62e11d2d
add assertions to ensure SessionHistoryEntry objects are created only when session history in parent is enabled, r=peterv
https://hg.mozilla.org/integration/autoland/rev/53d514bab3e8
store nsFrameLoader in SessionHistoryEntry/SHEntrySharedParentState, r=peterv
https://hg.mozilla.org/integration/autoland/rev/42d89fdeef20
make it possible to call Document::CanSavePresentation non-recursively, r=peterv
https://hg.mozilla.org/integration/autoland/rev/b32ce9ca1137
add a log module for SHIP BFCache, r=peterv
https://hg.mozilla.org/integration/autoland/rev/37793ca0cd36
try to use bfcache for top level pages, r=peterv
https://hg.mozilla.org/integration/autoland/rev/20f2436c594c
evict frameloaders from bfcache (missing still the time based eviction), r=peterv
https://hg.mozilla.org/integration/autoland/rev/fc52b96ee244
nested freeze/thaw, r=peterv
https://hg.mozilla.org/integration/autoland/rev/0b82d215b4ea
Rename RemotenessChangeState to RemotenessChangeOptions, r=peterv
https://hg.mozilla.org/integration/autoland/rev/6ed03eb5b7fb
hide fission.bfcacheInParent pref access behind a function which checks that also SHIP is enabled, r=peterv,necko-reviewers
https://hg.mozilla.org/integration/autoland/rev/d683ade21deb
sync fields when loading a page from bfcache, r=peterv
See Also: → 1695999
Regressions: 1696266
You need to log in before you can comment on or make changes to this bug.