Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: f4d3ac245e7d24d2d7702b884c10f29527be307a
      
https://github.com/WebKit/WebKit/commit/f4d3ac245e7d24d2d7702b884c10f29527be307a
  Author: Timothy Hatcher <timo...@apple.com>
  Date:   2024-05-05 (Sun, 05 May 2024)

  Changed paths:
    M Source/WebCore/en.lproj/Localizable.strings
    M 
Source/WebKit/Shared/Extensions/WebExtensionDynamicScripts.serialization.in
    M Source/WebKit/Shared/Extensions/WebExtensionRegisteredScriptParameters.h
    M Source/WebKit/Shared/Extensions/WebExtensionScriptInjectionParameters.h
    M 
Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIScriptingCocoa.mm
    M 
Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPITabsCocoa.mm
    M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionCocoa.mm
    M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm
    M 
Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionDynamicScriptsCocoa.mm
    M Source/WebKit/UIProcess/Extensions/WebExtension.h
    M Source/WebKit/UIProcess/Extensions/WebExtensionDynamicScripts.h
    M 
Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIScriptingCocoa.mm
    M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPITabsCocoa.mm
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtension.mm
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIScripting.mm
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPITabs.mm
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionContext.mm
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionController.mm

  Log Message:
  -----------
  Content Script CSS overriding style attributes inconsistent.
https://webkit.org/b/273122
rdar://problem/126916972

Reviewed by Antti Koivisto.

Change web extension content styles to be author level instead of user level by 
default.

To allow extensions to still use user level, added support for `cssOrigin` in 
the
`tabs.insertCSS()` options, as well as `origin` in the `scripting.insertCSS` 
options.
Accepted values are `user` and `author`.

In addition, this introduces `cssOrigin` in 
`scripting.registerContentScripts()` and
`css_origin` for the `content_scripts` entry in the manifest. These are new 
options
and are being discussed in the WECG at 
https://github.com/w3c/webextensions/issues/414.

* Source/WebCore/en.lproj/Localizable.strings: Updated.
* Source/WebKit/Shared/Extensions/WebExtensionDynamicScripts.serialization.in:
* Source/WebKit/Shared/Extensions/WebExtensionRegisteredScriptParameters.h:
* Source/WebKit/Shared/Extensions/WebExtensionScriptInjectionParameters.h:
* 
Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIScriptingCocoa.mm:
(WebKit::WebExtensionContext::scriptingInsertCSS):
(WebKit::WebExtensionContext::createInjectedContentForScripts):
* 
Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPITabsCocoa.mm:
(WebKit::WebExtensionContext::tabsInsertCSS):
* Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionCocoa.mm:
(WebKit::WebExtension::populateContentScriptPropertiesIfNeeded):
* Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm:
(WebKit::WebExtensionContext::addInjectedContent):
* Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionDynamicScriptsCocoa.mm:
(WebKit::WebExtensionDynamicScripts::injectStyleSheets):
* Source/WebKit/UIProcess/Extensions/WebExtension.h:
* Source/WebKit/UIProcess/Extensions/WebExtensionDynamicScripts.h:
* 
Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIScriptingCocoa.mm:
(WebKit::toWebAPI): Added origin.
(WebKit::WebExtensionAPIScripting::executeScript): Return early if 
outExceptionString is set.
(WebKit::WebExtensionAPIScripting::insertCSS): Ditto.
(WebKit::WebExtensionAPIScripting::removeCSS): Ditto.
(WebKit::WebExtensionAPIScripting::validateCSS): Added origin.
(WebKit::WebExtensionAPIScripting::validateRegisteredScripts): Ditto.
(WebKit::WebExtensionAPIScripting::parseCSSInjectionOptions): Ditto.
* Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPITabsCocoa.mm:
(WebKit::WebExtensionAPITabs::parseScriptOptions):
* Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtension.mm:
(TestWebKitAPI::TEST(WKWebExtension, ContentScriptsParsing)): Added new cases.
* Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIScripting.mm:
(TestWebKitAPI::TEST(WKWebExtensionAPIScripting, ErrorsCSS)): Added new error 
case.
(TestWebKitAPI::TEST(WKWebExtensionAPIScripting, 
ErrorsRegisteredContentScript)): Ditto.
(TestWebKitAPI::TEST(WKWebExtensionAPIScripting, CSSUserOrigin)): Added.
(TestWebKitAPI::TEST(WKWebExtensionAPIScripting, CSSAuthorOrigin)): Added.
(TestWebKitAPI::TEST(WKWebExtensionAPIScripting, World)): Fixed test that was 
always passing.
(TestWebKitAPI::TEST(WKWebExtensionAPIScripting, 
RegisterContentScriptsWithCSSUserOrigin)): Added.
(TestWebKitAPI::TEST(WKWebExtensionAPIScripting, 
RegisterContentScriptsWithCSSAuthorOrigin)): Added.
* Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPITabs.mm:
(TestWebKitAPI::TEST(WKWebExtensionAPITabs, Errors)): Added new error case.
(TestWebKitAPI::TEST(WKWebExtensionAPITabs, CSSUserOrigin)): Added.
(TestWebKitAPI::TEST(WKWebExtensionAPITabs, CSSAuthorOrigin)): Added.
* Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionContext.mm:
(TestWebKitAPI::TEST(WKWebExtensionContext, ContentScriptsParsing)): Added new 
cases.
* Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionController.mm:
(TestWebKitAPI::TEST(WKWebExtensionController, CSSUserOrigin)): Added.
(TestWebKitAPI::TEST(WKWebExtensionController, CSSAuthorOrigin)): Added.

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



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to