[webkit-changes] [WebKit/WebKit] 9cde20: Work towards implementing browsing.scripting() web...

kiaraarose noreply at github.com
Fri Oct 6 15:25:59 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 9cde205004ecef8ae7813407e7417b8d55135a69
      https://github.com/WebKit/WebKit/commit/9cde205004ecef8ae7813407e7417b8d55135a69
  Author: Kiara Rose <kiara_rose at apple.com>
  Date:   2023-10-06 (Fri, 06 Oct 2023)

  Changed paths:
    M Source/WTF/wtf/Ref.h
    M Source/WebKit/DerivedSources-input.xcfilelist
    M Source/WebKit/DerivedSources.make
    M Source/WebKit/Platform/cocoa/CocoaHelpers.h
    M Source/WebKit/Scripts/webkit/messages.py
    A Source/WebKit/Shared/Extensions/WebExtensionDynamicScripts.serialization.in
    M Source/WebKit/Shared/Extensions/WebExtensionFrameIdentifier.h
    A Source/WebKit/Shared/Extensions/WebExtensionScriptInjectionParameters.h
    A Source/WebKit/Shared/Extensions/WebExtensionScriptInjectionResultParameters.h
    A Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIScriptingCocoa.mm
    M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionControllerCocoa.mm
    A Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionDynamicScriptsCocoa.mm
    M Source/WebKit/UIProcess/Extensions/WebExtensionContext.h
    M Source/WebKit/UIProcess/Extensions/WebExtensionContext.messages.in
    A Source/WebKit/UIProcess/Extensions/WebExtensionDynamicScripts.h
    M Source/WebKit/WebKit.xcodeproj/project.pbxproj
    M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIScriptingCocoa.mm
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIScripting.mm

  Log Message:
  -----------
  Work towards implementing browsing.scripting() web extension APIs.
https://bugs.webkit.org/show_bug.cgi?id=259954

Reviewed by Timothy Hatcher.

This patch adds support for script injections with the scripting.insertCSS(), and scripting.removeCSS() APIs.

* Source/WTF/wtf/Ref.h:
(WTF::operator==):
Add support for operator== so that removeFirst(const U&) works for Ref types.

* Source/WebKit/DerivedSources-input.xcfilelist:
* Source/WebKit/DerivedSources.make:
* Source/WebKit/Platform/cocoa/CocoaHelpers.h:
(WebKit::boolForKey):
* Source/WebKit/Scripts/webkit/messages.py:
(types_that_cannot_be_forward_declared):
* Source/WebKit/Shared/Extensions/WebExtensionDynamicScripts.serialization.in: Added.
* Source/WebKit/Shared/Extensions/WebExtensionFrameIdentifier.h:
(WebKit::toWebExtensionFrameIdentifier):
* Source/WebKit/Shared/Extensions/WebExtensionScriptInjectionParameters.h: Added.
* Source/WebKit/Shared/Extensions/WebExtensionScriptInjectionResultParameters.h: Added.
* Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIScriptingCocoa.mm: Added.
(WebKit::WebExtensionContext::scriptingExecuteScript):
(WebKit::WebExtensionContext::scriptingInsertCSS):
(WebKit::WebExtensionContext::scriptingRemoveCSS):

* Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionControllerCocoa.mm:
(WebKit::WebExtensionController::didCommitLoadForFrame):
Clear dynamicallyInjectedUserStyleSheets when a page navigation occurs since the stylesheets should
be removed when the user leaves or refreshes the page.

* Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionDynamicScriptsCocoa.mm: Added.
(WebKit::WebExtensionDynamicScripts::userStyleSheetMatchesContent):
(WebKit::WebExtensionDynamicScripts::populateFrames):
(WebKit::WebExtensionDynamicScripts::sourcePairForResource):
(WebKit::WebExtensionDynamicScripts::populateStyleSheetPairs):
* Source/WebKit/UIProcess/Extensions/WebExtensionContext.h:
(WebKit::WebExtensionContext::dynamicallyInjectedUserStyleSheets):
* Source/WebKit/UIProcess/Extensions/WebExtensionContext.messages.in:
* Source/WebKit/UIProcess/Extensions/WebExtensionDynamicScripts.h: Added.
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:
* Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIScriptingCocoa.mm:
(WebKit::parseTargetInjectionOptions):
(WebKit::parseScriptInjectionOptions):
(WebKit::parseCSSInjectionOptions):
(WebKit::WebExtensionAPIScripting::executeScript):
(WebKit::WebExtensionAPIScripting::insertCSS):
(WebKit::WebExtensionAPIScripting::removeCSS):
(WebKit::WebExtensionAPIScripting::validateTarget):
* Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIScripting.mm:
(TestWebKitAPI::TEST):

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




More information about the webkit-changes mailing list