[webkit-changes] [WebKit/WebKit] ea26ec: Add support for browser.tabs script APIs.
kiaraarose
noreply at github.com
Fri Oct 6 19:26:17 PDT 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: ea26ecd46cd6578b6dc5d66fddce4ac9664108c3
https://github.com/WebKit/WebKit/commit/ea26ecd46cd6578b6dc5d66fddce4ac9664108c3
Author: Kiara Rose <kiara_rose at apple.com>
Date: 2023-10-06 (Fri, 06 Oct 2023)
Changed paths:
M Source/WebKit/Shared/Extensions/WebExtensionDynamicScripts.serialization.in
M Source/WebKit/Shared/Extensions/WebExtensionScriptInjectionParameters.h
M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPITabsCocoa.mm
M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionDynamicScriptsCocoa.mm
M Source/WebKit/UIProcess/Extensions/WebExtensionContext.h
M Source/WebKit/UIProcess/Extensions/WebExtensionContext.messages.in
M Source/WebKit/UIProcess/Extensions/WebExtensionDynamicScripts.h
M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPITabsCocoa.mm
M Source/WebKit/WebProcess/Extensions/API/WebExtensionAPITabs.h
M Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPITabs.idl
Log Message:
-----------
Add support for browser.tabs script APIs.
https://bugs.webkit.org/show_bug.cgi?id=262816
Reviewed by Timothy Hatcher.
This patch implements the tabs.executeScript(), tabs.insertCSS(), and tabs.removeCSS() APIs.
Testing:
- Calls to methods with an invalid tab results in an error.
- A result is returned from for each frame for scripting.executeScript().
- Injections execute in the top frame only if allFrames isn't specified or is false.
Will add more extensive tests in a follow up PR.
* Source/WebKit/Shared/Extensions/WebExtensionDynamicScripts.serialization.in:
* Source/WebKit/Shared/Extensions/WebExtensionScriptInjectionParameters.h:
* Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPITabsCocoa.mm:
(WebKit::WebExtensionContext::tabsExecuteScript):
(WebKit::WebExtensionContext::tabsInsertCSS):
(WebKit::WebExtensionContext::tabsRemoveCSS):
* Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionDynamicScriptsCocoa.mm:
(WebKit::WebExtensionDynamicScripts::toInjectionResultParameters):
* Source/WebKit/UIProcess/Extensions/WebExtensionContext.h:
* Source/WebKit/UIProcess/Extensions/WebExtensionContext.messages.in:
* Source/WebKit/UIProcess/Extensions/WebExtensionDynamicScripts.h:
(WebKit::WebExtensionDynamicScripts::InjectionResultHolder::create):
(WebKit::WebExtensionDynamicScripts::InjectionResultHolder::InjectionResultHolder):
Created a ref counted class to hold the results of the script injections so that the data is still
valid when the callback aggregator is called.
* Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPITabsCocoa.mm:
(WebKit::toWebAPI):
(WebKit::WebExtensionAPITabs::parseScriptOptions):
(WebKit::WebExtensionAPITabs::executeScript):
(WebKit::WebExtensionAPITabs::insertCSS):
(WebKit::WebExtensionAPITabs::removeCSS):
* Source/WebKit/WebProcess/Extensions/API/WebExtensionAPITabs.h:
* Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPITabs.idl:
Canonical link: https://commits.webkit.org/269028@main
More information about the webkit-changes
mailing list