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

  Changed paths:
    M 
Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIOffscreenCocoa.mm
    M 
Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIRuntimeCocoa.mm
    M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm
    M Source/WebKit/UIProcess/Extensions/WebExtensionContext.cpp
    M Source/WebKit/UIProcess/Extensions/WebExtensionContext.h
    M Source/WebKit/UIProcess/Extensions/WebExtensionController.cpp
    M Source/WebKit/UIProcess/Extensions/WebExtensionController.h
    M Source/WebKit/UIProcess/WebPageProxy.cpp

  Log Message:
  -----------
  [Site Isolation] Web extension page identifiers are built for the wrong 
process
rdar://185021389
https://bugs.webkit.org/show_bug.cgi?id=321864

Reviewed by Timothy Hatcher.

The background, popup, and tab page identifiers in 
WebExtensionContextParameters were built from
webPageIDInMainFrameProcess() then sent to every new web content process. They 
resolve them against
WebProcess::webPage() - But a PageIdentifier only names a WebPage in one 
process. So if an extension
page has a cross-site subframe the identifier sent to that subframe's process 
is missing.

While web extensions are setup and managed by WebKit API, there is no API that 
can observe this today.
Hence there is no test for this patch in isolation.
This is construction-in-depth similar to 319246@main, and it is a prerequisite 
for future testable work.

* 
Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIOffscreenCocoa.mm:
(WebKit::WebExtensionContext::offscreenCreateDocument):
* 
Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIRuntimeCocoa.mm:
(WebKit::WebExtensionContext::runtimeGetBackgroundPage):
* Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm:
(WebKit::WebExtensionContext::backgroundPageIdentifier const):
(WebKit::WebExtensionContext::backgroundPageIdentifierInOwnProcess const):
(WebKit::WebExtensionContext::popupPageIdentifiers const):
(WebKit::WebExtensionContext::tabPageIdentifiers const):
(WebKit::WebExtensionContext::loadBackgroundWebView):
* Source/WebKit/UIProcess/Extensions/WebExtensionContext.cpp:
(WebKit::WebExtensionContext::parameters const):
* Source/WebKit/UIProcess/Extensions/WebExtensionContext.h:
* Source/WebKit/UIProcess/Extensions/WebExtensionController.cpp:
(WebKit::WebExtensionController::parameters const):
(WebKit::WebExtensionController::dispatchDidLoad):
* Source/WebKit/UIProcess/Extensions/WebExtensionController.h:
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::creationParameters):

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



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

Reply via email to