[webkit-changes] [WebKit/WebKit] 11a913: Add WKWebViewConfiguration to _WKWebExtensionContr...

Timothy Hatcher noreply at github.com
Fri Sep 29 12:56:33 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 11a9133692954ea702fcef2e32bd890b4ae8a3a3
      https://github.com/WebKit/WebKit/commit/11a9133692954ea702fcef2e32bd890b4ae8a3a3
  Author: Timothy Hatcher <timothy at apple.com>
  Date:   2023-09-29 (Fri, 29 Sep 2023)

  Changed paths:
    M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionControllerConfiguration.h
    M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionControllerConfiguration.mm
    M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionControllerDelegate.h
    M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionMessagePort.h
    M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionMessagePort.mm
    M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm
    M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionControllerCocoa.mm
    R Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionControllerConfiguration.mm
    A Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionControllerConfigurationCocoa.mm
    M Source/WebKit/UIProcess/Extensions/WebExtension.h
    M Source/WebKit/UIProcess/Extensions/WebExtensionContext.h
    M Source/WebKit/UIProcess/Extensions/WebExtensionController.h
    M Source/WebKit/UIProcess/Extensions/WebExtensionControllerConfiguration.cpp
    M Source/WebKit/UIProcess/Extensions/WebExtensionControllerConfiguration.h
    M Source/WebKit/UIProcess/WebPageProxy.cpp
    M Source/WebKit/UIProcess/WebPageProxy.h
    M Source/WebKit/WebKit.xcodeproj/project.pbxproj
    M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIPortCocoa.mm
    M Source/WebKit/WebProcess/Extensions/WebExtensionControllerProxy.cpp
    M Source/WebKit/WebProcess/Extensions/WebExtensionControllerProxy.h
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionControllerConfiguration.mm

  Log Message:
  -----------
  Add WKWebViewConfiguration to _WKWebExtensionControllerConfiguration.
https://webkit.org/b/262381
rdar://problem/116243665

Reviewed by Brian Weinstein.

Clients will need to provide some base defaults for extension web views, like what
process pool to use. This is best to do via a WKWebViewConfiguration property
on _WKWebExtensionControllerConfiguration.

Also fix some small drive-by issues.
* Use protocolHostAndPort() instead of truncatedForUseAsBase() for the baseURL maps
  since truncatedForUseAsBase() will include the path still and this breaks some
  extensions that use directories in their paths.
* Added relatedWebView to the configuration in prep for action popups.
* Added a webExtensionController() helper method to WebPageProxy to return the strong
  or weak controller as a convenience.
* Fixed an ASSERT in WebExtensionAPIPort that would fire on garbage collect if the
  port was already disconnected and removed.

* Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionControllerConfiguration.h:
* Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionControllerConfiguration.mm:
(-[_WKWebExtensionControllerConfiguration encodeWithCoder:]): Encode webViewConfiguration.
(-[_WKWebExtensionControllerConfiguration initWithCoder:]): Set webViewConfiguration.
(-[_WKWebExtensionControllerConfiguration webViewConfiguration]): Added.
(-[_WKWebExtensionControllerConfiguration setWebViewConfiguration:]): Added.
* Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionControllerDelegate.h:
* Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionMessagePort.h:
* Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionMessagePort.mm:
(-[_WKWebExtensionMessagePort sendMessage:completionHandler:]):
* Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionControllerCocoa.mm:
(WebKit::WebExtensionController::load):
(WebKit::WebExtensionController::unload):
(WebKit::WebExtensionController::extensionContext const):
* Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionControllerConfigurationCocoa.mm:
Renamed from WebExtensionControllerConfiguration.mm to match conventions.
(WebKit::WebExtensionControllerConfiguration::createStorageDirectoryPath):
(WebKit::WebExtensionControllerConfiguration::copy const):
(WebKit::WebExtensionControllerConfiguration::webViewConfiguration): Added.
* Source/WebKit/UIProcess/Extensions/WebExtension.h:
* Source/WebKit/UIProcess/Extensions/WebExtensionContext.h:
* Source/WebKit/UIProcess/Extensions/WebExtensionController.h:
* Source/WebKit/UIProcess/Extensions/WebExtensionControllerConfiguration.cpp:
(WebKit::WebExtensionControllerConfiguration::operator== const):
(WebKit::WebExtensionControllerConfiguration::copy const): Deleted.
* Source/WebKit/UIProcess/Extensions/WebExtensionControllerConfiguration.h:
(WebKit::WebExtensionControllerConfiguration::setWebViewConfiguration): Added.
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::webExtensionController): Added.
* Source/WebKit/UIProcess/WebPageProxy.h:
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:
* Source/WebKit/WebProcess/Extensions/WebExtensionControllerProxy.cpp:
(WebKit::WebExtensionControllerProxy::getOrCreate):
(WebKit::WebExtensionControllerProxy::load):
(WebKit::WebExtensionControllerProxy::extensionContext const):
* Source/WebKit/WebProcess/Extensions/WebExtensionControllerProxy.h:
* Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionControllerConfiguration.mm:
(TestWebKitAPI::TEST):

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




More information about the webkit-changes mailing list