Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: ce9d6af9dc1ab3e2c33a7908c9913007866d6de0
https://github.com/WebKit/WebKit/commit/ce9d6af9dc1ab3e2c33a7908c9913007866d6de0
Author: Chris Dumez <[email protected]>
Date: 2024-01-19 (Fri, 19 Jan 2024)
Changed paths:
M Source/WebKit/UIProcess/WebPageProxy.cpp
M Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm
Log Message:
-----------
Unable to opt out of lockdown mode on sites that serve COOP + COEP HTTP
headers
https://bugs.webkit.org/show_bug.cgi?id=267766
rdar://119503109
Reviewed by Brent Fulgham.
If lockdown mode is enabled system-wide and the user attempts to navigate to
a site where lockdown mode has been disabled by the user, we expect this
request to be satisfied. However, in the event where the site serves the
proper COOP + COEP HTTP headers to trigger a process-swap, we would fail to
disable lockdown mode.
The reason is that
WebPageProxy::triggerBrowsingContextGroupSwitchForNavigation(),
which gets called on network response in case of a COOP + COEP process swap,
would not carry over correctly the lockdown mode state from the old WebProcess
to the new one. In particular, if there is a ProvisionalPageProxy (because the
current navigation caused a PSON process-swap), we should be getting the
lockdown
mode from this ProvisionalPageProxy's WebProcessProxy, instead of from the
WebPageProxy's WebPageProxy (which is the committed process, not the provisional
one associated with the current navigation).
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::triggerBrowsingContextGroupSwitchForNavigation):
* Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
Canonical link: https://commits.webkit.org/273243@main
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes