[webkit-changes] [WebKit/WebKit] b3a279: Add support for Web Extension menus / contextMenu ...

Timothy Hatcher noreply at github.com
Tue Nov 28 19:31:18 PST 2023


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

  Changed paths:
    M Source/WebKit/DerivedSources-input.xcfilelist
    M Source/WebKit/DerivedSources-output.xcfilelist
    M Source/WebKit/DerivedSources.make
    M Source/WebKit/Platform/cocoa/CocoaHelpers.mm
    M Source/WebKit/Scripts/webkit/messages.py
    M Source/WebKit/Shared/Extensions/WebExtensionEventListenerType.h
    M Source/WebKit/Shared/Extensions/WebExtensionEventListenerType.serialization.in
    A Source/WebKit/Shared/Extensions/WebExtensionMenuItem.serialization.in
    A Source/WebKit/Shared/Extensions/WebExtensionMenuItemContextParameters.h
    A Source/WebKit/Shared/Extensions/WebExtensionMenuItemContextType.h
    A Source/WebKit/Shared/Extensions/WebExtensionMenuItemParameters.h
    A Source/WebKit/Shared/Extensions/WebExtensionMenuItemType.h
    M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtension.h
    M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionAction.h
    M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionAction.mm
    M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionContext.h
    M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionContext.mm
    M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPICommandsCocoa.mm
    A Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIMenusCocoa.mm
    M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionActionCocoa.mm
    M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm
    A Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionMenuItemCocoa.mm
    M Source/WebKit/UIProcess/Extensions/WebExtensionAction.h
    M Source/WebKit/UIProcess/Extensions/WebExtensionContext.h
    M Source/WebKit/UIProcess/Extensions/WebExtensionContext.messages.in
    A Source/WebKit/UIProcess/Extensions/WebExtensionMenuItem.cpp
    A Source/WebKit/UIProcess/Extensions/WebExtensionMenuItem.h
    M Source/WebKit/WebKit.xcodeproj/project.pbxproj
    M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIActionCocoa.mm
    A Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIMenusCocoa.mm
    M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPINamespaceCocoa.mm
    M Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIAction.h
    A Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIMenus.h
    M Source/WebKit/WebProcess/Extensions/API/WebExtensionAPINamespace.h
    M Source/WebKit/WebProcess/Extensions/Bindings/Cocoa/JSWebExtensionWrapperCocoa.mm
    M Source/WebKit/WebProcess/Extensions/Bindings/JSWebExtensionWrapper.h
    A Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPIMenus.idl
    M Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPINamespace.idl
    M Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.h
    M Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.messages.in
    M Tools/TestWebKitAPI/SourcesCocoa.txt
    M Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj
    A Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIMenus.mm

  Log Message:
  -----------
  Add support for Web Extension menus / contextMenu APIs.
https://webkit.org/b/260158
rdar://problem/114823238

Reviewed by Brian Weinstein.

