[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