[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