[webkit-changes] [WebKit/WebKit] 82de22: Provide a getter for webViewConfiguration on _WKWe...
Timothy Hatcher
noreply at github.com
Mon Oct 23 14:41:07 PDT 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 82de229ab5a54e1441857befa56fa9cab65b1e8e
https://github.com/WebKit/WebKit/commit/82de229ab5a54e1441857befa56fa9cab65b1e8e
Author: Timothy Hatcher <timothy at apple.com>
Date: 2023-10-23 (Mon, 23 Oct 2023)
Changed paths:
M Source/WebCore/en.lproj/Localizable.strings
M Source/WebKit/UIProcess/API/Cocoa/WKWebViewConfiguration.mm
M Source/WebKit/UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h
M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionContext.h
M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionContext.mm
M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionController.h
M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionController.mm
M Source/WebKit/UIProcess/Cocoa/NavigationState.mm
M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionActionCocoa.mm
M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionCocoa.mm
M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm
M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionURLSchemeHandlerCocoa.mm
M Source/WebKit/UIProcess/Extensions/WebExtension.h
M Source/WebKit/UIProcess/Extensions/WebExtensionContext.h
Log Message:
-----------
Provide a getter for webViewConfiguration on _WKWebExtensionContext.
https://webkit.org/b/263533
rdar://problem/117359849
Reviewed by Brian Weinstein.
Add API for obtaining correct WKWebViewConfiguration for web extension content in tabs.
Flesh out the remaining web view configuration properties needed, and provide configurations
for distinct web view purposes with different process names in manifest v3.
To make sure the app uses the right configuration, make extension URL load fail if they are not
using the right configuration, and prevent extension configured views from loading other URLs.
* Source/WebCore/en.lproj/Localizable.strings: Updated.
* Source/WebKit/UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration copyWithZone:]): Copy _requiredWebExtensionBaseURL.
(-[WKWebViewConfiguration _requiredWebExtensionBaseURL]): Added.
(-[WKWebViewConfiguration _setRequiredWebExtensionBaseURL:]): Added.
* Source/WebKit/UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
* Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionContext.h:
* Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionContext.mm:
(-[_WKWebExtensionContext webViewConfiguration]): Added.
* Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionController.h:
* Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionController.mm:
(-[_WKWebExtensionController extensionContextForURL:]): Added.
* Source/WebKit/UIProcess/Cocoa/NavigationState.mm:
(WebKit::isUnsupportedWebExtensionNavigation): Added.
(WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction): Call isUnsupportedWebExtensionNavigation.
* Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionActionCocoa.mm:
(WebKit::WebExtensionAction::popupWebView): Pass a WebViewPurpose for the configuration.
* Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionCocoa.mm:
(WebKit::WebExtension::webProcessDisplayName): Deleted.
* Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm:
(WebKit::WebExtensionContext::relatedWebView): Return nil for v3 and later. Simplify by looking at all known pages that
have the extension URL loaded, so it catches tab pages too.
(WebKit::WebExtensionContext::processDisplayName): Added.
(WebKit::WebExtensionContext::corsDisablingPatterns): Added.
(WebKit::WebExtensionContext::webViewConfiguration): Expanded and added WebViewPurpose.
(WebKit::WebExtensionContext::loadBackgroundWebView): Pass a WebViewPurpose for the configuration.
* Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionURLSchemeHandlerCocoa.mm:
(WebKit::WebExtensionURLSchemeHandler::platformStartTask): Return an error when loading an extension URL in the main frame
of a improperly configured web view.
* Source/WebKit/UIProcess/Extensions/WebExtension.h:
(WebKit::WebExtension::supportsManifestVersion): Added an ASSERT to catch a mistake that I keep making where passing 2
is invalid since that will be true for all extensions.
* Source/WebKit/UIProcess/Extensions/WebExtensionContext.h:
Canonical link: https://commits.webkit.org/269669@main
More information about the webkit-changes
mailing list