[webkit-changes] [WebKit/WebKit] cd1dcb: Simplify Web Extension scripting options parsing.

Timothy Hatcher noreply at github.com
Fri Oct 11 12:59:09 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: cd1dcbdc10539d2af3dfd48185ebefd6b429d811
      https://github.com/WebKit/WebKit/commit/cd1dcbdc10539d2af3dfd48185ebefd6b429d811
  Author: Timothy Hatcher <timothy at apple.com>
  Date:   2024-10-11 (Fri, 11 Oct 2024)

  Changed paths:
    M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIScriptingCocoa.mm
    M Source/WebKit/UIProcess/Extensions/WebExtension.cpp
    M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIScriptingCocoa.mm
    M Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIScripting.h
    M Source/WebKit/WebProcess/Extensions/Bindings/Scripts/CodeGeneratorExtensions.pm
    M Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPIScripting.idl
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIScripting.mm

  Log Message:
  -----------
  Simplify Web Extension scripting options parsing.
https://webkit.org/b/281264
rdar://problem/137716833

Reviewed by Brian Weinstein.

We were touching the options dictionaries twice, in a validate and parse call. These can be combined
to reduce the distance from the two steps and prevent errors — since we always do both steps together.
This is in preparation for adding `documentIds` support.

Also fixed a regression, where we were not case-insensitive comparing the `world` and `css_origin` values
when parsing the manifest. And just change them to lowercase in the keys for consistency and based on
agreement to do this in the WECG.

Some tests needed new baselines for these changes, where `tabId` was throwing an invalid error for `0`
before the expected error was hit due to changes in parsing order.

Also don't output optional keys that were not originally set when calling `getRegisteredContentScripts()`.

* Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIScriptingCocoa.mm:
(WebKit::WebExtensionContext::loadRegisteredContentScripts):
* Source/WebKit/UIProcess/Extensions/WebExtension.cpp:
(WebKit::WebExtension::populateContentScriptPropertiesIfNeeded):
* Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIScriptingCocoa.mm:
(WebKit::toWebAPI):
(WebKit::WebExtensionAPIScripting::executeScript):
(WebKit::WebExtensionAPIScripting::insertCSS):
(WebKit::WebExtensionAPIScripting::removeCSS):
(WebKit::WebExtensionAPIScripting::registerContentScripts):
(WebKit::WebExtensionAPIScripting::getRegisteredContentScripts):
(WebKit::WebExtensionAPIScripting::updateContentScripts):
(WebKit::WebExtensionAPIScripting::unregisterContentScripts):
(WebKit::WebExtensionAPIScripting::validateFilter):
(WebKit::WebExtensionAPIScripting::parseStyleLevel):
(WebKit::WebExtensionAPIScripting::parseExecutionWorld):
(WebKit::WebExtensionAPIScripting::parseTargetInjectionOptions):
(WebKit::WebExtensionAPIScripting::parseScriptInjectionOptions):
(WebKit::WebExtensionAPIScripting::parseCSSInjectionOptions):
(WebKit::WebExtensionAPIScripting::parseRegisteredContentScripts):
(WebKit::WebExtensionAPIScripting::validateScript): Deleted.
(WebKit::WebExtensionAPIScripting::validateTarget): Deleted.
(WebKit::WebExtensionAPIScripting::validateCSS): Deleted.
(WebKit::WebExtensionAPIScripting::validateRegisteredScripts): Deleted.
(WebKit::WebExtensionAPIScripting::hasValidExecutionWorld): Deleted.
* Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIScripting.h:
* Source/WebKit/WebProcess/Extensions/Bindings/Scripts/CodeGeneratorExtensions.pm:
(_installArgumentTypeExceptions):
(_installAutomaticExceptions):
(_javaScriptTypeCondition):
(_platformType):
(_platformTypeConstructor):
* Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPIScripting.idl:
* Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIScripting.mm:
(TestWebKitAPI::TEST(WKWebExtensionAPIScripting, ErrorsExecuteScript)):
(TestWebKitAPI::TEST(WKWebExtensionAPIScripting, ErrorsCSS)):
(TestWebKitAPI::TEST(WKWebExtensionAPIScripting, ErrorsRegisteredContentScript)):
(TestWebKitAPI::TEST(WKWebExtensionAPIScripting, RegisterContentScripts)):
(TestWebKitAPI::TEST(WKWebExtensionAPIScripting, UpdateContentScripts)):
(TestWebKitAPI::TEST(WKWebExtensionAPIScripting, GetContentScripts)):

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



To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications


More information about the webkit-changes mailing list