Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: adc30c72f52200f1173b96d28fb135c4de3c4ce5
https://github.com/WebKit/WebKit/commit/adc30c72f52200f1173b96d28fb135c4de3c4ce5
Author: Jessica Lee <[email protected]>
Date: 2025-11-23 (Sun, 23 Nov 2025)
Changed paths:
M Source/WebCore/loader/DocumentLoader.cpp
M Source/WebCore/loader/DocumentLoader.h
M Source/WebCore/loader/FrameLoader.cpp
M Source/WebCore/loader/FrameLoader.h
M Source/WebCore/loader/NavigationAction.cpp
M Source/WebCore/loader/NavigationAction.h
M Source/WebCore/loader/NavigationRequester.h
M Source/WebKit/Shared/LoadParameters.h
M Source/WebKit/Shared/LoadParameters.serialization.in
M Source/WebKit/Shared/NavigationActionData.h
M Source/WebKit/Shared/NavigationActionData.serialization.in
M Source/WebKit/UIProcess/API/APINavigation.cpp
M Source/WebKit/UIProcess/API/APINavigation.h
M Source/WebKit/UIProcess/Cocoa/NavigationState.mm
M Source/WebKit/UIProcess/WebPageProxy.cpp
M Source/WebKit/UIProcess/win/AutomationSessionClientWin.cpp
M Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp
M Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp
M Source/WebKit/WebProcess/WebCoreSupport/WebLocalFrameLoaderClient.cpp
M Source/WebKit/WebProcess/WebPage/WebPage.cpp
M Source/WebKitLegacy/ios/WebCoreSupport/WebFixedPositionContent.mm
M Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj
M Tools/TestWebKitAPI/Tests/WebKitCocoa/SiteIsolation.mm
A Tools/TestWebKitAPI/Tests/WebKitCocoa/blob-popup-file-mainframe.html
A Tools/TestWebKitAPI/Tests/WebKitCocoa/blob-popup-local-iframe.html
Log Message:
-----------
[site-isolation] window.open should work with blob urls
https://bugs.webkit.org/show_bug.cgi?id=302702
rdar://136853662
Reviewed by Chris Dumez.
This case only fixes the edge case in which the mainframe is a file URL.
In this change, we dedicate a new process for cross-site blob URL's.
We also forward the top origin of the mainframe requester to the new process
dedicated to the blob URL.
Tests: Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj
Tools/TestWebKitAPI/Tests/WebKitCocoa/SiteIsolation.mm
Tools/TestWebKitAPI/Tests/WebKitCocoa/blob-popup-file-mainframe.html
Tools/TestWebKitAPI/Tests/WebKitCocoa/blob-popup-local-iframe.html
* Source/WebCore/loader/DocumentLoader.cpp:
* Source/WebCore/loader/DocumentLoader.h:
(WebCore::DocumentLoader::crossSiteRequester const):
(WebCore::DocumentLoader::setCrossSiteRequester):
* Source/WebCore/loader/FrameLoader.cpp:
(WebCore::FrameLoader::load):
(WebCore::FrameLoader::loadWithDocumentLoader):
* Source/WebCore/loader/FrameLoader.h:
* Source/WebCore/loader/NavigationAction.cpp:
(WebCore::shouldTreatAsSameOriginNavigation):
(WebCore::NavigationAction::NavigationAction):
* Source/WebCore/loader/NavigationAction.h:
* Source/WebCore/loader/NavigationRequester.h:
* Source/WebKit/Shared/LoadParameters.h:
* Source/WebKit/Shared/LoadParameters.serialization.in:
* Source/WebKit/Shared/NavigationActionData.h:
* Source/WebKit/Shared/NavigationActionData.serialization.in:
* Source/WebKit/UIProcess/API/APINavigation.cpp:
(API::Navigation::requesterOrigin const):
* Source/WebKit/UIProcess/API/APINavigation.h:
(API::Navigation::requesterOrigin const): Deleted.
* Source/WebKit/UIProcess/Cocoa/NavigationState.mm:
(WebKit::interceptMarketplaceKitNavigation):
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::loadRequestWithNavigationShared):
(WebKit::WebPageProxy::receivedNavigationActionPolicyDecision):
(WebKit::WebPageProxy::continueNavigationInNewProcess):
(WebKit::WebPageProxy::createNewPage):
* Source/WebKit/UIProcess/win/AutomationSessionClientWin.cpp:
(WebKit::AutomationSessionClient::requestNewPageWithOptions):
* Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::createWindow):
* Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::navigationActionData const):
* Source/WebKit/WebProcess/WebCoreSupport/WebLocalFrameLoaderClient.cpp:
(WebKit::WebLocalFrameLoaderClient::didSameDocumentNavigationForFrameViaJS):
(WebKit::WebLocalFrameLoaderClient::dispatchDecidePolicyForNewWindowAction):
* Source/WebKit/WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::loadRequest):
* Source/WebKitLegacy/ios/WebCoreSupport/WebFixedPositionContent.mm:
* Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* Tools/TestWebKitAPI/Tests/WebKitCocoa/SiteIsolation.mm:
(TestWebKitAPI::(SiteIsolation, LocalIframeOpensBlobURLFromFileMainFrame)):
* Tools/TestWebKitAPI/Tests/WebKitCocoa/blob-popup-file-mainframe.html: Added.
* Tools/TestWebKitAPI/Tests/WebKitCocoa/blob-popup-local-iframe.html: Added.
Canonical link: https://commits.webkit.org/303469@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications