Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: d206d1764428e6838dd3240c7868c0762cd5541d https://github.com/WebKit/WebKit/commit/d206d1764428e6838dd3240c7868c0762cd5541d Author: Timothy Hatcher <timo...@apple.com> Date: 2023-09-29 (Fri, 29 Sep 2023)
Changed paths: 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 A Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionAction.h A Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionAction.mm A Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionActionInternal.h A Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionActionPrivate.h M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionContext.h M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionContext.mm M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionControllerDelegate.h A Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionActionCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionTabCocoa.mm M Source/WebKit/UIProcess/Extensions/WebExtension.h A Source/WebKit/UIProcess/Extensions/WebExtensionAction.h M Source/WebKit/UIProcess/Extensions/WebExtensionContext.h M Source/WebKit/UIProcess/Extensions/WebExtensionTab.h M Source/WebKit/WebKit.xcodeproj/project.pbxproj M Tools/TestWebKitAPI/SourcesCocoa.txt M Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj A Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIAction.mm M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPITabs.mm M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebViewInspection.mm M Tools/TestWebKitAPI/cocoa/TestWebExtensionsDelegate.h M Tools/TestWebKitAPI/cocoa/TestWebExtensionsDelegate.mm M Tools/TestWebKitAPI/cocoa/WebExtensionUtilities.h Log Message: ----------- Add _WKWebExtensionAction API to support web extension actions. https://bugs.webkit.org/show_bug.cgi?id=262388 Reviewed by Brady Eidson. Added the initial support for action via _WKWebExtensionAction. This supports popups and all the properties of action that are supported by Safari. Only manifest dat is used currently, but support for per-tab action changes is supported and will be followed up by the JS API in https://webkit.org/b/260154. * Source/WebKit/Modules/OSX_Private.modulemap: * Source/WebKit/Modules/iOS_Private.modulemap: * 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/_WKWebExtensionAction.h: Added. * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionAction.mm: Added. (-[_WKWebExtensionAction dealloc]): (-[_WKWebExtensionAction isEqual:]): (-[_WKWebExtensionAction webExtensionContext]): (-[_WKWebExtensionAction associatedTab]): (-[_WKWebExtensionAction iconForSize:]): (-[_WKWebExtensionAction displayLabel]): (-[_WKWebExtensionAction badgeText]): (-[_WKWebExtensionAction isEnabled]): (-[_WKWebExtensionAction hasPopup]): (-[_WKWebExtensionAction popupWebView]): (-[_WKWebExtensionAction closePopupWebView]): (-[_WKWebExtensionAction _apiObject]): (-[_WKWebExtensionAction _webExtensionAction]): * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionActionInternal.h: Added. * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionActionPrivate.h: Added. * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionContext.h: * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionContext.mm: (-[_WKWebExtensionContext hasPermission:inTab:]): (-[_WKWebExtensionContext hasAccessToURL:inTab:]): (-[_WKWebExtensionContext permissionStatusForPermission:inTab:]): (-[_WKWebExtensionContext permissionStatusForURL:inTab:]): (-[_WKWebExtensionContext permissionStatusForMatchPattern:inTab:]): (-[_WKWebExtensionContext actionForTab:]): (-[_WKWebExtensionContext performActionForTab:]): (-[_WKWebExtensionContext userGesturePerformedInTab:]): (-[_WKWebExtensionContext hasActiveUserGestureInTab:]): (-[_WKWebExtensionContext clearUserGestureInTab:]): (toImplNullable): (-[_WKWebExtensionContext didActivateTab:previousActiveTab:]): * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionControllerDelegate.h: * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionActionCocoa.mm: Added. (-[_WKWebExtensionActionWebViewDelegate initWithWebExtensionAction:]): (-[_WKWebExtensionActionWebViewDelegate webView:decidePolicyForNavigationAction:decisionHandler:]): (-[_WKWebExtensionActionWebViewDelegate webViewWebContentProcessDidTerminate:]): (-[_WKWebExtensionActionWebViewDelegate webViewDidClose:]): (-[_WKWebExtensionActionWebView initWithFrame:configuration:webExtensionAction:]): (-[_WKWebExtensionActionWebView invalidateIntrinsicContentSize]): (WebKit::WebExtensionAction::WebExtensionAction): (WebKit::WebExtensionAction::operator== const): (WebKit::WebExtensionAction::extensionContext const): (WebKit::WebExtensionAction::propertiesDidChange): (WebKit::WebExtensionAction::icon): (WebKit::WebExtensionAction::setIconsDictionary): (WebKit::WebExtensionAction::popupPath const): (WebKit::WebExtensionAction::setPopupPath): (WebKit::WebExtensionAction::popupWebView): (WebKit::WebExtensionAction::presentPopupWhenReady): (WebKit::WebExtensionAction::readyToPresentPopup): (WebKit::WebExtensionAction::popupSizeDidChange): (WebKit::WebExtensionAction::popupDidClose): (WebKit::WebExtensionAction::closePopupWebView): (WebKit::WebExtensionAction::displayLabel const): (WebKit::WebExtensionAction::setDisplayLabel): (WebKit::WebExtensionAction::badgeText const): (WebKit::WebExtensionAction::setBadgeText): (WebKit::WebExtensionAction::isEnabled const): (WebKit::WebExtensionAction::setEnabled): * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionCocoa.mm: (WebKit::WebExtension::resourceTypeForPath): (WebKit::WebExtension::resourceDataForPath): (WebKit::WebExtension::imageForPath): * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm: (WebKit::WebExtensionContext::setInspectable): (WebKit::WebExtensionContext::hasPermission): (WebKit::WebExtensionContext::permissionState): (WebKit::WebExtensionContext::defaultAction): (WebKit::WebExtensionContext::getOrCreateAction): (WebKit::WebExtensionContext::performAction): (WebKit::WebExtensionContext::userGesturePerformed): (WebKit::WebExtensionContext::hasActiveUserGesture const): (WebKit::WebExtensionContext::clearUserGesture): (WebKit::WebExtensionContext::relatedWebView): (WebKit::WebExtensionContext::removeInjectedContent): (WebKit::WebExtensionContext::cancelUserGesture): Deleted. * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionTabCocoa.mm: (WebKit::WebExtensionTab::extensionHasAccess const): * Source/WebKit/UIProcess/Extensions/WebExtension.h: * Source/WebKit/UIProcess/Extensions/WebExtensionAction.h: Added. (WebKit::WebExtensionAction::create): (WebKit::WebExtensionAction::tab): (WebKit::WebExtensionAction::hasPopup const): (WebKit::WebExtensionAction::wrapper const): * Source/WebKit/UIProcess/Extensions/WebExtensionContext.h: (WebKit::WebExtensionContext::hasPermission): (WebKit::WebExtensionContext::permissionState): * Source/WebKit/UIProcess/Extensions/WebExtensionTab.h: * Source/WebKit/WebKit.xcodeproj/project.pbxproj: * Tools/TestWebKitAPI/SourcesCocoa.txt: * Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIAction.mm: Added. (TestWebKitAPI::makePNGData): (TestWebKitAPI::TEST): * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPITabs.mm: * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebViewInspection.mm: * Tools/TestWebKitAPI/cocoa/TestWebExtensionsDelegate.h: * Tools/TestWebKitAPI/cocoa/TestWebExtensionsDelegate.mm: (-[TestWebExtensionsDelegate webExtensionController:presentActionPopup:forExtensionContext:completionHandler:]): * Tools/TestWebKitAPI/cocoa/WebExtensionUtilities.h: Canonical link: https://commits.webkit.org/268677@main _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes