Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 5b5387abfac2be339ec93a67d9e8db023aa52b61
      
https://github.com/WebKit/WebKit/commit/5b5387abfac2be339ec93a67d9e8db023aa52b61
  Author: Timothy Hatcher <[email protected]>
  Date:   2022-11-29 (Tue, 29 Nov 2022)

  Changed paths:
    M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtension.h
    M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtension.mm
    M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionContext.h
    M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionContext.mm
    M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionPrivate.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
    M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionMatchPatternCocoa.mm
    M 
Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionURLSchemeHandlerCocoa.mm
    M Source/WebKit/UIProcess/Extensions/WebExtension.h
    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/Extensions/WebExtensionMatchPattern.h
    M Source/WebKit/UIProcess/UserContent/WebUserContentControllerProxy.h
    M Source/WebKit/UIProcess/WebPageProxy.h
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtension.mm
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionController.mm

  Log Message:
  -----------
  Support injected content in Web Extensions.
https://bugs.webkit.org/show_bug.cgi?id=246486

Reviewed by Brian Weinstein.

* Source/WebKit/UIProcess/API/Cocoa/_WKWebExtension.h:
* Source/WebKit/UIProcess/API/Cocoa/_WKWebExtension.mm:
(-[_WKWebExtension _hasStaticInjectedContentForURL:]): Renamed from 
hasInjectedContentForURL:.
(-[_WKWebExtension hasInjectedContentForURL:]): Deleted.
* Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionContext.h:
* Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionContext.mm:
(-[_WKWebExtensionContext hasInjectedContentForURL:]): Added.
* Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionController.h:
* Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionPrivate.h:
* Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionCocoa.mm:
(WebKit::WebExtension::removeError): Fix lambda capture to capture only this.
(WebKit::WebExtension::recordError): Ditto.
(WebKit::WebExtension::resourceStringForPath): Added. Helper for string 
resources.
(WebKit::WebExtension::resourceDataForPath): Don't replace cached strings.
(WebKit::WebExtension::staticInjectedContents): Renamed from injectedContents().
(WebKit::WebExtension::hasStaticInjectedContentForURL): Renamed from 
hasInjectedContentForURL().
(WebKit::WebExtension::populateContentScriptPropertiesIfNeeded): Use 
m_staticInjectedContents.
(WebKit::WebExtension::allRequestedMatchPatterns): Ditto.
(WebKit::WebExtension::injectedContents): Deleted.
(WebKit::WebExtension::hasInjectedContentForURL): Deleted.
* Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm:
(WebKit::WebExtensionContext::load): Call addInjectedContent(). Adjust FIXMEs.
(WebKit::WebExtensionContext::unload): Call removeInjectedContent(). Move nil 
setting to end.
(WebKit::WebExtensionContext::injectedContents): Added with FIXME for dynamic 
scripts.
(WebKit::WebExtensionContext::hasInjectedContentForURL): Added. This is better 
here than WebExtension
since dynamic scripts will make the answer wrong on WebExtension but correct 
here.
(WebKit::WebExtensionContext::postAsyncNotification): Fix lambda capture to fix 
crashes.
(WebKit::WebExtensionContext::grantPermissionMatchPatterns): Call 
addInjectedContent().
(WebKit::WebExtensionContext::denyPermissionMatchPatterns): Call 
updateInjectedContent().
(WebKit::WebExtensionContext::removeGrantedPermissionMatchPatterns): Call 
removeInjectedContent().
(WebKit::WebExtensionContext::removeDeniedPermissionMatchPatterns): Call 
updateInjectedContent().
(WebKit::WebExtensionContext::loadBackgroundWebView): Fix lambda capture to 
capture only this.
(WebKit::WebExtensionContext::addInjectedContent): Added.
(WebKit::toImpl): Added.
(WebKit::WebExtensionContext::removeInjectedContent): Added.
* Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionControllerCocoa.mm:
(WebKit::WebExtensionController::load): Fix the loading order again to fix some 
ASSERTs.
(WebKit::WebExtensionController::addPage): Call new addProcessPool() and 
addUserContentController() helpers.
(WebKit::WebExtensionController::removePage): Call new removeProcessPool() and 
removeUserContentController() helpers.
(WebKit::WebExtensionController::addProcessPool): Added.
(WebKit::WebExtensionController::removeProcessPool): Added.
(WebKit::WebExtensionController::addUserContentController): Added.
(WebKit::WebExtensionController::removeUserContentController): Added.
* Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionMatchPatternCocoa.mm:
(WebKit::WebExtensionMatchPattern::patternsMatchAllHosts): Added.
* Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionURLSchemeHandlerCocoa.mm:
(WebKit::WebExtensionURLSchemeHandler::platformStartTask): Fix lambda capture 
to capture only this and protect task.
* Source/WebKit/UIProcess/Extensions/WebExtension.h:
* Source/WebKit/UIProcess/Extensions/WebExtensionContext.cpp:
(WebKit::WebExtensionContext::parameters const): Remove PLATFORM(COCOA) ifdefs 
after review comments from Darin made me reconsider them.
* Source/WebKit/UIProcess/Extensions/WebExtensionContext.h:
(WebKit::WebExtensionContext::addInjectedContent): Added.
(WebKit::WebExtensionContext::updateInjectedContent): Added.
* Source/WebKit/UIProcess/Extensions/WebExtensionController.cpp:
(WebKit::WebExtensionController::~WebExtensionController): Remove 
PLATFORM(COCOA) ifdefs after review comments from Darin made me reconsider them.
(WebKit::WebExtensionController::parameters const): Ditto.
(WebKit::WebExtensionController::allProcesses const): Added.
* Source/WebKit/UIProcess/Extensions/WebExtensionController.h:
(WebKit::WebExtensionController::allPages const): Added.
(WebKit::WebExtensionController::allUserContentControllers const): Added.
(WebKit::WebExtensionController::allProcessPools const): Added.
(WebKit::WebExtensionController::sendToAllProcesses): Use new allProcesses() 
method.
* Source/WebKit/UIProcess/Extensions/WebExtensionMatchPattern.h:
* Source/WebKit/UIProcess/UserContent/WebUserContentControllerProxy.h:
(WebKit::WebUserContentControllerProxy::operator== const): Added. Needed for 
WebExtensionController::removeUserContentController().
(WebKit::WebUserContentControllerProxy::operator!= const): Added.
* Source/WebKit/UIProcess/WebPageProxy.h:
* Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtension.mm:
(TestWebKitAPI::TEST): Use renamed _hasStaticInjectedContentForURL: method.
* Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionController.mm:
(TestWebKitAPI::TEST): Added WKWebExtensionController.ContentScriptLoading test.

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


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

Reply via email to