[webkit-changes] [WebKit/WebKit] bc0703: Fix site isolation frame process management when l...

Alex Christensen noreply at github.com
Fri Jan 3 11:35:40 PST 2025


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: bc070381592b6406e7dff01537c07f5a7cb27a2f
      https://github.com/WebKit/WebKit/commit/bc070381592b6406e7dff01537c07f5a7cb27a2f
  Author: Alex Christensen <achristensen at apple.com>
  Date:   2025-01-03 (Fri, 03 Jan 2025)

  Changed paths:
    M Source/WebKit/UIProcess/ProvisionalPageProxy.cpp
    M Source/WebKit/UIProcess/WebPageProxy.cpp
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/SiteIsolation.mm

  Log Message:
  -----------
  Fix site isolation frame process management when loading main frame content with cross-origin-opener-policy
https://bugs.webkit.org/show_bug.cgi?id=285344
rdar://142317920

Reviewed by Sihui Liu and Pascoe.

Fixing this case required 3 changes.  First, WebPageProxy::triggerBrowsingContextGroupSwitchForNavigation
needs to actually switch BrowsingContextGroups.  Second, WebPageProxy::sharedPreferencesForWebProcess,
which is called with every incoming IPC to the WebPageProxy, should not call
BrowsingContextGroup::ensureProcessForConnection when we can get the WebProcessProxy using
WebProcessProxy::processForConnection instead without messing with the BrowsingContextGroup.
Third, the ProvisionalPageProxy constructor has a call to didStartProvisionalLoad that is needed for
PSON but not site isolation.

* Source/WebKit/UIProcess/ProvisionalPageProxy.cpp:
(WebKit::ProvisionalPageProxy::ProvisionalPageProxy):
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::sharedPreferencesForWebProcess const):
(WebKit::WebPageProxy::triggerBrowsingContextGroupSwitchForNavigation):
* Tools/TestWebKitAPI/Tests/WebKitCocoa/SiteIsolation.mm:
(TestWebKitAPI::TEST(SiteIsolation, CrossOriginOpenerPolicyMainFrame)):

Canonical link: https://commits.webkit.org/288412@main



To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications


More information about the webkit-changes mailing list