* Source/WebKit/DerivedSources-input.xcfilelist:
* Source/WebKit/DerivedSources-output.xcfilelist:
* Source/WebKit/DerivedSources.make:
* Source/WebKit/Platform/cocoa/CocoaHelpers.mm:
(WebKit::parseJSON):
* Source/WebKit/Scripts/webkit/messages.py:
(types_that_cannot_be_forward_declared):
* Source/WebKit/Shared/Extensions/WebExtensionEventListenerType.h:
* Source/WebKit/Shared/Extensions/WebExtensionEventListenerType.serialization.in:
* Source/WebKit/Shared/Extensions/WebExtensionMenuItem.serialization.in: Added.
* Source/WebKit/Shared/Extensions/WebExtensionMenuItemContextParameters.h: Added.
* Source/WebKit/Shared/Extensions/WebExtensionMenuItemContextType.h: Added.
(WebKit::allWebExtensionMenuItemContextTypes):
* Source/WebKit/Shared/Extensions/WebExtensionMenuItemParameters.h: Added.
* Source/WebKit/Shared/Extensions/WebExtensionMenuItemType.h: Added.
(WebKit::isCheckedType):
* Source/WebKit/UIProcess/API/Cocoa/_WKWebExtension.h:
* Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionAction.h:
* Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionAction.mm:
(-[_WKWebExtensionAction menuItems]):
* Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionContext.h:
* Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionContext.mm:
(-[_WKWebExtensionContext menuItemsForTab:]):
* Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPICommandsCocoa.mm:
(WebKit::WebExtensionContext::fireCommandEventIfNeeded):
(WebKit::WebExtensionContext::fireCommandChangedEventIfNeeded):
* Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIMenusCocoa.mm: Added.
(WebKit::isAncestorOrSelf):
(WebKit::WebExtensionContext::menusCreate):
(WebKit::WebExtensionContext::menusUpdate):
(WebKit::WebExtensionContext::menusRemove):
(WebKit::WebExtensionContext::menusRemoveAll):
(WebKit::WebExtensionContext::fireMenusClickedEventIfNeeded):
* Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionActionCocoa.mm:
(WebKit::WebExtensionAction::platformMenuItems const):
* Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm:
(WebKit::WebExtensionContext::command):
(WebKit::WebExtensionContext::platformMenuItems const):
(WebKit::WebExtensionContext::menuItem const):
(WebKit::WebExtensionContext::performMenuItem):
* Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionMenuItemCocoa.mm: Added.
(-[_WKWebExtensionMenuItem initWithTitle:handler:]):
(-[_WKWebExtensionMenuItem _performAction:]):
(WebKit::WebExtensionMenuItem::WebExtensionMenuItem):
(WebKit::WebExtensionMenuItem::minimalParameters const):
(WebKit::WebExtensionMenuItem::update):
(WebKit::WebExtensionMenuItem::matchingPlatformMenuItems):
(WebKit::WebExtensionMenuItem::platformMenuItem const):
(WebKit::WebExtensionMenuItem::icon const):
* Source/WebKit/UIProcess/Extensions/WebExtensionAction.h:
* Source/WebKit/UIProcess/Extensions/WebExtensionContext.h:
(WebKit::WebExtensionContext::mainMenuItems const):
* Source/WebKit/UIProcess/Extensions/WebExtensionContext.messages.in:
* Source/WebKit/UIProcess/Extensions/WebExtensionMenuItem.cpp: Added.
(WebKit::WebExtensionMenuItem::operator== const):
(WebKit::WebExtensionMenuItem::extensionContext const):
(WebKit::WebExtensionMenuItem::removeAmpersands):
(WebKit::WebExtensionMenuItem::matches const):
(WebKit::WebExtensionMenuItem::toggleCheckedIfNeeded):
(WebKit::WebExtensionMenuItem::addSubmenuItem):
(WebKit::WebExtensionMenuItem::removeSubmenuItem):
* Source/WebKit/UIProcess/Extensions/WebExtensionMenuItem.h: Added.
(WebKit::WebExtensionMenuItem::create):
(WebKit::WebExtensionMenuItem::type const):
(WebKit::WebExtensionMenuItem::identifier const):
(WebKit::WebExtensionMenuItem::title const):
(WebKit::WebExtensionMenuItem::command const):
(WebKit::WebExtensionMenuItem::isChecked const):
(WebKit::WebExtensionMenuItem::setChecked):
(WebKit::WebExtensionMenuItem::isEnabled const):
(WebKit::WebExtensionMenuItem::isVisible const):
(WebKit::WebExtensionMenuItem::documentPatterns const):
(WebKit::WebExtensionMenuItem::targetPatterns const):
(WebKit::WebExtensionMenuItem::contexts const):
(WebKit::WebExtensionMenuItem::parentMenuItem const):
(WebKit::WebExtensionMenuItem::submenuItems const):
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:
* Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIActionCocoa.mm:
(WebKit::WebExtensionAPIAction::isValidDimensionKey):
(WebKit::isValidDimensionKey): Deleted.
* Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIMenusCocoa.mm: Added.
(WebKit::toMenuIdentifierWebAPI):
(WebKit::WebExtensionAPIMenus::parseCreateAndUpdateProperties):
(WebKit::WebExtensionAPIMenus::createMenu):
(WebKit::WebExtensionAPIMenus::update):
(WebKit::WebExtensionAPIMenus::remove):
(WebKit::WebExtensionAPIMenus::removeAll):
(WebKit::WebExtensionAPIMenus::onClicked):
(WebKit::WebExtensionContextProxy::dispatchMenusClickedEvent):
* Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPINamespaceCocoa.mm:
(WebKit::WebExtensionAPINamespace::menus):
* Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIAction.h:
* Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIMenus.h: Added.
(WebKit::WebExtensionAPIMenus::actionMenuTopLevelLimit const):
(WebKit::WebExtensionAPIMenus::clickHandlers const):
* Source/WebKit/WebProcess/Extensions/API/WebExtensionAPINamespace.h:
(WebKit::WebExtensionAPINamespace::contextMenus):
* Source/WebKit/WebProcess/Extensions/Bindings/Cocoa/JSWebExtensionWrapperCocoa.mm:
(WebKit::WebExtensionCallbackHandler::WebExtensionCallbackHandler):
* Source/WebKit/WebProcess/Extensions/Bindings/JSWebExtensionWrapper.h:
* Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPIMenus.idl: Added.
* Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPINamespace.idl:
* Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.h:
* Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.messages.in:
* Tools/TestWebKitAPI/SourcesCocoa.txt:
* Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIMenus.mm: Added.
(TestWebKitAPI::TEST):
(TestWebKitAPI::performMenuItemAction):

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




More information about the webkit-changes mailing list