[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