[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