[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