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

Reply via email to