Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 0c10d5c89c06a1886d19bf347d2fd457aca70988
https://github.com/WebKit/WebKit/commit/0c10d5c89c06a1886d19bf347d2fd457aca70988
Author: Brady Eidson <[email protected]>
Date: 2026-07-31 (Fri, 31 Jul 2026)
Changed paths:
M Source/WebKit/UIProcess/RemotePageProxy.cpp
M Source/WebKit/UIProcess/WebPageProxy.cpp
M Source/WebKit/UIProcess/WebPageProxy.h
M Source/WebKit/UIProcess/WebURLSchemeHandler.cpp
M Source/WebKit/UIProcess/WebURLSchemeHandler.h
M Tools/TestWebKitAPI/Tests/WebKit/WKWebView/SiteIsolation.mm
Log Message:
-----------
(Site isolation) Fix WKURLSchemeHandler process confusion
rdar://183779751
https://bugs.webkit.org/show_bug.cgi?id=320774
Reviewed by Alex Christensen.
URL scheme handlers were built on an assumption of tasks always coming from
"the one"
web content process backing the WKWebView.
With site isolation, confusion occurred.
Changing their identifiers to include a process component fixes things right up.
Test: Tools/TestWebKitAPI/Tests/WebKit/WKWebView/SiteIsolation.mm
* Source/WebKit/UIProcess/RemotePageProxy.cpp:
(WebKit::RemotePageProxy::disconnect):
(WebKit::RemotePageProxy::processDidTerminate):
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::stopURLSchemeTask):
(WebKit::WebPageProxy::loadSynchronousURLSchemeTask):
* Source/WebKit/UIProcess/WebPageProxy.h:
* Source/WebKit/UIProcess/WebURLSchemeHandler.cpp:
(WebKit::WebURLSchemeHandler::startTask):
(WebKit::WebURLSchemeHandler::stopAllTasksForPage):
(WebKit::WebURLSchemeHandler::stopTask):
(WebKit::WebURLSchemeHandler::taskCompleted):
(WebKit::WebURLSchemeHandler::removeTaskFromPageMap):
(WebKit::WebURLSchemeHandler::processForTaskIdentifier const): Deleted.
* Source/WebKit/UIProcess/WebURLSchemeHandler.h:
* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/SiteIsolation.mm:
(-[TrackingURLSchemeHandler init]):
(-[TrackingURLSchemeHandler setStartURLSchemeTaskHandler:]):
(-[TrackingURLSchemeHandler startURLSchemeTaskHandler]):
(-[TrackingURLSchemeHandler webView:startURLSchemeTask:]):
(-[TrackingURLSchemeHandler webView:stopURLSchemeTask:]):
(-[TrackingURLSchemeHandler deliveredSameTaskTwice]):
(-[TrackingURLSchemeHandler raisedException]):
(-[TrackingURLSchemeHandler stopCountForURLPathPrefix:]):
(-[TrackingURLSchemeHandler park:]):
(-[TrackingURLSchemeHandler parkedCountForURLPathPrefix:]):
(-[TrackingURLSchemeHandler respond:text:mimeType:]):
(-[TrackingURLSchemeHandler respondToParkedTasksWithURLPathPrefix:text:]):
(-[BoundedAlertRecorder
webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
(-[BoundedAlertRecorder waitForAlert]):
(TestWebKitAPI::loadParkingHTML):
(TestWebKitAPI::resultCount):
(TestWebKitAPI::waitForParkedLoads):
(TestWebKitAPI::waitForParkedLoadsOrDuplicateTask):
(TestWebKitAPI::waitForStoppedLoads):
(TestWebKitAPI::waitForResults):
(TestWebKitAPI::addCrossSiteIframe):
(TestWebKitAPI::parkingSchemeHandler):
(TestWebKitAPI::viewAndDelegateWithSchemeHandler):
(TestWebKitAPI::TEST(SiteIsolation,
URLSchemeTaskIdentifierCollisionAcrossProcesses)):
(TestWebKitAPI::TEST(SiteIsolation,
URLSchemeTaskIdentifierCollisionWithoutSiteIsolation)):
(TestWebKitAPI::TEST(SiteIsolation,
URLSchemeTaskCancellationDoesNotCrossProcesses)):
(TestWebKitAPI::TEST(SiteIsolation,
SynchronousURLSchemeTaskFromCrossSiteIframe)):
(TestWebKitAPI::TEST(SiteIsolation,
URLSchemeTasksStoppedWhenIframeProcessTerminates)):
(TestWebKitAPI::TEST(SiteIsolation,
URLSchemeTaskRedirectFromCrossSiteIframeWithCollidingIdentifiers)):
Canonical link: https://commits.webkit.org/318370@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications