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