Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 62160da965fce1b9c4054c0f212660ccfb05726e
      
https://github.com/WebKit/WebKit/commit/62160da965fce1b9c4054c0f212660ccfb05726e
  Author: Timothy Hatcher <[email protected]>
  Date:   2022-10-14 (Fri, 14 Oct 2022)

  Changed paths:
    M Source/WebCore/en.lproj/Localizable.strings
    M Source/WebKit/Shared/WebPageCreationParameters.cpp
    M Source/WebKit/Shared/WebPageCreationParameters.h
    M Source/WebKit/UIProcess/API/APIPageConfiguration.cpp
    M Source/WebKit/UIProcess/API/APIPageConfiguration.h
    M Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm
    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.mm
    M Source/WebKit/UIProcess/Cocoa/WebURLSchemeHandlerCocoa.h
    M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionCocoa.mm
    M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm
    M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionControllerCocoa.mm
    A 
Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionURLSchemeHandlerCocoa.mm
    M Source/WebKit/UIProcess/Extensions/WebExtension.h
    M Source/WebKit/UIProcess/Extensions/WebExtensionContext.h
    M Source/WebKit/UIProcess/Extensions/WebExtensionController.h
    A Source/WebKit/UIProcess/Extensions/WebExtensionURLSchemeHandler.h
    M Source/WebKit/UIProcess/WebPageProxy.cpp
    M Source/WebKit/UIProcess/WebPageProxy.h
    M Source/WebKit/UIProcess/WebURLSchemeHandler.h
    M Source/WebKit/WebKit.xcodeproj/project.pbxproj
    M Source/WebKit/WebProcess/WebPage/WebPage.cpp
    M Source/WebKit/WebProcess/WebPage/WebPage.h
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionController.mm

  Log Message:
  -----------
  Support loading Web Extension URLs and load the background page or service 
worker.
https://bugs.webkit.org/show_bug.cgi?id=246409

Reviewed by Brian Weinstein.

This also adds _WKWebExtensionController to WKWebViewConfiguration and 
propagate through to WebPage.

