Bug 313657
| Summary: | [Site Isolation] Enable same-site BFCache with cross-site iframes | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | Basuke Suzuki <basuke> |
| Component: | WebKit Misc. | Assignee: | Basuke Suzuki <basuke> |
| Status: | RESOLVED FIXED | ||
| Severity: | Normal | CC: | webkit-bug-importer |
| Priority: | P2 | Keywords: | InRadar |
| Version: | WebKit Nightly Build | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
Basuke Suzuki
Step 2 of same-site BFCache under Site Isolation.
Step 1 (bug 313615) enabled in-process BFCache for same-site navigations when the page has no cross-site iframes. This bug covers the remaining case: pages WITH cross-site iframes.
The challenge is that in-process BFCache (driven by FrameLoader in the WebProcess) does not coordinate with iframe processes. Cross-site iframe content lives in separate processes that need to be suspended/restored.
Approach: When the WebProcess caches a page with cross-site iframes, it notifies the UIProcess via a new IPC. The UIProcess then calls the existing suspendSubframeProcesses() to coordinate iframe process suspension using the existing SetSubframesSuspended IPC. On restore, the reverse path unsuspends iframe processes.
This completes same-site BFCache support under Site Isolation.
rdar://175857874
| Attachments | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |
Radar WebKit Bug Importer
<rdar://problem/176368842>
Basuke Suzuki
Pull request: https://github.com/WebKit/WebKit/pull/64762
EWS
Committed 314050@main (444bd55f4300): <https://commits.webkit.org/314050@main>
Reviewed commits have been landed. Closing PR #64762 and removing active labels.