[webkit-changes] [WebKit/WebKit] 210a20: Add support for parsing Web Extension commands.

Timothy Hatcher noreply at github.com
Thu Nov 9 17:51:20 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 210a20b544ef3f77cea2f7dcb19ec21b9022d5cf
      https://github.com/WebKit/WebKit/commit/210a20b544ef3f77cea2f7dcb19ec21b9022d5cf
  Author: Timothy Hatcher <timothy at apple.com>
  Date:   2023-11-09 (Thu, 09 Nov 2023)

  Changed paths:
    M Source/WebCore/en.lproj/Localizable.strings
    M Source/WebKit/Modules/OSX_Private.modulemap
    M Source/WebKit/Modules/iOS_Private.modulemap
    M Source/WebKit/Shared/API/APIObject.h
    M Source/WebKit/Shared/Cocoa/APIObject.mm
    M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtension.h
    M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtension.mm
    A Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionCommand.h
    A Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionCommand.mm
    A Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionCommandInternal.h
    A Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionCommandPrivate.h
    M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionContext.h
    M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionContext.mm
    M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionCocoa.mm
    A Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionCommandCocoa.mm
    M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm
    M Source/WebKit/UIProcess/Extensions/WebExtension.h
    A Source/WebKit/UIProcess/Extensions/WebExtensionCommand.cpp
    A Source/WebKit/UIProcess/Extensions/WebExtensionCommand.h
    M Source/WebKit/UIProcess/Extensions/WebExtensionContext.h
    M Source/WebKit/WebKit.xcodeproj/project.pbxproj
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtension.mm
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionContext.mm

  Log Message:
  -----------
  Add support for parsing Web Extension commands.
https://bugs.webkit.org/show_bug.cgi?id=260157
rdar://problem/114823250

Reviewed by Brian Weinstein.

Add support for parsing Web Extension commands and the new `_WKWebExtensionCommand`.
This does not expose the `browser.commands` API yet, that will be next.

The `_WKWebExtensionCommand` class supports customization by the app, which will
be reflected back to the extensions in `browser.commands.getAll()`.

* Source/WebCore/en.lproj/Localizable.strings: Updated.
* Source/WebKit/Modules/OSX_Private.modulemap: Added new _WKWebExtensionCommand.
* Source/WebKit/Modules/iOS_Private.modulemap: Ditto.
* Source/WebKit/Shared/API/APIObject.h:
* Source/WebKit/Shared/Cocoa/APIObject.mm:
(API::Object::newObject):
* Source/WebKit/UIProcess/API/Cocoa/_WKWebExtension.h:
* Source/WebKit/UIProcess/API/Cocoa/_WKWebExtension.mm:
(-[_WKWebExtension hasCommands]):
* Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionCommand.h: Added.
* Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionCommand.mm: Added.
(-[_WKWebExtensionCommand dealloc]):
(-[_WKWebExtensionCommand hash]):
(-[_WKWebExtensionCommand isEqual:]):
(-[_WKWebExtensionCommand description]):
(-[_WKWebExtensionCommand debugDescription]):
(-[_WKWebExtensionCommand webExtensionContext]):
(-[_WKWebExtensionCommand identifier]):
(-[_WKWebExtensionCommand discoverabilityTitle]):
(-[_WKWebExtensionCommand activationKey]):
(-[_WKWebExtensionCommand setActivationKey:]):
(-[_WKWebExtensionCommand modifierFlags]):
(-[_WKWebExtensionCommand setModifierFlags:]):
(-[_WKWebExtensionCommand _apiObject]):
(-[_WKWebExtensionCommand _webExtensionCommand]):
* Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionCommandInternal.h: Added.
* Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionCommandPrivate.h: Added.
* Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionContext.h:
* Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionContext.mm:
(-[_WKWebExtensionContext commands]):
(-[_WKWebExtensionContext performCommand:]):
* Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionCocoa.mm:
(WebKit::toAPI):
(WebKit::WebExtension::createError):
(WebKit::WebExtension::errors):
(WebKit::WebExtension::commands):
(WebKit::WebExtension::hasCommands):
(WebKit::parseCommandShortcut):
(WebKit::WebExtension::populateCommandsIfNeeded):
* Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionCommandCocoa.mm: Added.
(WebKit::WebExtensionCommand::setActivationKey):
(WebKit::WebExtensionCommand::setModifierFlags):
* Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm:
(WebKit::WebExtensionContext::commands):
(WebKit::WebExtensionContext::performCommand):
* Source/WebKit/UIProcess/Extensions/WebExtension.h:
* Source/WebKit/UIProcess/Extensions/WebExtensionCommand.cpp: Added.
(WebKit::WebExtensionCommand::WebExtensionCommand):
(WebKit::WebExtensionCommand::operator== const):
(WebKit::WebExtensionCommand::extensionContext const):
* Source/WebKit/UIProcess/Extensions/WebExtensionCommand.h: Added.
(WebKit::WebExtensionCommand::create):
(WebKit::WebExtensionCommand::identifier const):
(WebKit::WebExtensionCommand::description const):
(WebKit::WebExtensionCommand::activationKey const):
(WebKit::WebExtensionCommand::modifierFlags const):
(WebKit::WebExtensionCommand::wrapper const):
* Source/WebKit/UIProcess/Extensions/WebExtensionContext.h:
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:
* Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtension.mm:
(TestWebKitAPI::TEST):
* Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionContext.mm:
(TestWebKitAPI::TEST):

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




More information about the webkit-changes mailing list