* Source/WebCore/en.lproj/Localizable.strings: Updated with 
update-webkit-localizable-strings.
* Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView urlSchemeHandlerForURLScheme:]): Deleted. Dead code, not used or 
exposed in any header.
* Source/WebKit/UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration urlSchemeHandlerForURLScheme:]): Only return API 
handlers.
* Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionContext.h:
* Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionContext.mm:
(-[_WKWebExtensionContext setBaseURL:]): Added more assertions.
* Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionController.mm:
(-[_WKWebExtensionController extensionContextForExtension:]): Added baseURL 
version.
* Source/WebKit/UIProcess/Cocoa/WebURLSchemeHandlerCocoa.h:
* Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionCocoa.mm:
(WebKit::WebExtension::isAccessibleResourcePath): Added with FIXME.
(WebKit::WebExtension::resourceDataForPath): Remove "/" prefix.
(WebKit::toAPI): Added.
(WebKit::WebExtension::createError): Use toAPI.
(WebKit::WebExtension::removeError): Added.
(WebKit::WebExtension::recordError): Dispatch notifications async to avoid 
reentrancy.
(WebKit::WebExtension::backgroundContentPath): Added.
* Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm:
(-[_WKWebExtensionContextDelegate initWithWebExtensionContext:]): Added.
(-[_WKWebExtensionContextDelegate 
webView:decidePolicyForNavigationAction:decisionHandler:]): Added.
(-[_WKWebExtensionContextDelegate webView:didFinishNavigation:]): Added.
(-[_WKWebExtensionContextDelegate webView:didFailNavigation:withError:]): Added.
(-[_WKWebExtensionContextDelegate webViewWebContentProcessDidTerminate:]): 
Added.
(WebKit::WebExtensionContext::WebExtensionContext): Create m_delegate.
(WebKit::toAPI): Added.
(WebKit::WebExtensionContext::createError): Use toAPI and added BaseURLTaken 
case.
(WebKit::WebExtensionContext::load): Call loadBackgroundWebViewDuringLoad.
(WebKit::WebExtensionContext::unload): Call unloadBackgroundWebView.
(WebKit::WebExtensionContext::setBaseURL): Canonicalize URL scheme.
(WebKit::WebExtensionContext::postAsyncNotification): Use makeBlockPtr to be 
safe in C++.
(WebKit::WebExtensionContext::webViewConfiguration): Added.
(WebKit::WebExtensionContext::backgroundContentURL): Added.
(WebKit::WebExtensionContext::loadBackgroundWebViewDuringLoad): Added.
(WebKit::WebExtensionContext::loadBackgroundWebView): Added.
(WebKit::WebExtensionContext::unloadBackgroundWebView): Added.
(WebKit::WebExtensionContext::performTasksAfterBackgroundContentLoads): Added.
(WebKit::WebExtensionContext::decidePolicyForNavigationAction): Added.
(WebKit::WebExtensionContext::didFinishNavigation): Added.
(WebKit::WebExtensionContext::didFailNavigation): Added.
(WebKit::WebExtensionContext::webViewWebContentProcessDidTerminate):
* Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionControllerCocoa.mm:
(WebKit::WebExtensionController::load): Added scheme handling more more error 
reporting.
(WebKit::WebExtensionController::unload): Update the baseURL map.
(WebKit::WebExtensionController::addPage): Added. Register the scheme handlers.
(WebKit::WebExtensionController::removePage): Added.
(WebKit::WebExtensionController::extensionContext const):
* 
Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionURLSchemeHandlerCocoa.mm: 
Added.
(WebKit::WebExtensionURLSchemeHandler::WebExtensionURLSchemeHandler):
(WebKit::WebExtensionURLSchemeHandler::platformStartTask):
(WebKit::WebExtensionURLSchemeHandler::platformStopTask):
* Source/WebKit/UIProcess/Extensions/WebExtension.h:
* Source/WebKit/UIProcess/Extensions/WebExtensionContext.h:
* Source/WebKit/UIProcess/Extensions/WebExtensionController.h:
(WebKit::WebExtensionController::wrapper const):
* Source/WebKit/UIProcess/Extensions/WebExtensionURLSchemeHandler.h: Added.
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy): Call addPage on the 
WebExtensionController.
(WebKit::WebPageProxy::close): Call removePage on the WebExtensionController.
* Source/WebKit/UIProcess/WebURLSchemeHandler.h:
(WebKit::WebURLSchemeHandler::isAPIHandler): Added.
* Source/WebKit/WebKit.xcodeproj/project.pbxproj: Added new files.
* Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionController.mm:
(TestWebKitAPI::TEST(WKWebExtensionController, BackgroundPageLoading)): Added.
* Source/WebKit/Shared/WebPageCreationParameters.cpp:
(WebKit::WebPageCreationParameters::encode const): Encode 
WebExtensionControllerParameters.
(WebKit::WebPageCreationParameters::decode): Decode 
WebExtensionControllerParameters.
* Source/WebKit/Shared/WebPageCreationParameters.h:
* Source/WebKit/UIProcess/API/APIPageConfiguration.cpp:
(API::PageConfiguration::copy const): Copy _webExtensionController.
(API::PageConfiguration::webExtensionController): Added.
(API::PageConfiguration::setWebExtensionController): Added.
* Source/WebKit/UIProcess/API/APIPageConfiguration.h:
* Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _setupPageConfiguration:]): Copy _webExtensionController.
* Source/WebKit/UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration encodeWithCoder:]): Encode _webExtensionController.
(-[WKWebViewConfiguration initWithCoder:]): Decode _webExtensionController.
(-[WKWebViewConfiguration copyWithZone:]): Copy _webExtensionController.
(-[WKWebViewConfiguration _webExtensionController]): Added.
(-[WKWebViewConfiguration _setWebExtensionController:]): Added.
* Source/WebKit/UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
Added _webExtensionController property.
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy): Set m_webExtensionController.
(WebKit::WebPageProxy::creationParameters): Set 
webExtensionControllerParameters.
* Source/WebKit/UIProcess/WebPageProxy.h:
* Source/WebKit/WebProcess/WebPage/WebPage.cpp:
* Source/WebKit/WebProcess/WebPage/WebPage.h:

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


_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to