Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 11a216a7fd0399dd9d93fca02a356f354ccabc2e
https://github.com/WebKit/WebKit/commit/11a216a7fd0399dd9d93fca02a356f354ccabc2e
Author: Brady Eidson <[email protected]>
Date: 2026-08-06 (Thu, 06 Aug 2026)
Changed paths:
M Source/WebCore/Headers.cmake
M Source/WebCore/Scripts/SettingsTemplates/Settings.cpp.erb
M Source/WebCore/Scripts/SettingsTemplates/Settings.h.erb
M Source/WebCore/WebCore.xcodeproj/project.pbxproj
M Source/WebCore/dom/Document.cpp
M Source/WebCore/loader/DocumentLoader.cpp
M Source/WebCore/loader/DocumentLoader.h
A Source/WebCore/loader/WebsitePolicies.h
M Source/WebCore/page/Frame.h
M Source/WebCore/page/LocalFrame.cpp
M Source/WebCore/page/LocalFrame.h
M Source/WebCore/page/Page.cpp
M Source/WebCore/page/RemoteFrame.cpp
M Source/WebCore/page/RemoteFrame.h
M Source/WebKit/Shared/WebsitePoliciesData.cpp
M Source/WebKit/Shared/WebsitePoliciesData.h
M Source/WebKit/UIProcess/WebPageProxy.cpp
M Source/WebKit/WebProcess/Network/WebLoaderStrategy.cpp
M Source/WebKit/WebProcess/WebCoreSupport/WebRemoteFrameClient.cpp
M Tools/TestWebKitAPI/Tests/WebKit/WKWebView/SiteIsolation.mm
Log Message:
-----------
[Site Isolation] Some website policies applied to main frame navigations
don't apply to cross site iframes
rdar://184091553
https://bugs.webkit.org/show_bug.cgi?id=321060
Reviewed by Matthew Finkel.
WebKit API clients can apply various website policies on a per navigation basis.
These policies are meant to apply to all documents hosted by the navigated-to
page,
including cross-origin iframes.
Under site isolation, some of these policies were not migrated to the new
process
hosting the cross-origin iframe, therefore breaking the intended contract.
This patch makes sure all of these policies apply to the cross-origin iframe
even
in its new process and also tests that they are applied correctly.
Test: Tools/TestWebKitAPI/Tests/WebKit/WKWebView/SiteIsolation.mm
* Source/WebCore/Headers.cmake:
* Source/WebCore/Scripts/SettingsTemplates/Settings.cpp.erb:
* Source/WebCore/Scripts/SettingsTemplates/Settings.h.erb:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/dom/Document.cpp:
(WebCore::Document::advancedPrivacyProtections const):
* Source/WebCore/loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::applyPoliciesToSettings):
* Source/WebCore/loader/DocumentLoader.h:
* Source/WebCore/loader/WebsitePolicies.h: Added.
* Source/WebCore/page/Frame.h:
* Source/WebCore/page/LocalFrame.cpp:
(WebCore::LocalFrame::colorSchemePreference const):
* Source/WebCore/page/LocalFrame.h:
* Source/WebCore/page/Page.cpp:
(WebCore::Page::useDarkAppearance const):
* Source/WebCore/page/RemoteFrame.cpp:
(WebCore::m_colorSchemePreference):
(WebCore::RemoteFrame::colorSchemePreference const):
(WebCore::m_autoplayPolicy): Deleted.
* Source/WebCore/page/RemoteFrame.h:
* Source/WebKit/Shared/WebsitePoliciesData.cpp:
(WebKit::core):
(WebKit::WebsitePoliciesData::applyToSettings):
(WebKit::WebsitePoliciesData::applyToDocumentLoader):
* Source/WebKit/Shared/WebsitePoliciesData.h:
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::receivedNavigationActionPolicyDecision):
* Source/WebKit/WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::addParametersShared):
* Source/WebKit/WebProcess/WebCoreSupport/WebRemoteFrameClient.cpp:
(WebKit::WebRemoteFrameClient::applyWebsitePolicies):
* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/SiteIsolation.mm:
(TestWebKitAPI::(SiteIsolation, LockdownModeInheritedByCrossSiteIframeProcess)):
(TestWebKitAPI::(SiteIsolation,
EnhancedSecurityInheritedByCrossSiteIframeProcess)):
(TestWebKitAPI::(SiteIsolation,
LockdownModeSettingsInheritedByCrossSiteIframe)):
(TestWebKitAPI::(SiteIsolation,
GlobalPrivacyControlInheritedByCrossSiteIframe)):
(TestWebKitAPI::(SiteIsolation,
AdvancedPrivacyProtectionsInheritedByCrossSiteIframeDocument)):
(TestWebKitAPI::(SiteIsolation,
PushAndNotificationAPIPolicyInheritedByCrossSiteIframe)):
(TestWebKitAPI::(SiteIsolation,
ColorSchemePreferenceInheritedByCrossSiteIframe)):
Canonical link: https://commits.webkit.org/318742@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications