Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 35b639797fbbd7db560b0d54791e7c01f73e02ac
      
https://github.com/WebKit/WebKit/commit/35b639797fbbd7db560b0d54791e7c01f73e02ac
  Author: Brady Eidson <[email protected]>
  Date:   2026-08-15 (Sat, 15 Aug 2026)

  Changed paths:
    M Source/WebKit/UIProcess/API/APIUserStyleSheet.cpp
    M Source/WebKit/UIProcess/API/APIUserStyleSheet.h
    M Source/WebKit/UIProcess/API/Cocoa/_WKUserStyleSheet.mm
    M Source/WebKit/UIProcess/BrowsingContextGroup.cpp
    M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm
    M 
Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionDynamicScriptsCocoa.mm
    M Source/WebKit/UIProcess/UserContent/WebUserContentControllerProxy.cpp
    M Source/WebKit/UIProcess/UserContent/WebUserContentControllerProxy.h
    M Tools/TestWebKitAPI/Helpers/cocoa/WebExtensionUtilities.h
    M Tools/TestWebKitAPI/Helpers/cocoa/WebExtensionUtilities.mm
    M Tools/TestWebKitAPI/Tests/WebKit/WKWebView/WKWebExtensionAPIScripting.mm
    M Tools/TestWebKitAPI/Tests/WebKit/WKWebView/WKWebExtensionAPITabs.mm

  Log Message:
  -----------
  [Site Isolation] Fix page identifier confusion in _WKUserStyleSheet code
rdar://184973318
https://bugs.webkit.org/show_bug.cgi?id=321831

Reviewed by Timothy Hatcher.

A page-scoped WKUserStyleSheet was incompatible with how ExtensionStyleSheets 
work with
site isolation enabled due to page identifier confusion and not messaging 
enough processes.

API::UserStyleSheet now holds the WebPageProxy, and dataFromUserStyleSheet() 
derives the
identifier for each destination process. Orphaned page-scoped sheets are no 
longer sent.

We now also register a new RemotePageProxy with its BrowsingContextGroup before
injectPageIntoNewProcess() so process creation parameters can now resolve 
correctly.

Tests: Tools/TestWebKitAPI/Tests/WebKit/WKWebView/WKWebExtensionAPIScripting.mm
       Tools/TestWebKitAPI/Tests/WebKit/WKWebView/WKWebExtensionAPITabs.mm

* Source/WebKit/UIProcess/API/APIUserStyleSheet.cpp:
(API::UserStyleSheet::UserStyleSheet):
(API::UserStyleSheet::page const):
* Source/WebKit/UIProcess/API/APIUserStyleSheet.h:
* Source/WebKit/UIProcess/API/Cocoa/_WKUserStyleSheet.mm:
(-[_WKUserStyleSheet 
initWithSource:forWKWebView:forMainFrameOnly:includeMatchPatternStrings:excludeMatchPatternStrings:baseURL:level:contentWorld:]):
* Source/WebKit/UIProcess/BrowsingContextGroup.cpp:
(WebKit::BrowsingContextGroup::addFrameProcessAndInjectPageContextIf):
(WebKit::BrowsingContextGroup::addPage):
* Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm:
(WebKit::WebExtensionContext::didCommitLoadForFrame):
* Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionDynamicScriptsCocoa.mm:
(WebKit::WebExtensionDynamicScripts::injectStyleSheets):
* Source/WebKit/UIProcess/UserContent/WebUserContentControllerProxy.cpp:
(WebKit::WebUserContentControllerProxy::dataFromUserStyleSheet const):
(WebKit::WebUserContentControllerProxy::parametersForProcess const):
(WebKit::WebUserContentControllerProxy::addUserStyleSheet):
* Source/WebKit/UIProcess/UserContent/WebUserContentControllerProxy.h:
* Tools/TestWebKitAPI/Helpers/cocoa/WebExtensionUtilities.h:
* Tools/TestWebKitAPI/Helpers/cocoa/WebExtensionUtilities.mm:
(-[TestWebExtensionManager 
initForExtension:extensionControllerConfiguration:usesEnhancedSecurity:]):
(-[TestWebExtensionTab initWithWindow:extensionController:]):
(-[TestWebExtensionTab changeWebViewIfNeededForURL:forExtensionContext:]):
* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/WKWebExtensionAPIScripting.mm:
(TestWebKitAPI::TEST(WKWebExtensionAPIScripting, InsertAndRemoveCSS)):
(TestWebKitAPI::TEST(WKWebExtensionAPIScripting, 
InsertCSSInAllFramesWithCrossSiteFrame)):
* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/WKWebExtensionAPITabs.mm:
(TestWebKitAPI::TEST(WKWebExtensionAPITabs, 
InsertCSSInAllFramesWithCrossSiteFrame)):

Canonical link: https://commits.webkit.org/319246@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to