[webkit-changes] [WebKit/WebKit] fcb885: Add back _WKWebExtensionTab and _WKWebExtensionWin...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: fcb885e233b317ee3798039824853b8952fb98fa https://github.com/WebKit/WebKit/commit/fcb885e233b317ee3798039824853b8952fb98fa Author: Timothy Hatcher Date: 2024-08-06 (Tue, 06 Aug 2024) Changed paths: M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtension.mm M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionTab.h M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionWindow.h Log Message: --- Add back _WKWebExtensionTab and _WKWebExtensionWindow. https://webkit.org/b/277701 rdar://problem/133314006 Reviewed by Brian Weinstein. Add back _WKWebExtensionTab and _WKWebExtensionWindow and inherit from the unprefixed protoocl to keep iOS and visionOS Safari happy. Add them on a staging object to expose the protocol symbols in the WebKit binary. * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtension.mm: * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionTab.h: * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionWindow.h: Canonical link: https://commits.webkit.org/281904@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
[webkit-changes] [WebKit/WebKit] 1f1720: REGRESSION (281723@main):[ iOS ]: 22 API test are ...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 1f1720a65d5655edf8cc18ff247acd9ceee0363c https://github.com/WebKit/WebKit/commit/1f1720a65d5655edf8cc18ff247acd9ceee0363c Author: Timothy Hatcher Date: 2024-08-03 (Sat, 03 Aug 2024) Changed paths: M Source/WebKit/SourcesCocoa.txt M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtension.h A Source/WebKit/UIProcess/API/Cocoa/_WKWebExtension.mm M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionAction.h M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionCommand.h M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionContext.h M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionController.h M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionDataRecord.h M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionMatchPattern.h M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionMessagePort.h M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionTabCreationOptions.h M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionWindowCreationOptions.h M Source/WebKit/WebKit.xcodeproj/project.pbxproj Log Message: --- REGRESSION (281723@main):[ iOS ]: 22 API test are constantly crashing. https://webkit.org/b/277563 rdar://problem/133081797 Reviewed by Wenson Hsieh. Define the old Web Extension API symbols to maintain bincompat with older OS builds. * Source/WebKit/SourcesCocoa.txt: Added _WKWebExtension.mm. * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtension.h: Added @interface. * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtension.mm: Added. * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionAction.h: Added @interface. * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionCommand.h: Ditto. * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionContext.h: Ditto. * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionController.h: Ditto. * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionDataRecord.h: Ditto. * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionMatchPattern.h: Ditto. * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionMessagePort.h: Ditto. * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionTabCreationOptions.h: Ditto. * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionWindowCreationOptions.h: Ditto. * Source/WebKit/WebKit.xcodeproj/project.pbxproj: Added _WKWebExtension.mm. Canonical link: https://commits.webkit.org/281809@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
[webkit-changes] [WebKit/WebKit] 0c1617: Raindrop extension doesn't seem to be able to auth...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 0c16173ab63bb0b215559223635988bfa5be7c6d https://github.com/WebKit/WebKit/commit/0c16173ab63bb0b215559223635988bfa5be7c6d Author: Timothy Hatcher Date: 2024-08-01 (Thu, 01 Aug 2024) Changed paths: M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIPermissions.mm Log Message: --- Raindrop extension doesn't seem to be able to authenticate. https://webkit.org/b/277519 rdar://132912898 Reviewed by Jeff Miller and Brian Weinstein. The CORS disabling patterns for the extension was not including optional host permissions due to a copy-and-paste error (`allRequestedMatchPatterns()` vs `optionalPermissionMatchPatterns()`.) Also corrected FIXME bug info to be more accurate. * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm: (WebKit::WebExtensionContext::corsDisablingPatterns): Use optionalPermissionMatchPatterns(). * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIPermissions.mm: (TestWebKitAPI::TEST(WKWebExtensionAPIPermissions, CORS)): Added. Canonical link: https://commits.webkit.org/281739@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
[webkit-changes] [WebKit/WebKit] 2bc7fc: Unprefix the Web Extensions API.
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 2bc7fc7945e21547b6be4048e226637829a46ecc https://github.com/WebKit/WebKit/commit/2bc7fc7945e21547b6be4048e226637829a46ecc Author: Timothy Hatcher Date: 2024-08-01 (Thu, 01 Aug 2024) Changed paths: M Source/WebKit/Modules/OSX_Private.modulemap M Source/WebKit/Modules/iOS_Private.modulemap M Source/WebKit/Shared/API/Cocoa/WebKit.h M Source/WebKit/Shared/Cocoa/APIObject.mm M Source/WebKit/Shared/Extensions/_WKWebExtensionLocalization.mm A Source/WebKit/UIProcess/API/Cocoa/WKWebExtension.h A Source/WebKit/UIProcess/API/Cocoa/WKWebExtension.mm 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 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 A Source/WebKit/UIProcess/API/Cocoa/WKWebExtensionContext.h A Source/WebKit/UIProcess/API/Cocoa/WKWebExtensionContext.mm A Source/WebKit/UIProcess/API/Cocoa/WKWebExtensionContextInternal.h A Source/WebKit/UIProcess/API/Cocoa/WKWebExtensionContextPrivate.h A Source/WebKit/UIProcess/API/Cocoa/WKWebExtensionController.h A Source/WebKit/UIProcess/API/Cocoa/WKWebExtensionController.mm A Source/WebKit/UIProcess/API/Cocoa/WKWebExtensionControllerConfiguration.h A Source/WebKit/UIProcess/API/Cocoa/WKWebExtensionControllerConfiguration.mm A Source/WebKit/UIProcess/API/Cocoa/WKWebExtensionControllerConfigurationInternal.h A Source/WebKit/UIProcess/API/Cocoa/WKWebExtensionControllerConfigurationPrivate.h A Source/WebKit/UIProcess/API/Cocoa/WKWebExtensionControllerDelegate.h A Source/WebKit/UIProcess/API/Cocoa/WKWebExtensionControllerDelegatePrivate.h A Source/WebKit/UIProcess/API/Cocoa/WKWebExtensionControllerInternal.h A Source/WebKit/UIProcess/API/Cocoa/WKWebExtensionControllerPrivate.h A Source/WebKit/UIProcess/API/Cocoa/WKWebExtensionDataRecord.h A Source/WebKit/UIProcess/API/Cocoa/WKWebExtensionDataRecord.mm A Source/WebKit/UIProcess/API/Cocoa/WKWebExtensionDataRecordInternal.h A Source/WebKit/UIProcess/API/Cocoa/WKWebExtensionDataRecordPrivate.h A Source/WebKit/UIProcess/API/Cocoa/WKWebExtensionDataType.h A Source/WebKit/UIProcess/API/Cocoa/WKWebExtensionDataType.mm A Source/WebKit/UIProcess/API/Cocoa/WKWebExtensionDataTypeInternal.h A Source/WebKit/UIProcess/API/Cocoa/WKWebExtensionInternal.h A Source/WebKit/UIProcess/API/Cocoa/WKWebExtensionMatchPattern.h A Source/WebKit/UIProcess/API/Cocoa/WKWebExtensionMatchPattern.mm A Source/WebKit/UIProcess/API/Cocoa/WKWebExtensionMatchPatternInternal.h A Source/WebKit/UIProcess/API/Cocoa/WKWebExtensionMatchPatternPrivate.h A Source/WebKit/UIProcess/API/Cocoa/WKWebExtensionMessagePort.h A Source/WebKit/UIProcess/API/Cocoa/WKWebExtensionMessagePort.mm A Source/WebKit/UIProcess/API/Cocoa/WKWebExtensionMessagePortInternal.h A Source/WebKit/UIProcess/API/Cocoa/WKWebExtensionMessagePortPrivate.h A Source/WebKit/UIProcess/API/Cocoa/WKWebExtensionPermission.h A Source/WebKit/UIProcess/API/Cocoa/WKWebExtensionPermission.mm A Source/WebKit/UIProcess/API/Cocoa/WKWebExtensionPermissionPrivate.h A Source/WebKit/UIProcess/API/Cocoa/WKWebExtensionPrivate.h A Source/WebKit/UIProcess/API/Cocoa/WKWebExtensionTab.h A Source/WebKit/UIProcess/API/Cocoa/WKWebExtensionTabCreationOptions.h A Source/WebKit/UIProcess/API/Cocoa/WKWebExtensionTabCreationOptions.mm A Source/WebKit/UIProcess/API/Cocoa/WKWebExtensionTabCreationOptionsInternal.h A Source/WebKit/UIProcess/API/Cocoa/WKWebExtensionWindow.h A Source/WebKit/UIProcess/API/Cocoa/WKWebExtensionWindowCreationOptions.h A Source/WebKit/UIProcess/API/Cocoa/WKWebExtensionWindowCreationOptions.mm A Source/WebKit/UIProcess/API/Cocoa/WKWebExtensionWindowCreationOptionsInternal.h M Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm M Source/WebKit/UIProcess/API/Cocoa/WKWebViewConfiguration.h M Source/WebKit/UIProcess/API/Cocoa/WKWebViewConfiguration.mm M Source/WebKit/UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtension.h R Source/WebKit/UIProcess/API/Cocoa/_WKWebExtension.mm M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionAction.h R Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionAction.mm R Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionActionInternal.h R Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionActionPrivate.h M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionCommand.h R Source/WebKit
[webkit-changes] [WebKit/WebKit] 45e07b: Additional Web Extensions API changes based on fee...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 45e07b5428077bf94cff5940445ca7254e16268e https://github.com/WebKit/WebKit/commit/45e07b5428077bf94cff5940445ca7254e16268e Author: Timothy Hatcher Date: 2024-07-30 (Tue, 30 Jul 2024) Changed paths: M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtension.h M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionTab.h M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionWindow.h M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPICookiesCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIScriptingCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPITabsCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIWebNavigationCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionTabCocoa.mm M Source/WebKit/UIProcess/Extensions/WebExtensionTab.h M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIAction.mm M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPICookies.mm M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIDeclarativeNetRequest.mm M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIDevTools.mm M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIExtension.mm M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIMenus.mm M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIRuntime.mm M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIScripting.mm M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIStorage.mm M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPITabs.mm M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIWebNavigation.mm M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIWebRequest.mm M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIWindows.mm M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionController.mm M Tools/TestWebKitAPI/cocoa/WebExtensionUtilities.h M Tools/TestWebKitAPI/cocoa/WebExtensionUtilities.mm Log Message: --- Additional Web Extensions API changes based on feedback. https://webkit.org/b/277374 rdar://problem/132843735 Reviewed by Brian Weinstein. Renamed the protocol method on `_WKWebExtensionTab` from `mainWebViewForWebExtensionContext:` to just `webViewForWebExtensionContext:` since `webViewsForWebExtensionContext:` was removed. Renamed all uses of `mainWebView` in extensions code to match. Added `NS_SWIFT_NAME` to `_WKWebExtensionTabChangedProperties`, `_WKWebExtensionWindowType`, and `_WKWebExtensionWindowState`. Finally, use `WK_NULLABLE_RESULT` for `_WKWebExtension` async convenience methods for better importation to Swift. * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtension.h: * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionTab.h: * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionWindow.h: * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPICookiesCocoa.mm: (WebKit::WebExtensionContext::cookiesGetAllCookieStores): * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIScriptingCocoa.mm: (WebKit::WebExtensionContext::scriptingExecuteScript): (WebKit::WebExtensionContext::scriptingInsertCSS): (WebKit::WebExtensionContext::scriptingRemoveCSS): * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPITabsCocoa.mm: (WebKit::WebExtensionContext::tabsExecuteScript): (WebKit::WebExtensionContext::tabsInsertCSS): (WebKit::WebExtensionContext::tabsRemoveCSS): * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIWebNavigationCocoa.mm: (WebKit::WebExtensionContext::webNavigationGetFrame): (WebKit::WebExtensionContext::webNavigationGetAllFrames): * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm: (WebKit::WebExtensionContext::getCurrentTab const): (WebKit::WebExtensionContext::reportWebViewConfigurationErrorIfNeeded const): (WebKit::WebExtensionContext::openInspectors const): * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionTabCocoa.mm: (WebKit::WebExtensionTab::WebExtensionTab): (WebKit::WebExtensionTab::webView const): (WebKit::WebExtensionTab::title const): (WebKit::WebExtensionTab::size const): (WebKit::WebExtensionTab::zoomFactor const): (WebKit::WebExtensionTab::setZoomFactor): (WebKit::WebExtensionTab::url const): (WebKit::WebExtensionTab::isLoadingComplete const): (WebKit::WebExtensionTab::captureVisibleWebpage): (WebKit::WebExtensionTab::loadURL): (WebKit::WebExtensionTab::reload): (WebKit::WebExtensionTab::goBack): (WebKit::WebExtensionTab::goForward): (WebKit::WebExtensionTab::processes const): (WebKit::WebExtensionTab::mainWebView const): Deleted. * Source/WebKit/UIProcess/Extensions/WebExtensionTab.h: * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIAction.mm: (TestWebKitAPI::TEST(WKWebExtensionAPIAction
[webkit-changes] [WebKit/WebKit] 9619df: REGRESSION (280925@main): [ macOS iOS ] TestWebKit...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 9619df3a01b1727e59bf4a819aa93271c7b2732d https://github.com/WebKit/WebKit/commit/9619df3a01b1727e59bf4a819aa93271c7b2732d Author: Timothy Hatcher Date: 2024-07-30 (Tue, 30 Jul 2024) Changed paths: M Source/WTF/wtf/WeakObjCPtr.h Log Message: --- REGRESSION (280925@main): [ macOS iOS ] TestWebKitAPI.WebKit2_WeakObjCPtr.LogicalNegation is a constant failure. https://webkit.org/b/277285 rdar://problem/132755490 Reviewed by Brian Weinstein. Revert the WeakObjCPtr changes of 280925@main. The autorelease pool was retaining the object past the scope of the WeakObjCPtr in the LogicalNegation test, keeping it non-nil longer than expected. * Source/WTF/wtf/WeakObjCPtr.h: (WTF::WeakObjCPtr::operator! const): Switch back to get(). (WTF::WeakObjCPtr::operator bool const): Ditto. Canonical link: https://commits.webkit.org/281582@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
[webkit-changes] [WebKit/WebKit] c8ea30: Update _WKWebExtensionTabCreationOptions and _WKWe...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: c8ea30e4b6ff204b8a058973840720d567406c73 https://github.com/WebKit/WebKit/commit/c8ea30e4b6ff204b8a058973840720d567406c73 Author: Timothy Hatcher Date: 2024-07-26 (Fri, 26 Jul 2024) Changed paths: M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionTabCreationOptions.h M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionTabCreationOptionsInternal.h M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionWindowCreationOptions.h M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionWindowCreationOptionsInternal.h M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIRuntimeCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPITabsCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIWindowsCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionTabCocoa.mm M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIAction.mm M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPITabs.mm M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIWindows.mm M Tools/TestWebKitAPI/cocoa/WebExtensionUtilities.mm Log Message: --- Update _WKWebExtensionTabCreationOptions and _WKWebExtensionWindowCreationOptions. https://webkit.org/b/277091 rdar://problem/132511753 Reviewed by Brian Weinstein. Drop the "waffle" word prefixes from the properties on `_WKWebExtensionTabCreationOptions` and `_WKWebExtensionWindowCreationOptions`, since the class clearly communicates these are options. * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionTabCreationOptions.h: * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionTabCreationOptionsInternal.h: * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionWindowCreationOptions.h: * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionWindowCreationOptionsInternal.h: * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIRuntimeCocoa.mm: (WebKit::WebExtensionContext::runtimeOpenOptionsPage): * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPITabsCocoa.mm: (WebKit::WebExtensionContext::tabsCreate): * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIWindowsCocoa.mm: (WebKit::WebExtensionContext::windowsCreate): * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionTabCocoa.mm: (WebKit::WebExtensionTab::duplicate): * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIAction.mm: (TestWebKitAPI::TEST(WKWebExtensionAPIAction, NavigationOpensInNewTab)): * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPITabs.mm: (TestWebKitAPI::TEST(WKWebExtensionAPITabs, Create)): (TestWebKitAPI::TEST(WKWebExtensionAPITabs, CreateWithSpecifiedOptions)): (TestWebKitAPI::TEST(WKWebExtensionAPITabs, CreateWithRelativeURL)): (TestWebKitAPI::TEST(WKWebExtensionAPITabs, Duplicate)): (TestWebKitAPI::TEST(WKWebExtensionAPITabs, DuplicateWithOptions)): * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIWindows.mm: (TestWebKitAPI::TEST(WKWebExtensionAPIWindows, Create)): (TestWebKitAPI::TEST(WKWebExtensionAPIWindows, CreateWithRelativeURL)): (TestWebKitAPI::TEST(WKWebExtensionAPIWindows, CreateWithRelativeURLs)): * Tools/TestWebKitAPI/cocoa/WebExtensionUtilities.mm: (-[TestWebExtensionManager initForExtension:extensionControllerConfiguration:]): (-[TestWebExtensionWindow openNewTabAtIndex:]): Canonical link: https://commits.webkit.org/281405@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
[webkit-changes] [WebKit/WebKit] 442841: Update Web Extension tabs API based on feedback.
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 442841bf92b4e7def4d5edbf6006afe26c5dd9ff https://github.com/WebKit/WebKit/commit/442841bf92b4e7def4d5edbf6006afe26c5dd9ff Author: Timothy Hatcher Date: 2024-07-25 (Thu, 25 Jul 2024) Changed paths: M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionCommand.h M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionContext.mm M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionTab.h M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionWindow.h M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPITabsCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionTabCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionWindowCocoa.mm M Source/WebKit/UIProcess/Extensions/WebExtensionContext.h M Source/WebKit/UIProcess/Extensions/WebExtensionTab.h M Source/WebKit/UIProcess/Extensions/WebExtensionWindow.h M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPITabs.mm M Tools/TestWebKitAPI/cocoa/WebExtensionUtilities.h M Tools/TestWebKitAPI/cocoa/WebExtensionUtilities.mm Log Message: --- Update Web Extension tabs API based on feedback. https://webkit.org/b/277019 rdar://problem/132419218 Reviewed by Brian Weinstein. Revise several `_WKWebExtensionTab` protocol methods to have a single setter instead of two. This simplifies the client’s code and reduces the likelihood of forgetting to implement both true and false states for features like pin, mute, reader mode, and select. To ensure future-proofing, I changed the `captureVisibleWebpage` method to `takeSnapshot` and pass along the `WKSnapshotConfiguration`. This allows Web Extensions to have different options in the future without requiring additional changes. Additionally, I reduced the reload methods to one with a parameter for fromOrigin, and I removed the “detect” keyword from `detectWebpageLocale`. Finally, `_WKWebExtensionTabChangedPropertiesAll` has been removed since it is not future proof and dangerous if more properties are added later. * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionContext.mm: (toImpl): * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionTab.h: * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionWindow.h: * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPITabsCocoa.mm: (WebKit::WebExtensionContext::tabsReload): * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionTabCocoa.mm: (WebKit::WebExtensionTab::WebExtensionTab): (WebKit::WebExtensionTab::parameters const): (WebKit::WebExtensionTab::changedParameters const): (WebKit::WebExtensionTab::title const): (WebKit::WebExtensionTab::setPinned): (WebKit::WebExtensionTab::setReaderModeShowing): (WebKit::WebExtensionTab::isReaderModeShowing const): (WebKit::WebExtensionTab::setMuted): (WebKit::WebExtensionTab::detectWebpageLocale): (WebKit::WebExtensionTab::captureVisibleWebpage): (WebKit::WebExtensionTab::reload): (WebKit::WebExtensionTab::setSelected): (WebKit::WebExtensionTab::pin): Deleted. (WebKit::WebExtensionTab::unpin): Deleted. (WebKit::WebExtensionTab::toggleReaderMode): Deleted. (WebKit::WebExtensionTab::isShowingReaderMode const): Deleted. (WebKit::WebExtensionTab::mute): Deleted. (WebKit::WebExtensionTab::unmute): Deleted. (WebKit::WebExtensionTab::reloadFromOrigin): Deleted. (WebKit::WebExtensionTab::select): Deleted. (WebKit::WebExtensionTab::deselect): Deleted. * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionWindowCocoa.mm: (WebKit::WebExtensionWindow::WebExtensionWindow): * Source/WebKit/UIProcess/Extensions/WebExtensionContext.h: * Source/WebKit/UIProcess/Extensions/WebExtensionTab.h: (WebKit::WebExtensionTab::pin): (WebKit::WebExtensionTab::unpin): (WebKit::WebExtensionTab::toggleReaderMode): (WebKit::WebExtensionTab::mute): (WebKit::WebExtensionTab::unmute): (WebKit::WebExtensionTab::select): (WebKit::WebExtensionTab::deselect): * Source/WebKit/UIProcess/Extensions/WebExtensionWindow.h: * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPITabs.mm: (TestWebKitAPI::TEST(WKWebExtensionAPITabs, ToggleReaderMode)): (TestWebKitAPI::TEST(WKWebExtensionAPITabs, DetectLanguage)): (TestWebKitAPI::TEST(WKWebExtensionAPITabs, Reload)): * Tools/TestWebKitAPI/cocoa/WebExtensionUtilities.h: * Tools/TestWebKitAPI/cocoa/WebExtensionUtilities.mm: (-[TestWebExtensionTab isReaderModeShowingForWebExtensionContext:]): (-[TestWebExtensionTab setReaderModeShowing:forWebExtensionContext:completionHandler:]): (-[TestWebExtensionTab webpageLocaleForWebExtensionContext:completionHandler:]): (-[TestWebExtensionTab reloadForWebExtensionContext:fromOrigin:completionHandler:]): (-[TestWebExtensionTab setPinned:forWebExtensionContext:completionHandler:]): (-[TestWebExtensionTab setMuted:forWebExtensionContext:completionHandler:]): (-[TestWebExtensionTab setSelected:forWebExtensionContext:completionHandler:]): (-[TestWebExtensionTab isShowingReaderModeForWebExtensionContext
[webkit-changes] [WebKit/WebKit] 12ddf2: Update WebKit Extensions API.
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 12ddf2937b32ccfcab7b9515f7e5e6a3c602fe03 https://github.com/WebKit/WebKit/commit/12ddf2937b32ccfcab7b9515f7e5e6a3c602fe03 Author: Timothy Hatcher Date: 2024-07-22 (Mon, 22 Jul 2024) Changed paths: M Source/WebKit/Shared/API/Cocoa/WKFoundation.h M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtension.h M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionAction.h M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionCommand.h M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionCommand.mm M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionContext.h M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionContextPrivate.h M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionController.h M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionControllerConfiguration.h M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionControllerConfigurationPrivate.h M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionControllerDelegate.h M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionControllerDelegatePrivate.h M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionControllerPrivate.h M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionDataRecord.h M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionDataType.h M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionMatchPattern.h M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionMessagePort.h M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionPermission.h M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionPermissionPrivate.h M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionPrivate.h M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionTab.h M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionTabCreationOptions.h M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionTabCreationOptionsInternal.h M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionWindow.h M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionWindowCreationOptions.h M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionContext.mm Log Message: --- Update WebKit Extensions API. https://webkit.org/b/276822 rdar://problem/132098855 Reviewed by Brian Weinstein. Reset the OS availability for all symbols, adopt modern NS_HEADER_AUDIT_BEGIN/END macros, and mark all classes/protocols with NS_SWIFT_UI_ACTOR. Renamed `discoverabilityTitle` to `title` in `_WKWebExtensionCommand`. Removed `HAVE_UPDATED_WEB_EXTENSION_*` defines that were temporary. * Source/WebKit/Shared/API/Cocoa/WKFoundation.h: Added WK_HEADER_AUDIT_BEGIN/END for compatibility with older SDKs. * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtension.h: * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionAction.h: * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionCommand.h: * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionCommand.mm: (-[_WKWebExtensionCommand description]): Use title. (-[_WKWebExtensionCommand title]): Renamed from discoverabilityTitle. * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionContext.h: * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionContextPrivate.h: * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionController.h: * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionControllerConfiguration.h: * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionControllerConfigurationPrivate.h: * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionControllerDelegate.h: * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionControllerDelegatePrivate.h: * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionControllerPrivate.h: * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionDataRecord.h: * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionDataType.h: * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionMatchPattern.h: * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionMessagePort.h: * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionPermission.h: * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionPermissionPrivate.h: * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionPrivate.h: * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionTab.h: * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionTabCreationOptions.h: * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionTabCreationOptionsInternal.h: * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionWindow.h: * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionWindowCreationOptions.h: * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionContext.mm: (TestWebKitAPI::TEST(WKWebExtensionContext, CommandsParsing)): Canonical link: https://commits.webkit.org/281204@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
[webkit-changes] [WebKit/WebKit] 514431: Update WebKit Extensions API.
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 514431ad30b6766b5d70d3883992703fbb4a4a0d https://github.com/WebKit/WebKit/commit/514431ad30b6766b5d70d3883992703fbb4a4a0d Author: Timothy Hatcher Date: 2024-07-22 (Mon, 22 Jul 2024) Changed paths: M Source/WebKit/Shared/API/Cocoa/WKFoundation.h M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtension.h M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionAction.h M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionCommand.h M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionCommand.mm M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionContext.h M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionContextPrivate.h M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionController.h M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionControllerConfiguration.h M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionControllerConfigurationPrivate.h M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionControllerDelegate.h M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionControllerDelegatePrivate.h M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionControllerPrivate.h M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionDataRecord.h M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionDataType.h M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionMatchPattern.h M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionMessagePort.h M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionPermission.h M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionPermissionPrivate.h M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionPrivate.h M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionTab.h M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionTabCreationOptions.h M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionTabCreationOptionsInternal.h M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionWindow.h M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionWindowCreationOptions.h M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionContext.mm Log Message: --- Update WebKit Extensions API. https://webkit.org/b/276822 rdar://problem/132098855 Reviewed by Brian Weinstein. Reset the OS availability for all symbols, adopt modern NS_HEADER_AUDIT_BEGIN/END macros, and mark all classes/protocols with NS_SWIFT_UI_ACTOR. Renamed `discoverabilityTitle` to `title` in `_WKWebExtensionCommand`. Removed `HAVE_UPDATED_WEB_EXTENSION_*` defines that were temporary. * Source/WebKit/Shared/API/Cocoa/WKFoundation.h: Added WK_HEADER_AUDIT_BEGIN/END for compatibility with older SDKs. * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtension.h: * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionAction.h: * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionCommand.h: * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionCommand.mm: (-[_WKWebExtensionCommand description]): Use title. (-[_WKWebExtensionCommand title]): Renamed from discoverabilityTitle. * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionContext.h: * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionContextPrivate.h: * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionController.h: * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionControllerConfiguration.h: * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionControllerConfigurationPrivate.h: * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionControllerDelegate.h: * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionControllerDelegatePrivate.h: * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionControllerPrivate.h: * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionDataRecord.h: * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionDataType.h: * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionMatchPattern.h: * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionMessagePort.h: * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionPermission.h: * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionPermissionPrivate.h: * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionPrivate.h: * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionTab.h: * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionTabCreationOptions.h: * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionTabCreationOptionsInternal.h: * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionWindow.h: * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionWindowCreationOptions.h: * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionContext.mm: (TestWebKitAPI::TEST(WKWebExtensionContext, CommandsParsing)): Canonical link: https://commits.webkit.org/281197@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
[webkit-changes] [WebKit/WebKit] 10f170: Manifest v2 web_accessible_resources are not working.
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 10f17092d03f8a428e17db665bada7c87010ee2d https://github.com/WebKit/WebKit/commit/10f17092d03f8a428e17db665bada7c87010ee2d Author: Timothy Hatcher Date: 2024-07-19 (Fri, 19 Jul 2024) Changed paths: M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionCocoa.mm M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionController.mm Log Message: --- Manifest v2 web_accessible_resources are not working. https://webkit.org/b/276835 rdar://131750151 Reviewed by Brian Weinstein. Manifest v2 web accessible resources don’t restrict the page URLs they can load from. Therefore, any page should be able to load them. However, the previous code was using a `*://*/*` pattern, which was too restrictive to allow URLs like `about:srcdoc`. Even the `` pattern was too restrictive, as it only allowed supported schemes. To fix this, allow an empty match patterns set to allow any URL. This is only supported on Manifest v2, as an empty patterns array is an error in Manifest v3. * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionCocoa.mm: (WebKit::WebExtension::isWebAccessibleResource): Default to allowed if the patterns are empty. (WebKit::WebExtension::populateWebAccessibleResourcesIfNeeded): Use an empty patterns set. * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionController.mm: (TestWebKitAPI::TEST(WKWebExtensionController, WebAccessibleResourcesV2)): Added. Canonical link: https://commits.webkit.org/281157@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
[webkit-changes] [WebKit/WebKit] 8c332e: Add indexInWindowForWebExtensionContext: to _WKWeb...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 8c332e12731bb524cc6691613c29f703b65182ca https://github.com/WebKit/WebKit/commit/8c332e12731bb524cc6691613c29f703b65182ca Author: Timothy Hatcher Date: 2024-07-18 (Thu, 18 Jul 2024) Changed paths: M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionTab.h M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionTabCocoa.mm M Source/WebKit/UIProcess/Extensions/WebExtensionTab.h M Tools/TestWebKitAPI/cocoa/WebExtensionUtilities.mm Log Message: --- Add indexInWindowForWebExtensionContext: to _WKWebExtensionTab. https://webkit.org/b/276793 rdar://problem/132029062 Reviewed by Brady Eidson. Getting the tabs and converting them all to `WebExtensionTab` can be expensive when the user has hundreds of tabs open in a window. Often the browser can quickly answer what the index in the window is more efficiently. This adds a new optional protocol method to `_WKWebExtensionTab` for getting the index in the window. If it is not implement, fallback to asking the window for all tabs and finding the index from that tabs Vector like before. * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionTab.h: * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionTabCocoa.mm: (WebKit::WebExtensionTab::WebExtensionTab): Cache responds to selector for new method. (WebKit::WebExtensionTab::index const): Use new index method, fallback to tabs. * Source/WebKit/UIProcess/Extensions/WebExtensionTab.h: * Tools/TestWebKitAPI/cocoa/WebExtensionUtilities.mm: (-[TestWebExtensionTab indexInWindowForWebExtensionContext:]): Added. Canonical link: https://commits.webkit.org/281115@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
[webkit-changes] [WebKit/WebKit] d7c940: MobileSafari hangs for 2.6 to 5.2 seconds in WebKi...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: d7c940fc0a09e4cfbc249ad1c62e2d7e2da1430a https://github.com/WebKit/WebKit/commit/d7c940fc0a09e4cfbc249ad1c62e2d7e2da1430a Author: Timothy Hatcher Date: 2024-07-12 (Fri, 12 Jul 2024) Changed paths: M Source/WTF/wtf/Assertions.h M Source/WTF/wtf/WeakObjCPtr.h M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionContext.mm M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIRuntimeCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPITabsCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIWindowsCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionTabCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionWindowCocoa.mm M Source/WebKit/UIProcess/Extensions/WebExtensionAction.h M Source/WebKit/UIProcess/Extensions/WebExtensionContext.h Log Message: --- MobileSafari hangs for 2.6 to 5.2 seconds in WebKit::WebExtensionWindow::tabs(WebKit::WebExtensionWindow::SkipValidation) const. https://webkit.org/b/276552 rdar://131567261 Reviewed by Brian Weinstein. Reduced amount of time spent in web extension classes by removing all internal `conformsToProtocol:` checks. This saves 31.78% of time spent. We still do protocol checks at the API entry points. All the methods in these protocols are optional, and we have `respondsToSelector:` checks that are cached. Removed expensive checks in release builds for the web view configuration of tabs every time we get a `WebExtensionTab`. This saves 23.69% of time spent. This method is still helpful and used in debug builds for catching misconfiguration issues. Stopped making a throw-away `RetainPtr` when checking a `WeakObjCPtr` as a `bool`. This saves 6.7% of time spent. We can use `getAutoreleased()` instead when converting the raw pointer value to `bool`. This was happening in all the `WebExtensionWindow` and `WebExtensionTab` methods that do `isValid()` checks at the beginning of the method. Adopted `UNLIKELY()` in uncommon code branches, logging macros, and assertions to help the compiler optimize these paths better in release builds. In total, this change removes 62.18% of time spent and should be at least 2.64x faster. * Source/WTF/wtf/Assertions.h: Use UNLIKELY() in more cases. * Source/WTF/wtf/WeakObjCPtr.h: (WTF::WeakObjCPtr::operator! const): Use getAutoreleased() to avoid making a throw-away RetainPtr. (WTF::WeakObjCPtr::operator bool const): Ditto. * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionContext.mm: (toImpl): Drive-by to simplify loop type that will be renamed soon. * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIRuntimeCocoa.mm: (WebKit::WebExtensionContext::runtimeOpenOptionsPage): Removed conformsToProtocol: check. * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPITabsCocoa.mm: (WebKit::WebExtensionContext::tabsCreate): Removed conformsToProtocol: check. * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIWindowsCocoa.mm: (WebKit::WebExtensionContext::windowsCreate): Removed conformsToProtocol: check. * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm: (WebKit::WebExtensionContext::getWindow const): Adopt UNLIKELY() and remove conformsToProtocol:. (WebKit::WebExtensionContext::getTab const): Ditto. (WebKit::WebExtensionContext::getCurrentTab const): Ditto. (WebKit::WebExtensionContext::populateWindowsAndTabs): Ditto. * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionTabCocoa.mm: (WebKit::WebExtensionTab::WebExtensionTab): Removed conformsToProtocol: check. (WebKit::WebExtensionTab::window const): Ditto. (WebKit::WebExtensionTab::parentTab const): Ditto. (WebKit::WebExtensionTab::mainWebView const): Reduce property access with variables. (WebKit::WebExtensionTab::duplicate): Removed conformsToProtocol: check. * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionWindowCocoa.mm: (WebKit::WebExtensionWindow::WebExtensionWindow): Removed conformsToProtocol: check. (WebKit::WebExtensionWindow::tabs const): Ditto. (WebKit::WebExtensionWindow::activeTab const): Ditto. * Source/WebKit/UIProcess/Extensions/WebExtensionAction.h: * Source/WebKit/UIProcess/Extensions/WebExtensionContext.h: (WebKit::WebExtensionContext::reportWebViewConfigurationErrorIfNeeded const): Made a no-op in release builds since it has a performance impact with little benefit to release builds. Canonical link: https://commits.webkit.org/280925@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
[webkit-changes] [WebKit/WebKit] 0f7c9d: Crash under WebExtensionContextProxy::enumerateFra...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 0f7c9d38a4fefa0cd1fae7f59bc4103c10274ace https://github.com/WebKit/WebKit/commit/0f7c9d38a4fefa0cd1fae7f59bc4103c10274ace Author: Timothy Hatcher Date: 2024-07-08 (Mon, 08 Jul 2024) Changed paths: M Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.cpp M Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.h Log Message: --- Crash under WebExtensionContextProxy::enumerateFramesAndNamespaceObjects. https://webkit.org/b/276337 rdar://129820399 Reviewed by Chris Dumez and Brian Weinstein. Use forEach() when iterating m_extensionContentFrames, since it might be mutated during the iteration as frames are added or removed. * Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.cpp: (WebKit::WebExtensionContextProxy::enumerateFramesAndNamespaceObjects): * Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.h: Canonical link: https://commits.webkit.org/280753@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
[webkit-changes] [WebKit/WebKit] 8b4305: Change _WKWebExtension creation methods to be asyn...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 8b43053675f985642ddcad0b88f0bcf0219ad7c8 https://github.com/WebKit/WebKit/commit/8b43053675f985642ddcad0b88f0bcf0219ad7c8 Author: Timothy Hatcher Date: 2024-07-03 (Wed, 03 Jul 2024) Changed paths: M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtension.h M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtension.mm M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionContext.mm M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionController.mm M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionMatchPattern.mm M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionMessagePort.mm M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionPrivate.h Log Message: --- Change _WKWebExtension creation methods to be asynchronous. https://webkit.org/b/276196 rdar://problem/131076684 Reviewed by Jeff Miller and Alex Christensen. Add asynchronous convenience methods to _WKWebExtension so we can update these to load the extension data on a background thread in the future (see bug 276194). Moved the existing init methods to _WKWebExtensionPrivate.h. Also make sure the watchOS and tvOS stubs always return an unsupported error and call the completion handlers. * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtension.h: * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtension.mm: (+[_WKWebExtension extensionWithAppExtensionBundle:completionHandler:]): Added. (+[_WKWebExtension extensionWithResourceBaseURL:completionHandler:]): Added. (-[_WKWebExtension initWithAppExtensionBundle:error:]): Call the private method. (-[_WKWebExtension _initWithAppExtensionBundle:error:]): Added. (-[_WKWebExtension initWithResourceBaseURL:error:]): Call the private method. (-[_WKWebExtension _initWithResourceBaseURL:error:]): Added. (+[_WKWebExtension extensionWithAppExtensionBundle:]): Deleted. (+[_WKWebExtension extensionWithResourceBaseURL:]): Deleted. * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionContext.mm: (-[_WKWebExtensionContext loadBackgroundContentWithCompletionHandler:]): Call completionHandler with unsupported error. * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionController.mm: (-[_WKWebExtensionController loadExtensionContext:error:]): Return unsupported error. (-[_WKWebExtensionController unloadExtensionContext:error:]): Ditto. (-[_WKWebExtensionController fetchDataRecordsOfTypes:completionHandler:]): Call completionHandler. (-[_WKWebExtensionController fetchDataRecordOfTypes:forExtensionContext:completionHandler:]): Ditto. (-[_WKWebExtensionController removeDataOfTypes:forDataRecords:completionHandler:]): Ditto. * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionMatchPattern.mm: (-[_WKWebExtensionMatchPattern initWithString:error:]): Return unsupported error. (-[_WKWebExtensionMatchPattern initWithScheme:host:path:error:]): Ditto. * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionMessagePort.mm: (-[_WKWebExtensionMessagePort sendMessage:completionHandler:]): Call completionHandler. * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionPrivate.h: Moved init method here. Added missing documentation comments. Canonical link: https://commits.webkit.org/280642@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
[webkit-changes] [WebKit/WebKit] 262101: EmberJS does not render with a dark theme in dark ...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 26210158488488cceee205996f24db30c91eee53 https://github.com/WebKit/WebKit/commit/26210158488488cceee205996f24db30c91eee53 Author: Timothy Hatcher Date: 2024-07-03 (Wed, 03 Jul 2024) Changed paths: M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIDevToolsPanelsCocoa.mm M Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIDevToolsPanels.h M Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.h Log Message: --- EmberJS does not render with a dark theme in dark mode. https://webkit.org/b/276164 rdar://131001081 Reviewed by Jeff Miller. When the appearance is initially set we might not have any namespace objects yet. Since the appearance is global, we can just store it on the WebExtensionContextProxy. * Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIDevToolsPanelsCocoa.mm: (WebKit::WebExtensionAPIDevToolsPanels::themeName): (WebKit::WebExtensionContextProxy::dispatchDevToolsPanelsThemeChangedEvent): * Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIDevToolsPanels.h: (WebKit::WebExtensionAPIDevToolsPanels::theme const): Deleted. (WebKit::WebExtensionAPIDevToolsPanels::setTheme): Deleted. * Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.h: Canonical link: https://commits.webkit.org/280624@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
[webkit-changes] [WebKit/WebKit] 857da8: declarativeNetRequest enabled rule sets store on W...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 857da87962a64df24a100199dfd8022f3012756a https://github.com/WebKit/WebKit/commit/857da87962a64df24a100199dfd8022f3012756a Author: Timothy Hatcher Date: 2024-06-25 (Tue, 25 Jun 2024) Changed paths: M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionDataRecord.h M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIDeclarativeNetRequestCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/_WKWebExtensionDeclarativeNetRequestRule.mm M Source/WebKit/UIProcess/Extensions/WebExtension.h M Source/WebKit/UIProcess/Extensions/WebExtensionContext.h Log Message: --- declarativeNetRequest enabled rule sets store on WebExtensionContext not WebExtension. https://webkit.org/b/270579 rdar://problem/124147420 Reviewed by Brian Weinstein. Added m_enabledStaticRulesetIDs to WebExtensionContext, and pre-populate it with the enabled rules from WebExtension. Also reference m_enabledStaticRulesetIDs when checking if a ruleset is enabled instead of WebExtension. * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionDataRecord.h: * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIDeclarativeNetRequestCocoa.mm: (WebKit::WebExtensionContext::declarativeNetRequestGetEnabledRulesets): Simplified. (WebKit::WebExtensionContext::loadDeclarativeNetRequestRulesetStateFromStorage): Load the default state or the saved state into m_enabledStaticRulesetIDs. (WebKit::WebExtensionContext::declarativeNetRequestValidateRulesetIdentifiers): Simplified. (WebKit::WebExtensionContext::declarativeNetRequestToggleRulesets): Ditto. (WebKit::WebExtensionContext::declarativeNetRequestEnabledRulesetCount): Deleted. * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionCocoa.mm: (WebKit::WebExtension::declarativeNetRequestRulesets): Return const to prevent modification. (WebKit::WebExtension::declarativeNetRequestRuleset): Added. * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm: (WebKit::WebExtensionContext::unloadDeclarativeNetRequestState): (WebKit::WebExtensionContext::loadDeclarativeNetRequestRules): * Source/WebKit/UIProcess/Extensions/Cocoa/_WKWebExtensionDeclarativeNetRequestRule.mm: * Source/WebKit/UIProcess/Extensions/WebExtension.h: * Source/WebKit/UIProcess/Extensions/WebExtensionContext.h: (WebKit::WebExtensionContext::declarativeNetRequestEnabledRulesetCount): Added. Canonical link: https://commits.webkit.org/280354@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
[webkit-changes] [WebKit/WebKit] 6c33e5: WebExtensionContext::unload needs to clear more st...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 6c33e50ded39ce0ebb621dbd0918aa8bb477fe5f https://github.com/WebKit/WebKit/commit/6c33e50ded39ce0ebb621dbd0918aa8bb477fe5f Author: Timothy Hatcher Date: 2024-06-20 (Thu, 20 Jun 2024) Changed paths: M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm Log Message: --- WebExtensionContext::unload needs to clear more state. https://webkit.org/b/275706 rdar://problem/130224407 Reviewed by Jeff Miller. Audited all member variables of WebExtensionContext and clear / reset the relevant ones in unload() so they don't have lingering state and are ready for the next load(). * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm: (WebKit::WebExtensionContext::unload): Clear all relevant member variables. (WebKit::WebExtensionContext::unloadBackgroundWebView): Clear m_unloadBackgroundWebViewTimer. (WebKit::WebExtensionContext::didFailNavigation): Added missing call to unloadBackgroundWebView(). (WebKit::WebExtensionContext::webViewWebContentProcessDidTerminate): Use unloadBackgroundWebView(). Canonical link: https://commits.webkit.org/280234@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
[webkit-changes] [WebKit/WebKit] 8db235: WebExtensionContext::tabsUpdate and windowsUpdate ...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 8db235e14a7fcce78fc3896d18b2259f7cf75406 https://github.com/WebKit/WebKit/commit/8db235e14a7fcce78fc3896d18b2259f7cf75406 Author: Timothy Hatcher Date: 2024-06-20 (Thu, 20 Jun 2024) Changed paths: M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIAlarmsCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPITabsCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIWindowsCocoa.mm M Tools/TestWebKitAPI/cocoa/WebExtensionUtilities.mm Log Message: --- WebExtensionContext::tabsUpdate and windowsUpdate need to properly capture lambdas. https://webkit.org/b/270804 rdar://problem/124393562 Reviewed by Jeff Miller. Fix tabsUpdate, windowsUpdate, and tabsRemove to properly capture the lambdas’ variables so the completion handler blocks can be called async. Also fixed alarmsCreate to protect the WebExtensionContext lambda capture with a Ref. Updated the TestWebExtensionTab and TestWebExtensionWindow to call all the completion handlers async so this is tested. * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIAlarmsCocoa.mm: (WebKit::WebExtensionContext::alarmsCreate): * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPITabsCocoa.mm: (WebKit::WebExtensionContext::tabsUpdate): (WebKit::WebExtensionContext::tabsRemove): * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIWindowsCocoa.mm: (WebKit::WebExtensionContext::windowsUpdate): * Tools/TestWebKitAPI/cocoa/WebExtensionUtilities.mm: (-[TestWebExtensionTab toggleReaderModeForWebExtensionContext:completionHandler:]): (-[TestWebExtensionTab detectWebpageLocaleForWebExtensionContext:completionHandler:]): (-[TestWebExtensionTab reloadForWebExtensionContext:completionHandler:]): (-[TestWebExtensionTab reloadFromOriginForWebExtensionContext:completionHandler:]): (-[TestWebExtensionTab goBackForWebExtensionContext:completionHandler:]): (-[TestWebExtensionTab goForwardForWebExtensionContext:completionHandler:]): (-[TestWebExtensionTab setParentTab:forWebExtensionContext:completionHandler:]): (-[TestWebExtensionTab pinForWebExtensionContext:completionHandler:]): (-[TestWebExtensionTab unpinForWebExtensionContext:completionHandler:]): (-[TestWebExtensionTab muteForWebExtensionContext:completionHandler:]): (-[TestWebExtensionTab unmuteForWebExtensionContext:completionHandler:]): (-[TestWebExtensionTab duplicateForWebExtensionContext:withOptions:completionHandler:]): (-[TestWebExtensionTab activateForWebExtensionContext:completionHandler:]): (-[TestWebExtensionTab selectForWebExtensionContext:completionHandler:]): (-[TestWebExtensionTab deselectForWebExtensionContext:completionHandler:]): (-[TestWebExtensionTab closeForWebExtensionContext:completionHandler:]): (-[TestWebExtensionWindow setWindowState:forWebExtensionContext:completionHandler:]): (-[TestWebExtensionWindow setFrame:forWebExtensionContext:completionHandler:]): (-[TestWebExtensionWindow closeForWebExtensionContext:completionHandler:]): Canonical link: https://commits.webkit.org/280233@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
[webkit-changes] [WebKit/WebKit] d794fd: Crash at WebExtensionDynamicScripts::executeScript.
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: d794fd4aec27a6051daec59169dd28fc9426056d https://github.com/WebKit/WebKit/commit/d794fd4aec27a6051daec59169dd28fc9426056d Author: Timothy Hatcher Date: 2024-06-20 (Thu, 20 Jun 2024) Changed paths: M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPITabsCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionDynamicScriptsCocoa.mm M Source/WebKit/UIProcess/Extensions/WebExtensionDynamicScripts.h Log Message: --- Crash at WebExtensionDynamicScripts::executeScript. https://webkit.org/b/275668 rdar://130154054 Reviewed by Jeff Miller. The crash was happening because an `optional` was being accessed while not being checked for a value. We don't need to use `optional` here, so this change removes the optional uses and uses `WTF::compactMap` for the one remaining `optional` return to filter the `SourcePair` results into a `SourcePairs` `Vector`. * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPITabsCocoa.mm: (WebKit::WebExtensionContext::tabsExecuteScript): * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionDynamicScriptsCocoa.mm: (WebKit::WebExtensionDynamicScripts::getSourcePairsForParameters): (WebKit::WebExtensionDynamicScripts::executeScript): (WebKit::WebExtensionDynamicScripts::injectStyleSheets): (WebKit::WebExtensionDynamicScripts::removeStyleSheets): * Source/WebKit/UIProcess/Extensions/WebExtensionDynamicScripts.h: Canonical link: https://commits.webkit.org/280212@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
[webkit-changes] [WebKit/WebKit] 96e74a: Crash at WebKit::WebExtensionContext::fireStorageC...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 96e74a542f6f7e6c11d7721f391c7d0e8de5a764 https://github.com/WebKit/WebKit/commit/96e74a542f6f7e6c11d7721f391c7d0e8de5a764 Author: Timothy Hatcher Date: 2024-06-18 (Tue, 18 Jun 2024) Changed paths: M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIStorageCocoa.mm Log Message: --- Crash at WebKit::WebExtensionContext::fireStorageChangedEventIfNeeded. https://webkit.org/b/275640 rdar://129782075 Reviewed by Brian Weinstein. * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIStorageCocoa.mm: (WebKit::WebExtensionContext::fireStorageChangedEventIfNeeded): Don't try to insert nil into the dictionaries if the JSON fails to parse. Canonical link: https://commits.webkit.org/280142@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
[webkit-changes] [WebKit/WebKit] 4960ab: Crash at WebKit::WebExtensionDynamicScripts::WebEx...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 4960abc4c6b70429c02166e1242ccee57f36fdb6 https://github.com/WebKit/WebKit/commit/4960abc4c6b70429c02166e1242ccee57f36fdb6 Author: Timothy Hatcher Date: 2024-06-18 (Tue, 18 Jun 2024) Changed paths: M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIScriptingCocoa.mm Log Message: --- Crash at WebKit::WebExtensionDynamicScripts::WebExtensionRegisteredScript::removeUserScripts. https://webkit.org/b/275637 rdar://130111574 Reviewed by Brian Weinstein. * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIScriptingCocoa.mm: (WebKit::WebExtensionContext::scriptingUnregisterContentScripts): Null-check the result of take() since the scriptID might not be valid anymore, and it wont be found in the HashMap. Canonical link: https://commits.webkit.org/280141@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
[webkit-changes] [WebKit/WebKit] f1994d: Crash at com.apple.WebKit: -[_WKWebExtensionMessag...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: f1994d68f985424f788a88fe4f01cd2e45ed3f5d https://github.com/WebKit/WebKit/commit/f1994d68f985424f788a88fe4f01cd2e45ed3f5d Author: Timothy Hatcher Date: 2024-06-17 (Mon, 17 Jun 2024) Changed paths: M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionMessagePort.h M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionMessagePort.mm M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionMessagePortCocoa.mm M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIRuntime.mm Log Message: --- Crash at com.apple.WebKit: -[_WKWebExtensionMessagePort sendMessage:completionHandler:]. https://webkit.org/b/275589 rdar://129687779 Reviewed by Brian Weinstein. We need to allow `nil` to be sent to `_WKWebExtensionMessagePort`, which will be delivered as `undefined`. This was the behavior in Safari 17, so we need to match to avoid breaking extensions. * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionMessagePort.h: Added nullable to sendMessage:completionHandler:. * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionMessagePort.mm: (-[_WKWebExtensionMessagePort sendMessage:completionHandler:]): Removed NSParameterAssert. * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionMessagePortCocoa.mm: (WebKit::WebExtensionMessagePort::sendMessage): Only call isValidJSONObject if message is not null. * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIRuntime.mm: (TestWebKitAPI::TEST(WKWebExtensionAPIRuntime, ConnectNative)): Removed nullable attributes. (TestWebKitAPI::TEST(WKWebExtensionAPIRuntime, ConnectNativeWithInvalidMessage)): Ditto. (TestWebKitAPI::TEST(WKWebExtensionAPIRuntime, ConnectNativeWithUndefinedMessage)): Added. Canonical link: https://commits.webkit.org/280107@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
[webkit-changes] [WebKit/WebKit] 5f3191: Safari hangs for 650ms to 1100ms in WebKit::WebExt...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 5f3191a6ba07ef36bdc3b6fea7a7b944cf07fd16 https://github.com/WebKit/WebKit/commit/5f3191a6ba07ef36bdc3b6fea7a7b944cf07fd16 Author: Timothy Hatcher Date: 2024-06-11 (Tue, 11 Jun 2024) Changed paths: M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionTabCocoa.mm M Source/WebKit/UIProcess/Extensions/WebExtensionTab.h Log Message: --- Safari hangs for 650ms to 1100ms in WebKit::WebExtensionWindow::tabs(WebKit::WebExtensionWindow::SkipValidation). https://webkit.org/b/275378 rdar://129456659 Reviewed by Brian Weinstein. The validation added in e1a34394bf94 to check if the tab tab was contained in the window ended up being recursive with how it is called multiple times, and per tab when opening a new window that has a lot of tabs. Just remove this validation, since it isn't needed. * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm: (WebKit::WebExtensionContext::didCloseTab): Drop SkipValidation::Yes param. * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionTabCocoa.mm: (WebKit::WebExtensionTab::window const): Remove validation. (WebKit::WebExtensionTab::isActive const): Drop SkipValidation::Yes param. (WebKit::WebExtensionTab::isPrivate const): Ditto. * Source/WebKit/UIProcess/Extensions/WebExtensionTab.h: Canonical link: https://commits.webkit.org/279929@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
[webkit-changes] [WebKit/WebKit] 2234ec: Crash under WebKit::WebExtensionContext::didMoveTab.
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 2234ec7559e04c7ce9ea2cf6bd40ff717e8264f2 https://github.com/WebKit/WebKit/commit/2234ec7559e04c7ce9ea2cf6bd40ff717e8264f2 Author: Timothy Hatcher Date: 2024-06-11 (Tue, 11 Jun 2024) Changed paths: M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm Log Message: --- Crash under WebKit::WebExtensionContext::didMoveTab. https://webkit.org/b/275374 rdar://129507386 Reviewed by Brian Weinstein. Add a null check for newWindow, since if both newWindow and oldWindow are null we will follow the first case and try to deference newWindow accessing identifier(). * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm: (WebKit::WebExtensionContext::didMoveTab): Canonical link: https://commits.webkit.org/279928@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
[webkit-changes] [WebKit/WebKit] 180a53: BitWarden hangs when login fails or logging out of...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 180a5367d48b98a3217ad772b702cc652e9c178d https://github.com/WebKit/WebKit/commit/180a5367d48b98a3217ad772b702cc652e9c178d Author: Timothy Hatcher Date: 2024-06-10 (Mon, 10 Jun 2024) Changed paths: M Source/WebKit/Shared/Extensions/WebExtensionUtilities.h M Source/WebKit/Shared/Extensions/WebExtensionUtilities.mm M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIExtensionCocoa.mm M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPINamespaceCocoa.mm M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIRuntimeCocoa.mm M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIStorageAreaCocoa.mm M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIStorageCocoa.mm M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPITabsCocoa.mm M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIWebPageNamespaceCocoa.mm M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIWindowsCocoa.mm M Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIExtension.h M Source/WebKit/WebProcess/Extensions/API/WebExtensionAPINamespace.h M Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIRuntime.h M Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIStorage.h M Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIStorageArea.h M Source/WebKit/WebProcess/Extensions/API/WebExtensionAPITabs.h M Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIWebPageNamespace.h M Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIWindows.h M Source/WebKit/WebProcess/Extensions/Bindings/Cocoa/JSWebExtensionWrapperCocoa.mm M Source/WebKit/WebProcess/Extensions/Bindings/JSWebExtensionWrapper.h M Source/WebKit/WebProcess/Extensions/Bindings/Scripts/CodeGeneratorExtensions.pm Log Message: --- BitWarden hangs when login fails or logging out of the extension. https://webkit.org/b/275274 rdar://129016688 Reviewed by Brian Weinstein. BitWarden is reloading the background page when a logout occurs. This causes the loop they have to send a 'sleep' message every 10 seconds to the native app to instantly throw an exception inside a generator function. Since the native message is no longer yielding a promise, the loop never exits to the runloop. WebKit is waiting for the runloop to exit to teardown the document, but it is stuck in the infinite loop. To fix this, we need to partially revert 91a979b and stop bailing early in the bindings code when the page can't be found. Only a couple properties need the page to answer the `isPropertyAllowed()` call, so those properties can just do a separate null check. We also need to return a promise instead of `undefined` when the page isn't found and it is needed for a function call, like `runtime.sendNativeMessage()`. This required moving the generated code down closer to the call site, and returning a pre-rejected promise with an unknown error message instead of `undefined`. * Source/WebKit/Shared/Extensions/WebExtensionUtilities.h: * Source/WebKit/Shared/Extensions/WebExtensionUtilities.mm: (WebKit::toJSRejectedPromise): Added. Helper to make a rejected promise. * Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIExtensionCocoa.mm: (WebKit::WebExtensionAPIExtension::isPropertyAllowed): Changed WebPage to a pointer. * Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPINamespaceCocoa.mm: (WebKit::WebExtensionAPINamespace::isPropertyAllowed): Changed WebPage to a pointer. * Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIRuntimeCocoa.mm: (WebKit::WebExtensionAPIRuntime::isPropertyAllowed): Changed WebPage to a pointer. * Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIStorageAreaCocoa.mm: (WebKit::WebExtensionAPIStorageArea::isPropertyAllowed): Changed WebPage to a pointer. * Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIStorageCocoa.mm: (WebKit::WebExtensionAPIStorage::isPropertyAllowed): Changed WebPage to a pointer. * Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPITabsCocoa.mm: (WebKit::WebExtensionAPITabs::isPropertyAllowed): Changed WebPage to a pointer. * Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIWebPageNamespaceCocoa.mm: (WebKit::WebExtensionAPIWebPageNamespace::isPropertyAllowed): Changed WebPage to a pointer. * Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIWindowsCocoa.mm: (WebKit::WebExtensionAPIWindows::isPropertyAllowed): Changed WebPage to a pointer. * Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIExtension.h: * Source/WebKit/WebProcess/Extensions/API/WebExtensionAPINamespace.h: * Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIRuntime.h: * Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIStorage.h: * Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIStorageArea.h
[webkit-changes] [WebKit/WebKit] e1a343: Change some THROW_UNLESS calls into RELEASE_LOG_ER...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: e1a34394bf941789aafa0a92a13a8c605b6a4f1e https://github.com/WebKit/WebKit/commit/e1a34394bf941789aafa0a92a13a8c605b6a4f1e Author: Timothy Hatcher Date: 2024-06-02 (Sun, 02 Jun 2024) Changed paths: M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionTab.h M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPICookiesCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionTabCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionWindowCocoa.mm M Source/WebKit/UIProcess/Extensions/WebExtensionTab.h M Source/WebKit/UIProcess/Extensions/WebExtensionWindow.h M Tools/TestWebKitAPI/cocoa/WebExtensionUtilities.mm Log Message: --- Change some THROW_UNLESS calls into RELEASE_LOG_ERROR instead. https://webkit.org/b/275035 rdar://problem/129138876 Reviewed by Brady Eidson. Change the tabs / activeTab and mainWebView exceptions into error logs. This also removes webViewsForWebExtensionContext: which is no longer used. Fixed some test harness code for tabs, so they are in the correct state and not hitting these ASSERTs in debug runs of the tests. * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionTab.h: * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPICookiesCocoa.mm: (WebKit::WebExtensionContext::cookiesGetAllCookieStores): * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm: (WebKit::WebExtensionContext::getOrCreateTab const): Fix issue with private tabs. (WebKit::WebExtensionContext::getCurrentTab const): (WebKit::WebExtensionContext::didCloseTab): (WebKit::WebExtensionContext::reportWebViewConfigurationErrorIfNeeded const): Simplify by letting the logging in the webView() method do the work. (WebKit::WebExtensionContext::openInspectors const): * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionTabCocoa.mm: (WebKit::WebExtensionTab::WebExtensionTab): (WebKit::WebExtensionTab::window const): (WebKit::WebExtensionTab::mainWebView const): (WebKit::WebExtensionTab::isActive const): (WebKit::WebExtensionTab::isPrivate const): (WebKit::WebExtensionTab::processes const): (WebKit::WebExtensionTab::webViews const): Deleted. * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionWindowCocoa.mm: (WebKit::WebExtensionWindow::tabs const): (WebKit::WebExtensionWindow::activeTab const): * Source/WebKit/UIProcess/Extensions/WebExtensionTab.h: * Source/WebKit/UIProcess/Extensions/WebExtensionWindow.h: * Tools/TestWebKitAPI/cocoa/WebExtensionUtilities.mm: (-[TestWebExtensionWindow setTabs:]): (-[TestWebExtensionWindow openNewTabAtIndex:]): (-[TestWebExtensionWindow closeTab:windowIsClosing:]): (-[TestWebExtensionWindow replaceTab:withTab:]): Canonical link: https://commits.webkit.org/279630@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
[webkit-changes] [WebKit/WebKit] 766629: Fire open and closed events when a tab is replaced.
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 766629a0386fda276dd5d0db256a440056efd16c https://github.com/WebKit/WebKit/commit/766629a0386fda276dd5d0db256a440056efd16c Author: Timothy Hatcher Date: 2024-06-02 (Sun, 02 Jun 2024) Changed paths: M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIRuntimeCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionTabCocoa.mm M Source/WebKit/UIProcess/Extensions/WebExtensionContext.h M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPITabsCocoa.mm M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPITabs.mm M Tools/TestWebKitAPI/cocoa/WebExtensionUtilities.mm Log Message: --- Fire open and closed events when a tab is replaced. https://webkit.org/b/274794 rdar://123344546 Reviewed by Brian Weinstein. Fire the onCreated and onRemoved events when tabs are replaced. Also return errors where an extension messages a tab that does not exist to prevent more confusing errors later when tab properties are missing, etc. Also make sure to always include the windowId and index properties on the tab object, even if they are -1 and NaN. * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIRuntimeCocoa.mm: (WebKit::WebExtensionContext::runtimeSendMessage): Added error if tab is not found. (WebKit::WebExtensionContext::runtimeConnect): Ditto. * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm: (WebKit::WebExtensionContext::didCloseTab): Call forgetTab if the tab is already closed. (WebKit::WebExtensionContext::didReplaceTab): Fire open and closed events. * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionTabCocoa.mm: (WebKit::WebExtensionTab::parameters const): Always include window and index. * Source/WebKit/UIProcess/Extensions/WebExtensionContext.h: * Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPITabsCocoa.mm: (WebKit::toWebAPI): Use toWebAPI for the index of notFound is returned as NaN. * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPITabs.mm: (TestWebKitAPI::TEST(WKWebExtensionAPITabs, ReplacedEvent)): Added. * Tools/TestWebKitAPI/cocoa/WebExtensionUtilities.mm: (-[TestWebExtensionWindow replaceTab:withTab:]): Swap activeTab if it was active. Canonical link: https://commits.webkit.org/279629@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
[webkit-changes] [WebKit/WebKit] 19072c: Crash in WebKit::WebExtensionContext::permissionSt...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 19072c54e8faeac1d154463c5e9b10e7aa5749d1 https://github.com/WebKit/WebKit/commit/19072c54e8faeac1d154463c5e9b10e7aa5749d1 Author: Timothy Hatcher Date: 2024-05-31 (Fri, 31 May 2024) Changed paths: M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIScriptingCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPITabsCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionDynamicScriptsCocoa.mm M Source/WebKit/UIProcess/Extensions/WebExtensionDynamicScripts.h Log Message: --- Crash in WebKit::WebExtensionContext::permissionState. https://webkit.org/b/274975 rdar://128446076 Reviewed by Brian Weinstein. This crash could happen if the tab was dealloced while a script was being injected into it. We were not retaining the tab while waiting for the frames for the web view. * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIScriptingCocoa.mm: (WebKit::WebExtensionContext::scriptingExecuteScript): Pass a reference to tab. * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPITabsCocoa.mm: (WebKit::WebExtensionContext::tabsExecuteScript): Pass a reference to tab. * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionDynamicScriptsCocoa.mm: (WebKit::WebExtensionDynamicScripts::executeScript): Make tab a reference since it is required and use a Ref for the lambda capture. * Source/WebKit/UIProcess/Extensions/WebExtensionDynamicScripts.h: Canonical link: https://commits.webkit.org/279594@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
[webkit-changes] [WebKit/WebKit] d0a686: Fire open and closed events when a tab is replaced.
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: d0a6863b9a013dedac63c644883b0736f5d5dd63 https://github.com/WebKit/WebKit/commit/d0a6863b9a013dedac63c644883b0736f5d5dd63 Author: Timothy Hatcher Date: 2024-05-29 (Wed, 29 May 2024) Changed paths: M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIRuntimeCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionTabCocoa.mm M Source/WebKit/UIProcess/Extensions/WebExtensionContext.h M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPITabsCocoa.mm M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPITabs.mm M Tools/TestWebKitAPI/cocoa/WebExtensionUtilities.mm Log Message: --- Fire open and closed events when a tab is replaced. https://webkit.org/b/274794 rdar://123344546 Reviewed by Brian Weinstein. Fire the onCreated and onRemoved events when tabs are replaced. Also return errors where an extension messages a tab that does not exist to prevent more confusing errors later when tab properties are missing, etc. Also make sure to always include the windowId and index properties on the tab object, even if they are -1 and NaN. * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIRuntimeCocoa.mm: (WebKit::WebExtensionContext::runtimeSendMessage): Added error if tab is not found. (WebKit::WebExtensionContext::runtimeConnect): Ditto. * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm: (WebKit::WebExtensionContext::didCloseTab): Call forgetTab if the tab is already closed. (WebKit::WebExtensionContext::didReplaceTab): Fire open and closed events. * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionTabCocoa.mm: (WebKit::WebExtensionTab::parameters const): Always include window and index. * Source/WebKit/UIProcess/Extensions/WebExtensionContext.h: * Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPITabsCocoa.mm: (WebKit::toWebAPI): Use toWebAPI for the index of notFound is returned as NaN. * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPITabs.mm: (TestWebKitAPI::TEST(WKWebExtensionAPITabs, ReplacedEvent)): Added. * Tools/TestWebKitAPI/cocoa/WebExtensionUtilities.mm: (-[TestWebExtensionWindow replaceTab:withTab:]): Swap activeTab if it was active. Canonical link: https://commits.webkit.org/279464@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
[webkit-changes] [WebKit/WebKit] f4d3ac: Content Script CSS overriding style attributes inc...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: f4d3ac245e7d24d2d7702b884c10f29527be307a https://github.com/WebKit/WebKit/commit/f4d3ac245e7d24d2d7702b884c10f29527be307a Author: Timothy Hatcher 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
[webkit-changes] [WebKit/WebKit] 75ca80: REGRESSION (273393@main): Elevated CPU use in UIPr...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 75ca8019625a49f6806846f69f7c6e028dfef6e4 https://github.com/WebKit/WebKit/commit/75ca8019625a49f6806846f69f7c6e028dfef6e4 Author: Timothy Hatcher Date: 2024-05-01 (Wed, 01 May 2024) Changed paths: M Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.cpp M Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.h M Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.serialization.in M Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp M Source/WebKit/WebProcess/Extensions/WebExtensionControllerProxy.h M Source/WebKit/WebProcess/Network/WebLoaderStrategy.cpp Log Message: --- REGRESSION (273393@main): Elevated CPU use in UIProcess and NetworkProcess due to always sending resource load messages to UIProcess. https://webkit.org/b/273582 rdar://127380142 Reviewed by Brian Weinstein. Only send the resource messages if the page has loaded extensions, not just an extension controller. The NetworkResourceLoadParameters are sent over for each scheduled load, so it is always accurate. Renamed the struct field from pageHasExtensionController to pageHasLoadedWebExtensions. * Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.cpp: (WebKit::NetworkResourceLoadParameters::NetworkResourceLoadParameters): * Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.h: * Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.serialization.in: * Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp: (WebKit::NetworkResourceLoader::shouldSendResourceLoadMessages const): * Source/WebKit/WebProcess/Extensions/WebExtensionControllerProxy.h: * Source/WebKit/WebProcess/Network/WebLoaderStrategy.cpp: (WebKit::addParametersShared): Canonical link: https://commits.webkit.org/278248@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
[webkit-changes] [WebKit/WebKit] 484a4f: Safari crashes at WebKit::WebExtensionContext::ope...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 484a4fe7b14f08bae1bdccd3e68309bc1ec1ef38 https://github.com/WebKit/WebKit/commit/484a4fe7b14f08bae1bdccd3e68309bc1ec1ef38 Author: Timothy Hatcher Date: 2024-05-01 (Wed, 01 May 2024) Changed paths: M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionContext.mm M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPICookiesCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm M Source/WebKit/UIProcess/Extensions/WebExtensionContext.h Log Message: --- Safari crashes at WebKit::WebExtensionContext::openInspectors. https://webkit.org/b/273560 rdar://127189700 Reviewed by Brian Weinstein. Add a null check for _WKInspector befor tryign to get API::Inspector from it. Also moved extensionHasAccess() check to openWindows() and openTabs(), so the caller does not need to do it. A extensionHasAccess() check was missing in the openInspectors() loop of openTabs(). Also skip extra work with early returns for !hasInspectorBackgroundPage(). Finally, adopt WTF::compactMap and WTF::map() more. * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionContext.mm: (-[_WKWebExtensionContext openWindows]): Pass IgnoreExtensionAccess::Yes since API should see all. (-[_WKWebExtensionContext openTabs]): Ditto. * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPICookiesCocoa.mm: (WebKit::WebExtensionContext::cookiesGetAllCookieStores): * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm: (WebKit::WebExtensionContext::openWindows const): (WebKit::WebExtensionContext::openTabs const): (WebKit::WebExtensionContext::openInspectors const): (WebKit::WebExtensionContext::loadedInspectors const): (WebKit::WebExtensionContext::inspectorExtension const): (WebKit::WebExtensionContext::inspector const): (WebKit::WebExtensionContext::processes const): (WebKit::WebExtensionContext::isInspectorBackgroundPage const): (WebKit::WebExtensionContext::isDevToolsMessageAllowed): Removed #ifdef since this method is already guarded by it. * Source/WebKit/UIProcess/Extensions/WebExtensionContext.h: Canonical link: https://commits.webkit.org/278239@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
[webkit-changes] [WebKit/WebKit] 3b5714: Content Scripts running in subframe without mainfr...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 3b5714016d2450752f2d89e2068d44bcbae9945c https://github.com/WebKit/WebKit/commit/3b5714016d2450752f2d89e2068d44bcbae9945c Author: Timothy Hatcher Date: 2024-04-26 (Fri, 26 Apr 2024) Changed paths: M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIStorageCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPITabsCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm M Source/WebKit/UIProcess/Extensions/WebExtensionContext.h M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIRuntime.mm M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIStorage.mm M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPITabs.mm Log Message: --- Content Scripts running in subframe without mainframe permission fail to work properly. https://webkit.org/b/270218 rdar://problem/123750228 Reviewed by Brian Weinstein. Allow sending a message to a tab even if the extension does not have permissions for the main frame. The other browsers don't reject with an error in this case, the message is just dropped on the floor later on in processes() when the listeners are checked. Also allows subframes with content scripts to access storage if the main frame does not have host permission. This was being blocked by a permission check, but that required main frame host permissions. This is already covered in a permissive way for frames by the isStorageMessageAllowed() check that happens when a storage IPC message is received. * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIStorageCocoa.mm: (WebKit::WebExtensionContext::storageGet): Removed extensionCanAccessWebPage() call. (WebKit::WebExtensionContext::storageGetBytesInUse): Ditto. (WebKit::WebExtensionContext::storageSet): Ditto. (WebKit::WebExtensionContext::storageRemove): Ditto. (WebKit::WebExtensionContext::storageClear): Ditto. (WebKit::WebExtensionContext::storageSetAccessLevel): Ditto. * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPITabsCocoa.mm: (WebKit::WebExtensionContext::tabsSendMessage): Removed permission check / error. (WebKit::WebExtensionContext::tabsConnect): Ditto. * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm: (WebKit::WebExtensionContext::extensionCanAccessWebPage): Deleted. * Source/WebKit/UIProcess/Extensions/WebExtensionContext.h: * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIRuntime.mm: (TestWebKitAPI::TEST(WKWebExtensionAPIRuntime, SendMessageFromSubframe)): Added. (TestWebKitAPI::TEST(WKWebExtensionAPIRuntime, ConnectFromSubframe)): Added. * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIStorage.mm: (TestWebKitAPI::TEST(WKWebExtensionAPIStorage, StorageFromSubframe)): Added. * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPITabs.mm: (TestWebKitAPI::TEST(WKWebExtensionAPITabs, SendMessageFromBackgroundToSubframe)): Added. (TestWebKitAPI::TEST(WKWebExtensionAPITabs, ConnectToSubframe)): Added. Canonical link: https://commits.webkit.org/278066@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
[webkit-changes] [WebKit/WebKit] 10d192: Add support for loading the background content for...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 10d19200a9d72b72e9d2a0a149dc35da825df3aa https://github.com/WebKit/WebKit/commit/10d19200a9d72b72e9d2a0a149dc35da825df3aa Author: Timothy Hatcher Date: 2024-04-25 (Thu, 25 Apr 2024) Changed paths: M Source/WebCore/en.lproj/Localizable.strings M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtension.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 M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm M Source/WebKit/UIProcess/Extensions/WebExtension.h M Source/WebKit/UIProcess/Extensions/WebExtensionContext.h Log Message: --- Add support for loading the background content for a _WKWebExtensionContext. https://webkit.org/b/273269 rdar://126994428 Reviewed by Brian Weinstein. Added a loadBackgroundContentWithCompletionHandler: method, and changed how the background load errors are created. This is a step in the direction of having WebExtensionContext track runtime errors separate from WebExtension (see bug 270580). * Source/WebCore/en.lproj/Localizable.strings: Updated with update-webkit-localizable-strings. * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtension.h: (NS_ERROR_ENUM): Removed _WKWebExtensionErrorBackgroundContentFailedToLoad. * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionContext.h: (NS_ERROR_ENUM): Added _WKWebExtensionContextErrorNoBackgroundContent and _WKWebExtensionContextErrorBackgroundContentFailedToLoad. * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionContext.mm: (-[_WKWebExtensionContext loadBackgroundContentWithCompletionHandler:]): Added. * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionCocoa.mm: (WebKit::toAPI): Removed BackgroundContentFailedToLoad. (WebKit::WebExtension::createError): Ditto. * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm: (WebKit::toAPI): Added new error codes. (WebKit::WebExtensionContext::createError): Ditto. (WebKit::WebExtensionContext::loadBackgroundContent): Added. (WebKit::WebExtensionContext::loadBackgroundWebView): Set m_backgroundContentLoadError instead of recording it on the WebExtension. (WebKit::WebExtensionContext::didFailNavigation): Ditto. * Source/WebKit/UIProcess/Extensions/WebExtension.h: * Source/WebKit/UIProcess/Extensions/WebExtensionContext.h: (WebKit::WebExtensionContext::backgroundContentLoadError const): Added. Canonical link: https://commits.webkit.org/277998@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
[webkit-changes] [WebKit/WebKit] da4ea5: Web Extension popup is slow and jittery when prese...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: da4ea518b228c320fb16ae92d065a990ff3dab17 https://github.com/WebKit/WebKit/commit/da4ea518b228c320fb16ae92d065a990ff3dab17 Author: Timothy Hatcher Date: 2024-04-22 (Mon, 22 Apr 2024) Changed paths: M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionActionCocoa.mm M Source/WebKit/UIProcess/Extensions/WebExtensionAction.h Log Message: --- Web Extension popup is slow and jittery when presenting. https://webkit.org/b/273079 rdar://126646845 Reviewed by Brian Weinstein. Fixes a few issues where popups were not presenting fast and jittering when animating open. * Add the web view temporarily to a window to force it to layout. This was the primary issue, since WebKit was not laying-out various extension popups before it was added to a window. * Stop updating the popover size when the size hasn't changed above the minimum. * Reduced the timeout to 250ms in Release builds (and triple in Debug). All popups now display in less than 100ms on an M3 MacBook Pro. This can be reduced because the timeout starts after the document load, not prior to the load like it did before 275454@main. * Prevent the delegate method from being called when just accessing the popupWebView property on the action. It should only be called when the performActionForTab: method is called. * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionActionCocoa.mm: (-[_WKWebExtensionActionWebView contentSize]): Renamed from _contentSize to be public. (-[_WKWebExtensionActionWebView _contentSizeDidChange]): Only call popupSizeDidChange when the size is above the minimum. (-[_WKWebExtensionActionWebView _contentSizeHasStabilized]): Renamed from _checkIfContentSizeStabilizedAndPresentPopup to be clearer. (-[_WKWebExtensionActionPopover initWithWebExtensionAction:]): (WebKit::WebExtensionAction::WebExtensionAction): (WebKit::WebExtensionAction::popupWebView): Remove unused LoadOnFirstAccess parameter. (WebKit::WebExtensionAction::presentPopupWhenReady): (WebKit::WebExtensionAction::popupDidFinishDocumentLoad): (WebKit::WebExtensionAction::readyToPresentPopup): (WebKit::WebExtensionAction::popupSizeDidChange): Moved readyToPresentPopup() call here. (WebKit::WebExtensionAction::closePopup): (-[_WKWebExtensionActionWebView _contentSize]): Deleted. (-[_WKWebExtensionActionWebView _checkIfContentSizeStabilizedAndPresentPopup]): Deleted. * Source/WebKit/UIProcess/Extensions/WebExtensionAction.h: (WebKit::WebExtensionAction::shouldPresentPopupWhenReady const): Canonical link: https://commits.webkit.org/277838@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
[webkit-changes] [WebKit/WebKit] 8e0154: REGRESSION(264584@main): Web Extension debug loggi...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 8e01542d58ad3d5c7370245d7cd460066215c3d1 https://github.com/WebKit/WebKit/commit/8e01542d58ad3d5c7370245d7cd460066215c3d1 Author: Timothy Hatcher Date: 2024-04-18 (Thu, 18 Apr 2024) Changed paths: M Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm Log Message: --- REGRESSION(264584@main): Web Extension debug logging is not being logged. https://webkit.org/b/272918 rdar://problem/126708221 Reviewed by Per Arne Vollan. os_log_set_hook takes a minimum log type, so set this to OS_LOG_TYPE_DEBUG for debug builds. Also only return early for debug and info types in release builds. This makes sure debug builds get all log message types. While release builds stay mostly the same as before. However, info logs are now also filtered out, which was the expected behavior before, but info logs were still getting sent. * Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::registerLogHook): Canonical link: https://commits.webkit.org/277700@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
[webkit-changes] [WebKit/WebKit] 63355e: declarativeNetRequest redirect and modifyHeaders r...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 63355e0745267f9891ebe07dc1f3aa96e59eb707 https://github.com/WebKit/WebKit/commit/63355e0745267f9891ebe07dc1f3aa96e59eb707 Author: Timothy Hatcher Date: 2024-04-18 (Thu, 18 Apr 2024) Changed paths: M Source/WebKit/UIProcess/Cocoa/NavigationState.mm M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionControllerCocoa.mm M Source/WebKit/UIProcess/Extensions/WebExtensionController.h M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIDeclarativeNetRequest.mm Log Message: --- declarativeNetRequest redirect and modifyHeaders rules don't work. https://webkit.org/b/272763 rdar://problem/126562335 Reviewed by Brian Weinstein. We were not setting activeContentRuleListActionPatterns() for the network process to check if the extension had permissions to modify the requests, since the rules require declarativeNetRequestWithHostAccess and granted host permission patterns. * Source/WebKit/UIProcess/Cocoa/NavigationState.mm: (WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction): Added call to extension controller. * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionCocoa.mm: (WebKit::WebExtension::resourceDataForPath): Add support for any JSON. * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionControllerCocoa.mm: (WebKit::WebExtensionController::updateWebsitePoliciesForNavigation): Added. Set activeContentRuleListActionPatterns for each extension context that has declarativeNetRequestWithHostAccess permissions. * Source/WebKit/UIProcess/Extensions/WebExtensionController.h: * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIDeclarativeNetRequest.mm: (TestWebKitAPI::TEST(WKWebExtensionAPIDeclarativeNetRequest, DISABLED_RedirectRule)): Added. Blocked on fixing rdar://116459903 (Web Process is crashing when using declarativeNetRequest to redirect a page). (TestWebKitAPI::TEST(WKWebExtensionAPIDeclarativeNetRequest, RedirectRuleWithoutHostAccessPermission)): Added. (TestWebKitAPI::TEST(WKWebExtensionAPIDeclarativeNetRequest, RedirectRuleWithoutHostPermission)): Added. (TestWebKitAPI::TEST(WKWebExtensionAPIDeclarativeNetRequest, ModifyHeadersRule)): Added. (TestWebKitAPI::TEST(WKWebExtensionAPIDeclarativeNetRequest, ModifyHeadersRuleWithoutHostAccessPermission)): Added. (TestWebKitAPI::TEST(WKWebExtensionAPIDeclarativeNetRequest, ModifyHeadersRuleWithoutHostPermission)): Added. Canonical link: https://commits.webkit.org/277681@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
[webkit-changes] [WebKit/WebKit] 302615: Web Extensions should set _maskedURLSchemes for WK...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 302615241a683d73784621ed5189724a8380bb7d https://github.com/WebKit/WebKit/commit/302615241a683d73784621ed5189724a8380bb7d Author: Timothy Hatcher Date: 2024-04-11 (Thu, 11 Apr 2024) Changed paths: M Source/WebKit/UIProcess/API/APIPageConfiguration.cpp M Source/WebKit/UIProcess/API/APIPageConfiguration.h M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebViewConfiguration.mm Log Message: --- Web Extensions should set _maskedURLSchemes for WKWebViewConfiguration. https://webkit.org/b/267712 rdar://problem/121202843 Reviewed by Brian Weinstein. If a WKWebViewConfiguration has a _WKWebExtensionController, have _maskedURLSchemes default to the set of registered Web Extension URL schemes from _WKWebExtensionMatchPattern. * Source/WebKit/UIProcess/API/APIPageConfiguration.cpp: (API::PageConfiguration::maskedURLSchemes const): Added. Return web extension schemes by default if the setter hasn't been called. * Source/WebKit/UIProcess/API/APIPageConfiguration.h: (API::PageConfiguration::setMaskedURLSchemes): Set m_data.maskedURLSchemesWasSet. (API::PageConfiguration::maskedURLSchemes const): Deleted. * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm: (WebKit::WebExtensionContext::webViewConfiguration): Set _maskedURLSchemes to an empty set. * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebViewConfiguration.mm: (TEST(WebKit, ConfigurationMaskedURLSchemes)): Updated expectations. Canonical link: https://commits.webkit.org/277409@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
[webkit-changes] [WebKit/WebKit] 28ec4a: Missing result from Web Extension storage get() wi...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 28ec4a08ef0a78d852aad9a1a6b7392c3c9dd3c5 https://github.com/WebKit/WebKit/commit/28ec4a08ef0a78d852aad9a1a6b7392c3c9dd3c5 Author: Timothy Hatcher Date: 2024-04-11 (Thu, 11 Apr 2024) Changed paths: M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIStorageAreaCocoa.mm M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIStorage.mm Log Message: --- Missing result from Web Extension storage get() with empty string key. https://webkit.org/b/272542 rdar://problem/126290503 Reviewed by Brian Weinstein. Allow getting an empty key from storage, we already allowed setting it. It was also working when using an array of keys, but not a string key. Bug details: https://github.com/lapcat/SafariExtensions/issues/12 * Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIStorageAreaCocoa.mm: (WebKit::WebExtensionAPIStorageArea::get): Don't return early if the key is empty. * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIStorage.mm: (TestWebKitAPI::TEST(WKWebExtensionAPIStorage, Get)): Add tests for empty key. Canonical link: https://commits.webkit.org/277401@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
[webkit-changes] [WebKit/WebKit] 6d2709: Add support for background preferred_environment i...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 6d27093d068a866cc0f2948e561882d1f2d8039b https://github.com/WebKit/WebKit/commit/6d27093d068a866cc0f2948e561882d1f2d8039b Author: Timothy Hatcher Date: 2024-04-08 (Mon, 08 Apr 2024) Changed paths: M Source/WebCore/en.lproj/Localizable.strings M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionCocoa.mm M Source/WebKit/UIProcess/Extensions/WebExtension.h M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtension.mm M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionController.mm Log Message: --- Add support for background preferred_environment in Web Extensions. https://webkit.org/b/272244 rdar://problem/125988233 Reviewed by Brian Weinstein. Add support for extensions declaring a `preferred_environment` in the `background` entry. The `preferred_environment` key can be a string or an array of strings. When an array is used, the browser will prefer the first one it supports. "background": { "preferred_environment": [ "service_worker", "document" ], "scripts": [ "script1.js", "script2.js" ] } If no environments are specified or supported, then we fallback to the previous handling of the `scripts`, `page` or `service_worker` keys (in that order) for backwards compatibility. This allows cross-browser extensions to have a single manifest that works in multiple browsers. Chrome plans to only support service workers going forward, but Safari and Firefox plan to support pages and service workers, and extension might prefer a document environment over a service worker in Safari and Firefox. This also adds support for a `_generated_service_worker.js` script that works with normal scripts or modules based on the `scripts` and `type` keys if `preferred_environment` is `service_worker`. WECG discussion here: https://github.com/w3c/webextensions/issues/282 * Source/WebCore/en.lproj/Localizable.strings: Updated. * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionCocoa.mm: (WebKit::WebExtension::resourceStringForPath): Support _generated_service_worker.js. (WebKit::WebExtension::resourceDataForPath): Ditto. (WebKit::WebExtension::backgroundContentUsesModules): Use renamed m_backgroundContentUsesModules. (WebKit::WebExtension::backgroundContentIsServiceWorker): Use new m_backgroundContentEnvironment. (WebKit::WebExtension::backgroundContentPath): Support _generated_service_worker.js. (WebKit::WebExtension::generatedBackgroundContent): Generate the service worker script. (WebKit::WebExtension::populateBackgroundPropertiesIfNeeded): Handle preferred_environment. * Source/WebKit/UIProcess/Extensions/WebExtension.h: Added m_backgroundContentEnvironment and renamed m_backgroundPageUsesModules to m_backgroundContentUsesModules. * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtension.mm: (TestWebKitAPI::TEST(WKWebExtension, BackgroundPreferredEnvironmentParsing)): Added. * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionController.mm: (TestWebKitAPI::TEST(WKWebExtensionController, BackgroundWithServiceWorkerPreferredEnvironment)): Added. (TestWebKitAPI::TEST(WKWebExtensionController, BackgroundWithPageDocumentPreferredEnvironment)): Added. (TestWebKitAPI::TEST(WKWebExtensionController, BackgroundWithScriptsDocumentPreferredEnvironment)): Added. (TestWebKitAPI::TEST(WKWebExtensionController, BackgroundWithMultipleDocumentModuleScripts)): Added. (TestWebKitAPI::TEST(WKWebExtensionController, BackgroundWithMultipleServiceWorkerScripts)): Added. (TestWebKitAPI::TEST(WKWebExtensionController, BackgroundWithMultipleServiceWorkerModuleScripts)): Added. Canonical link: https://commits.webkit.org/277228@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
[webkit-changes] [WebKit/WebKit] ca4dc0: REGRESSION (277022@main): [ MacOS iOS ] 2X TestWeb...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: ca4dc0387b4055b3743ed35c86a1580673123378 https://github.com/WebKit/WebKit/commit/ca4dc0387b4055b3743ed35c86a1580673123378 Author: Timothy Hatcher Date: 2024-04-04 (Thu, 04 Apr 2024) Changed paths: M Source/WebKit/Shared/Extensions/_WKWebExtensionSQLiteStore.mm M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm Log Message: --- REGRESSION (277022@main): [ MacOS iOS ] 2X TestWebKitAPI.WKWebExtension are constant failures and 1 is a constant crash. https://webkit.org/b/272177 rdar://problem/125924822 Reviewed by Brian Weinstein. Only consider an extension updated if it has bundle hashes to compare. When running tests, both lastSeenBundleHash and currentBundleHash will be nil, meaning the isEqualToData: will always be NO, but we set the inverse in extensionDidChange. Also the crash in WKWebExtensionDataRecord.GetDataRecordsForMultipleContexts was due to the extension thinking it was updated, so the registered content script database was being deleted. In this case the extension folder was freshly created before the load, so it was empty. When a database gets deleted, the empty containing folder is also deleted. This causes an error when we go to save the State.plist file in the folder that should exist. That in turn caused the record lookup to only find one of two extensions, leading to an exception in the array access. Stop having the database code delete the empty parent directory, since that is a holdover from Safari storage structure where there wasn't a State.plist file, and only database storage was inside the extension directory. * Source/WebKit/Shared/Extensions/_WKWebExtensionSQLiteStore.mm: (-[_WKWebExtensionSQLiteStore _deleteDatabase]): Remove call to _deleteExtensionStorageFolderIfEmpty. (-[_WKWebExtensionSQLiteStore _deleteExtensionStorageFolderIfEmpty]): Deleted. * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm: (WebKit::WebExtensionContext::determineInstallReasonDuringLoad): Check lastSeenBundleHash and currentBundleHash for nil before calling isEqualToData:. Canonical link: https://commits.webkit.org/277082@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
[webkit-changes] [WebKit/WebKit] adf972: Figure out how to tell if a Web Extension has been...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: adf9728dc4e18d23d5393998b76018b74154b910 https://github.com/WebKit/WebKit/commit/adf9728dc4e18d23d5393998b76018b74154b910 Author: Timothy Hatcher Date: 2024-04-03 (Wed, 03 Apr 2024) Changed paths: M Source/WTF/wtf/spi/cocoa/SecuritySPI.h M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIScriptingCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm M Source/WebKit/UIProcess/Extensions/WebExtension.h M Source/WebKit/UIProcess/Extensions/WebExtensionContext.h Log Message: --- Figure out how to tell if a Web Extension has been updated in WebKit. https://webkit.org/b/249266 rdar://problem/103573769 Reviewed by Brian Weinstein. Use the code signing hash from the app extension bundle to tell if an extension has updated. This will change after building in Xcode or via App Store updates. There is no quick way to do this for non-bundle code paths, so we still consider an extension updated if the version in the manifest changes. Unfortunately, there is no way to test this with TestWebKitAPI currently since it requires an extension to be loaded from a bundle, code signed, updated, and reloaded. I was able to manually test this against extensions loaded in Safari. * Source/WTF/wtf/spi/cocoa/SecuritySPI.h: Added functions and types for iOS and macOS. * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIScriptingCocoa.mm: (WebKit::WebExtensionContext::clearRegisteredContentScripts): Added. * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionCocoa.mm: (WebKit::WebExtension::bundleStaticCode const): Made const, use bridge_cast(). (WebKit::WebExtension::bundleHash const): Added. (WebKit::WebExtension::validateResourceData): Store staticCode in variable. Use bridge_cast(). (WebKit::WebExtension::imageForPath): Use bridge_cast(). * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm: (WebKit::WebExtensionContext::load): Call determineInstallReasonDuringLoad(). (WebKit::WebExtensionContext::loadBackgroundWebViewDuringLoad): (WebKit::WebExtensionContext::determineInstallReasonDuringLoad): Renamed. Drop writeStateToStorage() since it is already done by the caller in load(). Save and compare the bundleHash() to determine updates. Always set LastSeenVersion. Call clearRegisteredContentScripts() when extension updates. (WebKit::WebExtensionContext::queueStartupAndInstallEventsForExtensionIfNecessary): Deleted. * Source/WebKit/UIProcess/Extensions/WebExtension.h: * Source/WebKit/UIProcess/Extensions/WebExtensionContext.h: Canonical link: https://commits.webkit.org/277022@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
[webkit-changes] [WebKit/WebKit] fe7e1f: Web Extension objects should return the same JS wr...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: fe7e1f64e14ecf2830f1a88c03276cbf25821cbf https://github.com/WebKit/WebKit/commit/fe7e1f64e14ecf2830f1a88c03276cbf25821cbf Author: Timothy Hatcher Date: 2024-04-02 (Tue, 02 Apr 2024) Changed paths: M Source/WebKit/WebProcess/Extensions/Bindings/JSWebExtensionWrapper.cpp M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPINamespace.mm Log Message: --- Web Extension objects should return the same JS wrapper (Bitwarden popup never loads). https://webkit.org/b/272006 rdar://125633239 Reviewed by Brian Weinstein. Make a cache per global context that we use to return the same wrapper for the JSWebExtensionWrappable objects, that way equality checks in JavaScript will succeed. This was breaking Bitwarden because they are doing a switch on the storage objects to get the name, and since equality wasn't true, the switch would fail. switch (e) { case chrome.storage.local: return "local"; case chrome.storage.sync: return "sync"; case chrome.storage.session: return "session"; default: throw new Error("Unknown storage location") } * Source/WebKit/WebProcess/Extensions/Bindings/JSWebExtensionWrapper.cpp: (WebKit::wrapperCache): Added. (WebKit::cacheMapDestroyed): Added. (WebKit::wrapperCacheMap): Added. (WebKit::getCachedWrapper): Added. (WebKit::JSWebExtensionWrapper::wrap): Lookup and add the wrapper to the cache. (WebKit::JSWebExtensionWrapper::finalize): Set private to nullptr. * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPINamespace.mm: (TestWebKitAPI::TEST(WKWebExtensionAPINamespace, ObjectEquality)): Canonical link: https://commits.webkit.org/276935@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
[webkit-changes] [WebKit/WebKit] 32ee40: _WKWebExtensionMessagePort should not throw on inv...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 32ee401ab706355455e48265e18665e04268ea11 https://github.com/WebKit/WebKit/commit/32ee401ab706355455e48265e18665e04268ea11 Author: Timothy Hatcher Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionMessagePort.h M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIRuntimeCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionMessagePortCocoa.mm M Source/WebKit/UIProcess/Extensions/WebExtensionMessagePort.h M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIRuntime.mm M Tools/TestWebKitAPI/cocoa/TestWebExtensionsDelegate.mm Log Message: --- _WKWebExtensionMessagePort should not throw on invalid messages. https://webkit.org/b/271796 rdar://125505726 Reviewed by Jeff Miller. Change the exception that was thrown in -[_WKWebExtensionMessagePort sendMessage::] to an error that is returned to the completion handler instead. Also fixed the reply message handling for runtime.sendNativeMessage() so it returns the error to the extension instead of throwing an exception. * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionMessagePort.h: (NS_ERROR_ENUM): Added _WKWebExtensionMessagePortErrorMessageInvalid. * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIRuntimeCocoa.mm: (WebKit::WebExtensionContext::runtimeSendNativeMessage): Changed THROW_UNLESS into a check that returns and error to the completion handler. * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionMessagePortCocoa.mm: (WebKit::toAPI): Added cases for ErrorType::MessageInvalid. (WebKit::WebExtensionMessagePort::sendMessage): Changed THROW_UNLESS into a check that returns _WKWebExtensionMessagePortErrorMessageInvalid error to the completion handler. * Source/WebKit/UIProcess/Extensions/WebExtensionMessagePort.h: * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIRuntime.mm: (TEST(WKWebExtensionAPIRuntime, SendNativeMessageWithInvalidReply)): Added. (TEST(WKWebExtensionAPIRuntime, ConnectNativeWithInvalidMessage)): Added. * Tools/TestWebKitAPI/cocoa/TestWebExtensionsDelegate.mm: (-[TestWebExtensionsDelegate webExtensionController:openOptionsPageForExtensionContext:completionHandler:]): Fix typo. (-[TestWebExtensionsDelegate webExtensionController:sendMessage:toApplicationIdentifier:forExtensionContext:replyHandler:]): Ditto. (-[TestWebExtensionsDelegate webExtensionController:connectUsingMessagePort:forExtensionContext:completionHandler:]): Ditto. (-[TestWebExtensionsDelegate webExtensionController:presentPopupForAction:forExtensionContext:completionHandler:]): Ditto. Canonical link: https://commits.webkit.org/276760@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
[webkit-changes] [WebKit/WebKit] 4a2e72: prepare-ChangeLog should include names for added /...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 4a2e722b4c68d9d1395d0165bc39db4f71e295f9 https://github.com/WebKit/WebKit/commit/4a2e722b4c68d9d1395d0165bc39db4f71e295f9 Author: Timothy Hatcher Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M Tools/Scripts/prepare-ChangeLog Log Message: --- prepare-ChangeLog should include names for added / changed / removed API tests. https://webkit.org/b/271798 Reviewed by Alexey Proskuryakov. Currently the output is like (no matter how many tests change): (TestWebKitAPI::TEST): When it should be like: (TestWebKitAPI::TEST(WKWebExtensionAPIRuntime, ExampleNew)): (TestWebKitAPI::TEST(WKWebExtensionAPIRuntime, StartupEvent)): (TestWebKitAPI::TEST(WKWebExtensionAPIRuntime, Reload)): Deleted. * Tools/Scripts/prepare-ChangeLog: (get_function_line_ranges_for_cpp): Added $in_test_declaration to track when we are inside a TEST() declaration, so the whole name can be captured in the $potential_name variable. Canonical link: https://commits.webkit.org/276758@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
[webkit-changes] [WebKit/WebKit] 253859: activeTab should not be granted if the match patte...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 253859aff9169b69d73252ed37636c46ca299752 https://github.com/WebKit/WebKit/commit/253859aff9169b69d73252ed37636c46ca299752 Author: Timothy Hatcher Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPITabs.mm Log Message: --- activeTab should not be granted if the match pattern is already Denied. https://webkit.org/b/271771 rdar://problem/125499141 Reviewed by Brian Weinstein. Prevent activeTab permissions from being granted if the current URL has already been denied by the user. That is a strong signal the user does not want this extension on the page. Also fix a bug where activeTab permissions were not being removed with granted or denied permisions, since the code was behind an early return. Also use the new WebExtensionMatchPattern constructor that takes a URL instead of manually constructing it in two places. Added two tests for these cases. * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm: (WebKit::WebExtensionContext::removeGrantedPermissionMatchPatterns): (WebKit::WebExtensionContext::setPermissionState): (WebKit::WebExtensionContext::userGesturePerformed): * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPITabs.mm: (TEST(WKWebExtensionAPITabs, ActiveTabWithDeniedPermissions)): Added. (TEST(WKWebExtensionAPITabs, ActiveTabRemovedWithDeniedPermissions)): Added. Canonical link: https://commits.webkit.org/276747@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
[webkit-changes] [WebKit/WebKit] d1de4e: Paths in browser.action.setIcon should be relative.
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: d1de4e4831588a251562b79e7ce98382cc0b9340 https://github.com/WebKit/WebKit/commit/d1de4e4831588a251562b79e7ce98382cc0b9340 Author: Timothy Hatcher Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionActionCocoa.mm M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIActionCocoa.mm M Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIAction.h M Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPIAction.idl M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIAction.mm Log Message: --- Paths in browser.action.setIcon should be relative. https://webkit.org/b/271739 rdar://125436223 Reviewed by Brian Weinstein. Resolve the path passed to action.setIcon() as relative to the current document. * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionActionCocoa.mm: (WebKit::WebExtensionAction::icon): If custom icons fail, fallback to the default icons. * Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIActionCocoa.mm: (WebKit::WebExtensionAPIAction::setIcon): Resolve paths as relative against the frame's URL, unless it is a data URL. * Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIAction.h: * Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPIAction.idl: * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIAction.mm: (TEST(WKWebExtensionAPIAction, SetIconSinglePathRelative)): Added. (TEST(WKWebExtensionAPIAction, SetIconMultipleSizesRelative)): Added. Canonical link: https://commits.webkit.org/276733@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
[webkit-changes] [WebKit/WebKit] 1d5b79: Add support for specifying unsupported Web Extensi...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 1d5b797b0b1d4322de1ae6a4fb4b48e1fd840efc https://github.com/WebKit/WebKit/commit/1d5b797b0b1d4322de1ae6a4fb4b48e1fd840efc Author: Timothy Hatcher Date: 2024-03-26 (Tue, 26 Mar 2024) Changed paths: M Source/WebKit/Shared/Extensions/WebExtensionContextParameters.h M Source/WebKit/Shared/Extensions/WebExtensionContextParameters.serialization.in M Source/WebKit/Shared/Extensions/WebExtensionDataType.h M Source/WebKit/Shared/Extensions/WebExtensionEventListenerType.h M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionContext.h M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionContext.mm M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIStorageCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm M Source/WebKit/UIProcess/Extensions/WebExtensionContext.cpp M Source/WebKit/UIProcess/Extensions/WebExtensionContext.h M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIExtensionCocoa.mm M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPINamespaceCocoa.mm M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIRuntimeCocoa.mm M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIStorageAreaCocoa.mm M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIStorageCocoa.mm M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPITabsCocoa.mm M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIWebPageNamespaceCocoa.mm M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIWindowsCocoa.mm M Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIAction.h M Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIAlarms.h M Source/WebKit/WebProcess/Extensions/API/WebExtensionAPICommands.h M Source/WebKit/WebProcess/Extensions/API/WebExtensionAPICookies.h M Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIDeclarativeNetRequest.h M Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIDevTools.h M Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIDevToolsExtensionPanel.h M Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIDevToolsInspectedWindow.h M Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIDevToolsNetwork.h M Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIDevToolsPanels.h M Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIEvent.h M Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIExtension.h M Source/WebKit/WebProcess/Extensions/API/WebExtensionAPILocalization.h M Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIMenus.h M Source/WebKit/WebProcess/Extensions/API/WebExtensionAPINamespace.h M Source/WebKit/WebProcess/Extensions/API/WebExtensionAPINotifications.h M Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIObject.h M Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIPermissions.h M Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIPort.h M Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIRuntime.h M Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIScripting.h M Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIStorage.h M Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIStorageArea.h M Source/WebKit/WebProcess/Extensions/API/WebExtensionAPITabs.h M Source/WebKit/WebProcess/Extensions/API/WebExtensionAPITest.h M Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIWebNavigation.h M Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIWebNavigationEvent.h M Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIWebPageNamespace.h M Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIWebRequest.h M Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIWebRequestEvent.h M Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIWindows.h M Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIWindowsEvent.h M Source/WebKit/WebProcess/Extensions/Cocoa/WebExtensionContextProxyCocoa.mm M Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.h M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPINamespace.mm M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIWindows.mm Log Message: --- Add support for specifying unsupported Web Extension APIs. https://webkit.org/b/271733 rdar://116824851 Reviewed by Jeff Miller. Add an `unsupportedAPIs` property on `_WKWebExtensionContext` that allows the app to specify a subset of web extension APIs that it chooses not to support, effectively making these APIs `undefined` within the extension's JavaScript contexts. This enables extensions to employ feature detection techniques for unsupported APIs, allowing them to adapt their behavior based on the APIs actually supported by the app. Setting is only allowed when the context
[webkit-changes] [WebKit/WebKit] 3fd749: REGRESSION (275819@main): 5 Tests in TestWebKitAPI...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 3fd7495076360b9c977af182f895ac3c1a62eaaf https://github.com/WebKit/WebKit/commit/3fd7495076360b9c977af182f895ac3c1a62eaaf Author: Timothy Hatcher Date: 2024-03-21 (Thu, 21 Mar 2024) Changed paths: M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm M Source/WebKit/UIProcess/Extensions/WebExtensionContext.h Log Message: --- REGRESSION (275819@main): 5 Tests in TestWebKitAPI.WKWebExtensionAPIWebRequest sometimes timeout (270812). https://webkit.org/b/271392 rdar://124401551 Reviewed by Brian Weinstein. Change from using webView:didFinishNavigation: to _webView:navigationDidFinishDocumentLoad: for tracking when the background page has finished loading. This will properly fire after modules have executed, or any async script elements in a custom background page. This allows us to remove the arbitrary delay we had before, which was wholly inadequate across different machines, and was firing too soon for slow machines. By waiting for the document load, we know any background content event listeners will be registered and can properly dispatch events. * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm: (-[_WKWebExtensionContextDelegate _webView:navigationDidFinishDocumentLoad:]): Added. (WebKit::WebExtensionContext::performTasksAfterBackgroundContentLoads): Removed dispatch_after(). (WebKit::WebExtensionContext::didFinishDocumentLoad): (-[_WKWebExtensionContextDelegate webView:didFinishNavigation:]): Deleted. (WebKit::WebExtensionContext::didFinishNavigation): Deleted. * Source/WebKit/UIProcess/Extensions/WebExtensionContext.h: Canonical link: https://commits.webkit.org/276487@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
[webkit-changes] [WebKit/WebKit] 8b5a84: Change minimum alarm duration to 30 seconds.
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 8b5a84992e25d31d3a99a8ee9cebd23ec99cc023 https://github.com/WebKit/WebKit/commit/8b5a84992e25d31d3a99a8ee9cebd23ec99cc023 Author: Timothy Hatcher Date: 2024-03-21 (Thu, 21 Mar 2024) Changed paths: M Source/WebKit/Shared/Extensions/WebExtensionConstants.h M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIAlarmsCocoa.mm Log Message: --- Change minimum alarm duration to 30 seconds. https://webkit.org/b/271400 rdar://problem/125181579 Reviewed by Brian Weinstein. * Source/WebKit/Shared/Extensions/WebExtensionConstants.h: Added webExtensionMinimumAlarmInterval. * Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIAlarmsCocoa.mm: (WebKit::WebExtensionAPIAlarms::createAlarm): Use webExtensionMinimumAlarmInterval. Canonical link: https://commits.webkit.org/276484@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
[webkit-changes] [WebKit/WebKit] 02a0c1: Crash sending NaN in a message.
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 02a0c1da946c004a88a6c8a0bf0c67360415c017 https://github.com/WebKit/WebKit/commit/02a0c1da946c004a88a6c8a0bf0c67360415c017 Author: Timothy Hatcher Date: 2024-03-15 (Fri, 15 Mar 2024) Changed paths: M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIRuntimeCocoa.mm M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIRuntimeCocoa.mm M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIRuntime.mm M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIStorage.mm Log Message: --- Crash sending NaN in a message. https://webkit.org/b/271089 rdar://124710133 Reviewed by Brian Weinstein. Make sure to use JSValue, which uses JSC's JSON encoder when sending messages. That way NaN is treated as null. This matches what Safari was doing before. Also test that storage.set handles NaN correctly, which was already using JSValue. * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIRuntimeCocoa.mm: (WebKit::WebExtensionContext::runtimeSendNativeMessage): * Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIRuntimeCocoa.mm: (WebKit::WebExtensionContextProxy::internalDispatchRuntimeMessageEvent): * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIRuntime.mm: (TEST(WKWebExtensionAPIRuntime, SendMessageWithNaNValue)): Added. * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIStorage.mm: (TEST(WKWebExtensionAPIStorage, Get)): Test NaN. Canonical link: https://commits.webkit.org/276222@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
[webkit-changes] [WebKit/WebKit] 3dc776: WKWebExtensionAPITabs.ActiveTab is flaky.
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 3dc776898be47c68845d9931dde1bd94638acaf3 https://github.com/WebKit/WebKit/commit/3dc776898be47c68845d9931dde1bd94638acaf3 Author: Timothy Hatcher Date: 2024-03-15 (Fri, 15 Mar 2024) Changed paths: M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPITabs.mm M Tools/TestWebKitAPI/cocoa/WebExtensionUtilities.mm Log Message: --- WKWebExtensionAPITabs.ActiveTab is flaky. https://webkit.org/b/269932 rdar://problem/123457954 Reviewed by Alex Christensen and Brian Weinstein. We need to mark the title as changed after the document has loaded, not when the navigation is committed, since the wont be parsed yet. This was causing a race condition for accessing the web view's title. To keep things simple in the tests, also fire the URL change with the title, otherwise it will require rejiggering the tests to be more robust. In practice these do fire together due to event coalescing, but that coalescing window is small and we were sometimes firing them separate, and that was causing flakiness. Fix the tests to expect both 'url' and 'title' in `changeInfo`. * Tools/TestWebKitAPI/cocoa/WebExtensionUtilities.mm: (-[TestWebExtensionTab _webView:navigationDidFinishDocumentLoad:]): Added. (-[TestWebExtensionTab webView:didCommitNavigation:]): Deleted. * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPITabs.mm: (TEST(WKWebExtensionAPITabs, ActiveTab)): Expect both 'url' and 'title' in `changeInfo`. (TEST(WKWebExtensionAPITabs, UserGestureWithoutActiveTab)): Ditto. Canonical link: https://commits.webkit.org/276217@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
[webkit-changes] [WebKit/WebKit] a0d65e: Permissions check in WebExtensionAPINamespace::isP...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: a0d65e89085b46a9aabbb405df0181fc5c1e3ce6 https://github.com/WebKit/WebKit/commit/a0d65e89085b46a9aabbb405df0181fc5c1e3ce6 Author: Timothy Hatcher Date: 2024-03-15 (Fri, 15 Mar 2024) Changed paths: M Source/WebKit/Modules/OSX_Private.modulemap M Source/WebKit/Modules/iOS_Private.modulemap M Source/WebKit/Shared/Extensions/WebExtensionContextParameters.h M Source/WebKit/Shared/Extensions/WebExtensionContextParameters.serialization.in M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionPermission.mm A Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionPermissionPrivate.h M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIDeclarativeNetRequestCocoa.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/WebExtensionContext.cpp M Source/WebKit/UIProcess/Extensions/WebExtensionTab.h M Source/WebKit/WebKit.xcodeproj/project.pbxproj M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIDeclarativeNetRequestCocoa.mm M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPINamespaceCocoa.mm M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIRuntimeCocoa.mm M Source/WebKit/WebProcess/Extensions/Cocoa/WebExtensionContextProxyCocoa.mm M Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.h M Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.messages.in M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPINamespace.mm Log Message: --- Permissions check in WebExtensionAPINamespace::isPropertyAllowed should be better. https://webkit.org/b/259914 rdar://problem/113537360 Reviewed by Brian Weinstein. Send the granted permissions map to the web processes, so the checks in isPropertyAllowed() are accurate if the permissions have not been granted by the app. * Source/WebKit/Modules/OSX_Private.modulemap: Added _WKWebExtensionPermissionPrivate.h. * Source/WebKit/Modules/iOS_Private.modulemap: Ditto. * Source/WebKit/Shared/Extensions/WebExtensionContextParameters.h: Added grantedPermissions. * Source/WebKit/Shared/Extensions/WebExtensionContextParameters.serialization.in: Ditto. * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionPermission.mm: Import _WKWebExtensionPermissionPrivate.h. Added notifications permission, since it is needed to prevent it from being filtered out as an unsupported permission. * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionPermissionPrivate.h: Added. * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIDeclarativeNetRequestCocoa.mm: (WebKit::WebExtensionContext::declarativeNetRequestGetMatchedRules): Use new extensionHasTemporaryPermission() helper. The old check would have been true if the 'tabs' permission was granted for the whole extension too. * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionCocoa.mm: (WebKit::WebExtension::supportedPermissions): Added notifications. * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm: (WebKit::WebExtensionContext::permissionsDidChange): Send UpdateGrantedPermissions message to all processes. (WebKit::WebExtensionContext::permissionState): Use new extensionHasTemporaryPermission() helper. * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionTabCocoa.mm: (WebKit::WebExtensionTab::extensionHasTemporaryPermission const): Added. * Source/WebKit/UIProcess/Extensions/WebExtensionContext.cpp: (WebKit::WebExtensionContext::parameters const): Set grantedPermissions. * Source/WebKit/UIProcess/Extensions/WebExtensionTab.h: (WebKit::WebExtensionTab::hasActiveUserGesture const): Made const. (WebKit::WebExtensionTab::temporaryPermissionMatchPattern const): Ditto. * Source/WebKit/WebKit.xcodeproj/project.pbxproj: Added _WKWebExtensionPermissionPrivate.h. * Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIDeclarativeNetRequestCocoa.mm: (WebKit::WebExtensionAPIDeclarativeNetRequest::getMatchedRules): Use hasPermission(), and toErrorString(). (WebKit::extensionHasPermission): Deleted. * Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPINamespaceCocoa.mm: (WebKit::WebExtensionAPINamespace::isPropertyAllowed): Use hasPermission(). * Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIRuntimeCocoa.mm: (WebKit::WebExtensionAPIRuntime::isPropertyAllowed): Use hasPermission(). * Source/WebKit/WebProcess/Extensions/Cocoa/WebExtensionContextProxyCocoa.mm: (WebKit::WebExtensionContextProxy::getOrCreate): Set m_grantedPermissions. (WebKit::WebExtensionContextProxy::hasPermission const): Added. (WebKit::WebExtensionContextProxy::updateGrantedPermissions): Added. * Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.h: * Source/WebKit/WebProcess
[webkit-changes] [WebKit/WebKit] abc0f7: Crash in WebKit::WebExtensionContextProxy::toDOMWr...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: abc0f7739674fadcfb67ca264c4a9e6b31e18f01 https://github.com/WebKit/WebKit/commit/abc0f7739674fadcfb67ca264c4a9e6b31e18f01 Author: Timothy Hatcher Date: 2024-03-15 (Fri, 15 Mar 2024) Changed paths: M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIRuntimeCocoa.mm M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIStorageCocoa.mm M Source/WebKit/WebProcess/Extensions/Cocoa/WebExtensionContextProxyCocoa.mm M Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.h Log Message: --- Crash in WebKit::WebExtensionContextProxy::toDOMWrapperWorld. https://webkit.org/b/271064 rdar://124319215 Reviewed by Brian Weinstein. Add a hasDOMWrapperWorld() helper method and use it to return early when the contentScriptWorld() has not been created yet. This can happen if the page does not have injected content, or the injected content hasn't executed yet. Also adds const to inline methods that should be const in WebExtensionContextProxy.h. * Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIRuntimeCocoa.mm: (WebKit::WebExtensionContextProxy::internalDispatchRuntimeMessageEvent): Check hasDOMWrapperWorld() and early return while calling the completionHandler. (WebKit::WebExtensionContextProxy::internalDispatchRuntimeConnectEvent): Ditto. * Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIStorageCocoa.mm: (WebKit::WebExtensionContextProxy::dispatchStorageChangedEvent): Check hasDOMWrapperWorld(). * Source/WebKit/WebProcess/Extensions/Cocoa/WebExtensionContextProxyCocoa.mm: (WebKit::WebExtensionContextProxy::toDOMWrapperWorld const): Made const. * Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.h: Canonical link: https://commits.webkit.org/276193@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
[webkit-changes] [WebKit/WebKit] 5745ae: RegisteredContentScripts.db should only be created...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 5745aee1167a4b0f77891efe606302d5160fdbde https://github.com/WebKit/WebKit/commit/5745aee1167a4b0f77891efe606302d5160fdbde Author: Timothy Hatcher Date: 2024-03-13 (Wed, 13 Mar 2024) Changed paths: M Source/WebKit/Shared/Extensions/_WKWebExtensionRegisteredScriptsSQLiteStore.mm M Source/WebKit/Shared/Extensions/_WKWebExtensionSQLiteDatabase.mm M Source/WebKit/Shared/Extensions/_WKWebExtensionSQLiteStore.h M Source/WebKit/Shared/Extensions/_WKWebExtensionSQLiteStore.mm M Source/WebKit/UIProcess/Extensions/Cocoa/_WKWebExtensionDeclarativeNetRequestSQLiteStore.mm M Source/WebKit/UIProcess/Extensions/Cocoa/_WKWebExtensionStorageSQLiteStore.mm Log Message: --- RegisteredContentScripts.db should only be created if needed. https://webkit.org/b/270931 rdar://problem/124554561 Reviewed by Sihui Liu and Jeff Miller. Change the APIs that use SQL store to use the new _openDatabaseIfNecessaryReturningErrorMessage:createIfNecessary: method and pass NO when the access is deleting or getting data. This makes sure we don't create an empty database just to read or delete no data. * Source/WebKit/Shared/Extensions/_WKWebExtensionRegisteredScriptsSQLiteStore.mm: (-[_WKWebExtensionRegisteredScriptsSQLiteStore deleteScriptsWithIDs:completionHandler:]): Pass createIfNecessary:NO. (-[_WKWebExtensionRegisteredScriptsSQLiteStore _getScriptsWithOutErrorMessage:]): Ditto. * Source/WebKit/Shared/Extensions/_WKWebExtensionSQLiteDatabase.mm: (-[_WKWebExtensionSQLiteDatabase _openWithFlags:vfs:error:]): Return no error if thsi is a can't open error and we were not asekd to create the file. * Source/WebKit/Shared/Extensions/_WKWebExtensionSQLiteStore.h: * Source/WebKit/Shared/Extensions/_WKWebExtensionSQLiteStore.mm: (-[_WKWebExtensionSQLiteStore _openDatabaseIfNecessaryReturningErrorMessage:]): Call the new method with YES. (-[_WKWebExtensionSQLiteStore _openDatabaseIfNecessaryReturningErrorMessage:createIfNecessary:]): Added. (-[_WKWebExtensionSQLiteStore _openDatabase:withAccessType:deleteDatabaseFileOnError:]): Added accessType param. (-[_WKWebExtensionSQLiteStore _deleteDatabaseFileAtURL:reopenDatabase:]): Pass SQLiteDatabaseAccessTypeReadWriteCreate. (-[_WKWebExtensionSQLiteStore _openDatabase:deleteDatabaseFileOnError:]): Deleted. * Source/WebKit/UIProcess/Extensions/Cocoa/_WKWebExtensionDeclarativeNetRequestSQLiteStore.mm: (-[_WKWebExtensionDeclarativeNetRequestSQLiteStore deleteRules:completionHandler:]): Pass createIfNecessary:NO. (-[_WKWebExtensionDeclarativeNetRequestSQLiteStore _getRulesWithOutErrorMessage:]): Ditto. * Source/WebKit/UIProcess/Extensions/Cocoa/_WKWebExtensionStorageSQLiteStore.mm: (-[_WKWebExtensionStorageSQLiteStore getStorageSizeForKeys:completionHandler:]): (-[_WKWebExtensionStorageSQLiteStore deleteValuesForKeys:completionHandler:]): (-[_WKWebExtensionStorageSQLiteStore _getValuesForAllKeysReturningErrorMessage:]): (-[_WKWebExtensionStorageSQLiteStore _getAllKeysReturningErrorMessage:]): (-[_WKWebExtensionStorageSQLiteStore _getValuesForKeys:outErrorMessage:]): Canonical link: https://commits.webkit.org/276063@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
[webkit-changes] [WebKit/WebKit] b74a5a: REGRESSION (275981@main): [ macOS ] 7 tests in Tes...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: b74a5a42516e4102fd5b9b594e566099bf782ad2 https://github.com/WebKit/WebKit/commit/b74a5a42516e4102fd5b9b594e566099bf782ad2 Author: Timothy Hatcher Date: 2024-03-12 (Tue, 12 Mar 2024) Changed paths: M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIPermissionsCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionMatchPatternCocoa.mm M Source/WebKit/UIProcess/Extensions/WebExtensionContext.h M Source/WebKit/UIProcess/Extensions/WebExtensionMatchPattern.h M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPITabs.mm Log Message: --- REGRESSION (275981@main): [ macOS ] 7 tests in TestWebKitAPI.WKWebExtensionAPIPermissions are a constant failure/timeout. https://webkit.org/b/270872 rdar://problem/124475393 Reviewed by Jeff Miller. When requesting permissions via permissions.request(), we need to include optional permissions in the check. That was actually happening by accident before, since !hasPermission() was returning true for any unknown permission. With the change to needsPermission(), only RequestedExplicitly or RequestedImplicitly results were counted. To fix this, a new option was added for use by the permissions API to include optional permissions in the RequestedImplicitly category. * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIPermissionsCocoa.mm: (WebKit::WebExtensionContext::permissionsRequest): Pass the IncludeOptionalPermissions option. * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm: (WebKit::WebExtensionContext::requestPermissionMatchPatterns): Pass through options to needsPermission(). (WebKit::WebExtensionContext::requestPermissionToAccessURLs): Ditto. (WebKit::WebExtensionContext::requestPermissions): Ditto. (WebKit::WebExtensionContext::permissionState): Added support for IncludeOptionalPermissions to check the optional permissions from the extension's manifest. * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionMatchPatternCocoa.mm: (WebKit::WebExtensionMatchPattern::patternsMatchURL): Added const to URL to fix build issue. (WebKit::WebExtensionMatchPattern::patternsMatchPattern): Added. * Source/WebKit/UIProcess/Extensions/WebExtensionContext.h: (WebKit::WebExtensionContext::requestPermissionMatchPatterns): Added options parameter. (WebKit::WebExtensionContext::requestPermissionToAccessURLs): Ditto. (WebKit::WebExtensionContext::requestPermissions): Ditto. * Source/WebKit/UIProcess/Extensions/WebExtensionMatchPattern.h: * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPITabs.mm: (TEST(WKWebExtensionAPITabs, QueryWithAccessPrompt)): Grant tabs permission so the tab URL counts as a requested URL and the prompt delegate will be called. Canonical link: https://commits.webkit.org/276003@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
[webkit-changes] [WebKit/WebKit] 5c2c34: Crash when quickly loading and unloading a Web Ext...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 5c2c34238fb70315d37c0d45c798e62ca746908c https://github.com/WebKit/WebKit/commit/5c2c34238fb70315d37c0d45c798e62ca746908c Author: Timothy Hatcher Date: 2024-03-12 (Tue, 12 Mar 2024) Changed paths: M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm Log Message: --- Crash when quickly loading and unloading a Web Extension. https://webkit.org/b/270862 rdar://124126618 Reviewed by Jeff Miller. When the extension controller is loading an extension context we move the local storage. The lambda can escape and be called async, but was only capturing references. We need to capture a protected this reference, and check if the context is still loaded before proceeding after the move has finished. * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm: (WebKit::WebExtensionContext::load): Canonical link: https://commits.webkit.org/275986@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
[webkit-changes] [WebKit/WebKit] a9eb13: Add HAVE_UPDATED_WEB_EXTENSION_PROMPT_COMPLETION_H...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: a9eb13f5a7a4fd8ee460706369037445cadc10ed https://github.com/WebKit/WebKit/commit/a9eb13f5a7a4fd8ee460706369037445cadc10ed Author: Timothy Hatcher Date: 2024-03-12 (Tue, 12 Mar 2024) Changed paths: M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionControllerDelegate.h Log Message: --- Add HAVE_UPDATED_WEB_EXTENSION_PROMPT_COMPLETION_HANDLER. https://webkit.org/b/270858 rdar://problem/124459704 Reviewed by Jeff Miller. We need to add a define to allow clients to adopt the delegate changes from 275950@main. * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionControllerDelegate.h: Canonical link: https://commits.webkit.org/275983@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
[webkit-changes] [WebKit/WebKit] 761708: WebExtensionContext::requestPermissions needs to i...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 76170850b6e90c8640ed83bac975a365972c5679 https://github.com/WebKit/WebKit/commit/76170850b6e90c8640ed83bac975a365972c5679 Author: Timothy Hatcher Date: 2024-03-12 (Tue, 12 Mar 2024) Changed paths: M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm M Source/WebKit/UIProcess/Extensions/WebExtensionContext.h Log Message: --- WebExtensionContext::requestPermissions needs to ignore denied permissions. https://webkit.org/b/270857 rdar://problem/124457612 Reviewed by Jeff Miller. Currently these request methods use hasPermission(), but that isn't correct since if the permission is denied we shouldn't request it. Add new needsPermission() methods that return true only if the permission is requested. * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm: (WebKit::WebExtensionContext::requestPermissionMatchPatterns): Use needsPermission(). (WebKit::WebExtensionContext::requestPermissionToAccessURLs): Ditto. (WebKit::WebExtensionContext::requestPermissions): Ditto. (WebKit::WebExtensionContext::needsPermission): Added. * Source/WebKit/UIProcess/Extensions/WebExtensionContext.h: (WebKit::WebExtensionContext::needsPermission): Added. Canonical link: https://commits.webkit.org/275981@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
[webkit-changes] [WebKit/WebKit] 33e22a: Some APIs like tabs.query need to prompt for permi...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 33e22ac2d07d9761d8b07b0e73df2d6ade6f84b1 https://github.com/WebKit/WebKit/commit/33e22ac2d07d9761d8b07b0e73df2d6ade6f84b1 Author: Timothy Hatcher Date: 2024-03-11 (Mon, 11 Mar 2024) Changed paths: M Source/WebCore/page/UserContentURLPattern.cpp M Source/WebKit/Platform/cocoa/CocoaHelpers.h M Source/WebKit/Platform/cocoa/CocoaHelpers.mm M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtension.mm M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionControllerDelegate.h M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPICookiesCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIDeclarativeNetRequestCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIDevToolsInspectedWindow.mm M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIPermissionsCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIScriptingCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPITabsCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIWindowsCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionMatchPatternCocoa.mm M Source/WebKit/UIProcess/Extensions/WebExtension.h M Source/WebKit/UIProcess/Extensions/WebExtensionContext.h M Source/WebKit/UIProcess/Extensions/WebExtensionMatchPattern.h M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIDevTools.mm M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIPermissions.mm M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPITabs.mm M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionMatchPattern.mm M Tools/TestWebKitAPI/cocoa/TestWebExtensionsDelegate.h M Tools/TestWebKitAPI/cocoa/TestWebExtensionsDelegate.mm Log Message: --- Some APIs like tabs.query need to prompt for permission before returning. https://webkit.org/b/262714 rdar://problem/116535817 Reviewed by Jeff Miller. Change the existing permission delegate calls from being just used for permissions.request() and into helper methods on WebExtensionContext. Now filter out already granted permissions, and only send the delegate messages if some of them are still required. Also add the timeout for these requests, so they auto expire in 2 minutes, preventing the extensions scripts from waiting for a response for too long. Also add expirationDate parameter to the completionHandler, so the app can grant for a limited amount of time, or pass nil to grant indefinitely. Finally, wrap many extension APIs with the new requestPermissionToAccessURLs() and request the URLs for the tabs and cookies needed by those APIs. This includes some like scripting, which were never wrapped like this in Safari's implementation. Deleted some redundant toImpl / toAPI helpers that we already had elsewhere. * Source/WebCore/page/UserContentURLPattern.cpp: (WebCore::UserContentURLPattern::UserContentURLPattern): * Source/WebKit/Platform/cocoa/CocoaHelpers.h: * Source/WebKit/Platform/cocoa/CocoaHelpers.mm: (WebKit::toAPI): (WebKit::toAPIArray): (WebKit::toImpl): (WebKit::toImplSet): Deleted. * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtension.mm: * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionControllerDelegate.h: * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPICookiesCocoa.mm: (WebKit::WebExtensionContext::cookiesGet): (WebKit::WebExtensionContext::cookiesGetAll): (WebKit::WebExtensionContext::cookiesSet): (WebKit::WebExtensionContext::cookiesRemove): * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIDeclarativeNetRequestCocoa.mm: (WebKit::WebExtensionContext::declarativeNetRequestGetMatchedRules): * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIDevToolsInspectedWindow.mm: (WebKit::WebExtensionContext::devToolsInspectedWindowEval): * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIPermissionsCocoa.mm: (WebKit::WebExtensionContext::permissionsRequest): * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIScriptingCocoa.mm: (WebKit::WebExtensionContext::scriptingExecuteScript): (WebKit::WebExtensionContext::scriptingInsertCSS): (WebKit::WebExtensionContext::scriptingRemoveCSS): * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPITabsCocoa.mm: (WebKit::WebExtensionContext::tabsGet): (WebKit::WebExtensionContext::tabsGetCurrent): (WebKit::WebExtensionContext::tabsQuery): (WebKit::WebExtensionContext::tabsDetectLanguage): (WebKit::WebExtensionContext::tabsCaptureVisibleTab): (WebKit::WebExtensionContext::tabsRemove): (WebKit::WebExtensionContext::tabsExecuteScript): (WebKit::WebExtensionContext::tabsInsertCSS): (WebKit
[webkit-changes] [WebKit/WebKit] afcd0d: Prefer `scripts` and `page` over `service_worker` ...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: afcd0d3bf64b4e8942e9b01db34400a161a2619e https://github.com/WebKit/WebKit/commit/afcd0d3bf64b4e8942e9b01db34400a161a2619e Author: Timothy Hatcher Date: 2024-03-11 (Mon, 11 Mar 2024) Changed paths: M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionCocoa.mm M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtension.mm Log Message: --- Prefer `scripts` and `page` over `service_worker` in Web Extension manifest. https://webkit.org/b/270750 rdar://problem/124334426 Reviewed by Brian Weinstein. This has been discussed in https://github.com/w3c/webextensions/issues/282. When an extension specifies multiple `background` keys, the browser can prefer which one to use based on what is supported. We support all three, but service worker support is not the best environment for WebKit Web Extensions. In the scenario where all three are supplied, we prefer `scripts`, `page`, then `service_worker`. * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionCocoa.mm: (WebKit::WebExtension::populateBackgroundPropertiesIfNeeded): * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtension.mm: (TEST(WKWebExtension, BackgroundParsing)): Added tests. Canonical link: https://commits.webkit.org/275916@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
[webkit-changes] [WebKit/WebKit] 389494: Support `world` in `content_scripts` for Web Exten...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 38949431399cb8ca2a55db3cd3f1292f4fb0f1ca https://github.com/WebKit/WebKit/commit/38949431399cb8ca2a55db3cd3f1292f4fb0f1ca Author: Timothy Hatcher Date: 2024-03-11 (Mon, 11 Mar 2024) Changed paths: M Source/WebCore/en.lproj/Localizable.strings M Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js M Source/WebKit/Shared/Extensions/WebExtensionFrameParameters.h M Source/WebKit/Shared/Extensions/WebExtensionMessageSenderParameters.h M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIScriptingCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm M Source/WebKit/UIProcess/Extensions/WebExtension.h M Source/WebKit/UIProcess/Extensions/WebExtensionContext.h M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtension.mm M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIScripting.mm M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionContext.mm Log Message: --- Support `world` in `content_scripts` for Web Extension manifests. https://webkit.org/b/270748 rdar://problem/124331541 Reviewed by Brian Weinstein. Add support for the `world` key in `content_scripts`. Also changed the `forMainWorld` boolean to be `contentWorldType` and use `WebExtensionContentWorldType` for consistency. Drive-by fixes to provide missing default values for plain types to avoid random memory. * Source/WebCore/en.lproj/Localizable.strings: Updated with the script. * Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js: Ditto. * Source/WebKit/Shared/Extensions/WebExtensionFrameParameters.h: Add default value. * Source/WebKit/Shared/Extensions/WebExtensionMessageSenderParameters.h: Ditto. * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIScriptingCocoa.mm: (WebKit::WebExtensionContext::scriptingExecuteScript): Use toContentWorld(). (WebKit::WebExtensionContext::createInjectedContentForScripts): Use contentWorldType. Also use value_or() in case the web process does not set the value. * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionCocoa.mm: (WebKit::WebExtension::populateContentScriptPropertiesIfNeeded): Parse the `world` key. * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm: (WebKit::WebExtensionContext::toContentWorld const): Added. (WebKit::WebExtensionContext::addInjectedContent): Use toContentWorld(). * Source/WebKit/UIProcess/Extensions/WebExtension.h: * Source/WebKit/UIProcess/Extensions/WebExtensionContext.h: * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtension.mm: (TEST(WKWebExtension, ContentScriptsParsing)): Added `world` tests. * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIScripting.mm: (TEST(WKWebExtensionAPIScripting, MainWorld)): Added. (TEST(WKWebExtensionAPIScripting, IsolatedWorld)): Added. * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionContext.mm: (TEST(WKWebExtensionContext, ContentScriptsParsing)): Added `world` tests. Canonical link: https://commits.webkit.org/275909@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
[webkit-changes] [WebKit/WebKit] f606e5: WebExtensionContext::permissionsRequest needs to p...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: f606e5e964d5dcd860e4a6625db8092664bbc05c https://github.com/WebKit/WebKit/commit/f606e5e964d5dcd860e4a6625db8092664bbc05c Author: Timothy Hatcher Date: 2024-03-08 (Fri, 08 Mar 2024) Changed paths: M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIPermissionsCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIRuntimeCocoa.mm M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIPermissions.mm Log Message: --- WebExtensionContext::permissionsRequest needs to properly capture completionHandler. https://webkit.org/b/269678 rdar://problem/123197187 Reviewed by Brian Weinstein. Rework permissions.request() to only call the delegate if needed, never with an empty set. Also the completionHandler only worked if it was called immediately, but we need to support it being called later. To support all this, a CallbackAggregator was needed and it now waits for both delegates to be called (in either order) since they both retain the aggregator. This also changes the handling to better match the permissions.request() API, by only allowing granting all or none, not some. Added a test for this. Also updated the tests to not use nil, since the block parameters are not nullable. * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIPermissionsCocoa.mm: (WebKit::WebExtensionContext::permissionsRequest): * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIRuntimeCocoa.mm: (WebKit::WebExtensionContext::runtimeSendNativeMessage): * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIPermissions.mm: (TEST(WKWebExtensionAPIPermissions, Basics)): Renamed. (TEST(WKWebExtensionAPIPermissions, AcceptPermissionsRequest)): Updated. (TEST(WKWebExtensionAPIPermissions, DenyPermissionsRequest)): Updated. (TEST(WKWebExtensionAPIPermissions, AcceptPermissionsDenyMatchPatternsRequest)): Updated. (TEST(WKWebExtensionAPIPermissions, RequestPermissionsOnly)): Updated. (TEST(WKWebExtensionAPIPermissions, RequestMatchPatternsOnly)): Updated. (TEST(WKWebExtensionAPIPermissions, GrantOnlySomePermissions)): Added. (TEST(WKWebExtensionAPIPermissions, GrantOnlySomeMatchPatterns)): Added. Canonical link: https://commits.webkit.org/275859@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
[webkit-changes] [WebKit/WebKit] 5bf1b8: Speed up WebExtensionContext::getCurrentTab().
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 5bf1b8f92e693edcb769f2935e864fa0a3752a96 https://github.com/WebKit/WebKit/commit/5bf1b8f92e693edcb769f2935e864fa0a3752a96 Author: Timothy Hatcher Date: 2024-03-08 (Fri, 08 Mar 2024) Changed paths: M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm Log Message: --- Speed up WebExtensionContext::getCurrentTab(). https://webkit.org/b/270644 rdar://problem/124222506 Reviewed by Brian Weinstein. Simplify the logic in getCurrentTab() by returning early if the page is a know extension page, and IncludeExtensionViews::No. This prevents logging an error "Tab for page XX was not found" and avoids looping through open tabs. Also removed the deep nesting, and added gotos to skip to the end checks faster. * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm: (WebKit::WebExtensionContext::getCurrentTab const): Canonical link: https://commits.webkit.org/275847@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
[webkit-changes] [WebKit/WebKit] 2bc765: Build Failure: implicit capture of 'this' with a c...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 2bc765b66bd0b3aa9978cbbe6ad8b80cf5a7f1e8 https://github.com/WebKit/WebKit/commit/2bc765b66bd0b3aa9978cbbe6ad8b80cf5a7f1e8 Author: Timothy Hatcher Date: 2024-03-08 (Fri, 08 Mar 2024) Changed paths: M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIActionCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIAlarmsCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPICommandsCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPICookiesCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIMenusCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIPermissionsCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIRuntimeCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIStorageCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPITabsCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIWindowsCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionURLSchemeHandlerCocoa.mm M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIRuntimeCocoa.mm M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPITabsCocoa.mm Log Message: --- Build Failure: implicit capture of 'this' with a capture default of '=' is deprecated. https://webkit.org/b/270704 rdar://124275043 Unreviewed build fix. Added `this` to the capture blocks. * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIActionCocoa.mm: (WebKit::WebExtensionContext::fireActionClickedEventIfNeeded): * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIAlarmsCocoa.mm: (WebKit::WebExtensionContext::fireAlarmsEventIfNeeded): * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPICommandsCocoa.mm: (WebKit::WebExtensionContext::fireCommandEventIfNeeded): (WebKit::WebExtensionContext::fireCommandChangedEventIfNeeded): * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPICookiesCocoa.mm: (WebKit::WebExtensionContext::fireCookiesChangedEventIfNeeded): * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIMenusCocoa.mm: (WebKit::WebExtensionContext::fireMenusClickedEventIfNeeded): * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIPermissionsCocoa.mm: (WebKit::WebExtensionContext::firePermissionsEventListenerIfNecessary): * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIRuntimeCocoa.mm: (WebKit::WebExtensionContext::runtimeSendMessage): (WebKit::WebExtensionContext::runtimeConnect): (WebKit::WebExtensionContext::runtimeWebPageSendMessage): (WebKit::WebExtensionContext::runtimeWebPageConnect): * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIStorageCocoa.mm: (WebKit::WebExtensionContext::fireStorageChangedEventIfNeeded): * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPITabsCocoa.mm: (WebKit::WebExtensionContext::tabsConnect): (WebKit::WebExtensionContext::fireTabsCreatedEventIfNeeded): (WebKit::WebExtensionContext::fireTabsUpdatedEventIfNeeded): (WebKit::WebExtensionContext::fireTabsReplacedEventIfNeeded): (WebKit::WebExtensionContext::fireTabsDetachedEventIfNeeded): (WebKit::WebExtensionContext::fireTabsMovedEventIfNeeded): (WebKit::WebExtensionContext::fireTabsAttachedEventIfNeeded): (WebKit::WebExtensionContext::fireTabsActivatedEventIfNeeded): (WebKit::WebExtensionContext::fireTabsHighlightedEventIfNeeded): (WebKit::WebExtensionContext::fireTabsRemovedEventIfNeeded): * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIWindowsCocoa.mm: (WebKit::WebExtensionContext::fireWindowsEventIfNeeded): * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm: (WebKit::WebExtensionContext::didStartProvisionalLoadForFrame): (WebKit::WebExtensionContext::didCommitLoadForFrame): (WebKit::WebExtensionContext::didFinishLoadForFrame): (WebKit::WebExtensionContext::didFailLoadForFrame): (WebKit::WebExtensionContext::resourceLoadDidSendRequest): (WebKit::WebExtensionContext::resourceLoadDidPerformHTTPRedirection): (WebKit::WebExtensionContext::resourceLoadDidReceiveChallenge): (WebKit::WebExtensionContext::resourceLoadDidReceiveResponse): (WebKit::WebExtensionContext::resourceLoadDidCompleteWithError): Canonical link: https://commits.webkit.org/275843@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
[webkit-changes] [WebKit/WebKit] cc9d7c: Support non-persistent background pages in Web Ext...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: cc9d7c9f1548c51d31b6695b7c06a43c3ffa50f7 https://github.com/WebKit/WebKit/commit/cc9d7c9f1548c51d31b6695b7c06a43c3ffa50f7 Author: Timothy Hatcher Date: 2024-03-07 (Thu, 07 Mar 2024) Changed paths: M Source/WTF/wtf/HashCountedSet.h M Source/WebKit/Platform/IPC/ArgumentCoders.h M Source/WebKit/Scripts/webkit/messages.py M Source/WebKit/Shared/Extensions/WebExtensionContentWorldType.h M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIActionCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIAlarmsCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPICommandsCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPICookiesCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIEventCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIMenusCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIPermissionsCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIPortCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIRuntimeCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIStorageCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPITabsCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIWindowsCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionControllerCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionMessagePortCocoa.mm M Source/WebKit/UIProcess/Extensions/WebExtensionContext.cpp M Source/WebKit/UIProcess/Extensions/WebExtensionContext.h M Source/WebKit/UIProcess/Extensions/WebExtensionContext.messages.in M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIPortCocoa.mm M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIRuntimeCocoa.mm M Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.h M Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.messages.in Log Message: --- Support non-persistent background pages in Web Extensions. https://webkit.org/b/246483 rdar://problem/114823336 Reviewed by Brian Weinstein. Fixes a number of things related to non-persistent pages. The main one was that all current uses of wakeUpBackgroundContentIfNecessaryToFireEvents() were not capturing the lambda variables correctly. This was mostly fine since the lambda was almost always called immediately, but not it will be stored and called later when the page needs woken back up. Changed all lambdas to protect the context, and copy their simple parameters and use Ref / RefPtr for counted objects. The next issue was that ports were not being disconnected when the extension pages went away, leaving a dangling port that the other pages could still message to no avail. We now disconnect ports for any page when it is removed from the WebExtensionController, which is when WebPageProxy is deallocated. This required having the UI process track what ports were open for which page. And third, the runtime.connect() and runtime.sendMessage() implementations were not waking the background. This was fine before since it was almost always guaranteed to exist (but likely a race condition). Now we wait for the page to load before trying to deliver the messages. Currently almost all tests use non-persistent pages, and this change is well exercised with the tests. When using the TestWebKitAPI runner, the timeouts for the background page is shortened to 3 seconds, vs the typical 30 seconds. And open and active ports is 6 seconds, vs the typical 2 minutes. Most tests will only wake the background page once, but some do run long enough to have it terminated and get relaunched. * Source/WTF/wtf/HashCountedSet.h: (WTF::Traits>::isValidValue): Added. The only impl passing off to HashMap was dead code, and was removed from HashMap. Add back an implemetation copied from HashSet. * Source/WebKit/Platform/IPC/ArgumentCoders.h: Fix return to be std::nullopt. This was also dead code that is now being hit since we are using it again. * Source/WebKit/Scripts/webkit/messages.py: (class_template_headers): Added HashCountedSet. * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIActionCocoa.mm: (WebKit::WebExtensionContext::fireActionClickedEventIfNeeded): Fix lambda to properly capture. * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIAlarmsCocoa.mm: (WebKit::WebExtensionContext::fireAlarmsEventIfNeeded): Ditto. * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPICommandsCocoa.mm: (WebKit::WebExtensionContext::fireCommandEventIfNeeded): Ditto. (Web
[webkit-changes] [WebKit/WebKit] c90c0b: ASSERTION FAILED: Unhandled message WebExtensionCo...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: c90c0bf192dde554a4fa459549851f7603e4b11f https://github.com/WebKit/WebKit/commit/c90c0bf192dde554a4fa459549851f7603e4b11f Author: Timothy Hatcher Date: 2024-03-05 (Tue, 05 Mar 2024) Changed paths: M Source/WebKit/WebProcess/Extensions/Cocoa/WebExtensionControllerProxyCocoa.mm M Source/WebKit/WebProcess/Extensions/WebExtensionControllerProxy.h Log Message: --- ASSERTION FAILED: Unhandled message WebExtensionController_DidStartProvisionalLoadForFrame to 17. https://webkit.org/b/270543 rdar://124098768 Reviewed by Brady Eidson. Return early for these messages if there are no extension contexts. * Source/WebKit/WebProcess/Extensions/Cocoa/WebExtensionControllerProxyCocoa.mm: (WebKit::WebExtensionControllerProxy::didStartProvisionalLoadForFrame): (WebKit::WebExtensionControllerProxy::didCommitLoadForFrame): (WebKit::WebExtensionControllerProxy::didFinishLoadForFrame): (WebKit::WebExtensionControllerProxy::didFailLoadForFrame): * Source/WebKit/WebProcess/Extensions/WebExtensionControllerProxy.h: Canonical link: https://commits.webkit.org/275716@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
[webkit-changes] [WebKit/WebKit] e1d3b9: WKWebExtensionTab and WKWebExtensionWindow tests a...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: e1d3b912b733e4145bad85c8b21cc816fd0f https://github.com/WebKit/WebKit/commit/e1d3b912b733e4145bad85c8b21cc816fd0f Author: Timothy Hatcher Date: 2024-03-04 (Mon, 04 Mar 2024) Changed paths: M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionTab.mm M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionWindow.mm Log Message: --- WKWebExtensionTab and WKWebExtensionWindow tests are failing after 275651@main. https://webkit.org/b/270502 rdar://problem/124049994 Unreviewed test gardening. * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionTab.mm: (TestWebKitAPI::TEST): Updated expected results. * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionWindow.mm: (TestWebKitAPI::TEST): Updated expected results. Canonical link: https://commits.webkit.org/275672@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
[webkit-changes] [WebKit/WebKit] 579e38: Add EnabledIf to all Web Extensions messages.
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 579e387b33d52132dc80e23392e1067184eadd58 https://github.com/WebKit/WebKit/commit/579e387b33d52132dc80e23392e1067184eadd58 Author: Timothy Hatcher Date: 2024-03-04 (Mon, 04 Mar 2024) Changed paths: M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIActionCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIAlarmsCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPICommandsCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPICookiesCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIDeclarativeNetRequestCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIMenusCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIScriptingCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIStorageCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIWebNavigationCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm M Source/WebKit/UIProcess/Extensions/WebExtensionContext.h M Source/WebKit/UIProcess/Extensions/WebExtensionContext.messages.in M Source/WebKit/UIProcess/Extensions/WebExtensionController.messages.in M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIMenus.mm M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPITabs.mm M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionDataRecord.mm M Tools/TestWebKitAPI/cocoa/WebExtensionUtilities.mm Log Message: --- Add EnabledIf to all Web Extensions messages. https://webkit.org/b/270468 rdar://problem/124026371 Reviewed by Brian Weinstein. Added EnabledIf to all messages, and for APIs that require granted permissions, use the new isAPIMessageAllowed() which does the permissions checks. This will prevent a compromised web process from trying to send messages that are not currently expected by the UI process. * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIActionCocoa.mm: (WebKit::WebExtensionContext::isActionMessageAllowed): Added. * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIAlarmsCocoa.mm: (WebKit::WebExtensionContext::isAlarmsMessageAllowed): Added. * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPICommandsCocoa.mm: (WebKit::WebExtensionContext::isCommandsMessageAllowed): Added. * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPICookiesCocoa.mm: (WebKit::WebExtensionContext::isCookiesMessageAllowed): Added. * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIDeclarativeNetRequestCocoa.mm: (WebKit::WebExtensionContext::isDeclarativeNetRequestMessageAllowed): Added. * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIMenusCocoa.mm: (WebKit::WebExtensionContext::isMenusMessageAllowed): Added. * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIScriptingCocoa.mm: (WebKit::WebExtensionContext::isScriptingMessageAllowed): Added. * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIStorageCocoa.mm: (WebKit::WebExtensionContext::isStorageMessageAllowed): Added. * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIWebNavigationCocoa.mm: (WebKit::WebExtensionContext::isWebNavigationMessageAllowed): Added. * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm: (WebKit::WebExtensionContext::isDevToolsMessageAllowed): Added. * Source/WebKit/UIProcess/Extensions/WebExtensionContext.h: * Source/WebKit/UIProcess/Extensions/WebExtensionContext.messages.in: * Source/WebKit/UIProcess/Extensions/WebExtensionController.messages.in: * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIMenus.mm: (TEST(WKWebExtensionAPIMenus, ActionMenus)): Reset activeTab, ActionMenusWithActiveTab tests that. (TEST(WKWebExtensionAPIMenus, ActionMenusWithActiveTab)): Remove activeTab grant, it is granted by manager. (TEST(WKWebExtensionAPIMenus, MacActiveTabContextMenuItems)): Ditto. * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPITabs.mm: (TEST(WKWebExtensionAPITabs, UserGestureWithoutActiveTab)): Reset activeTab, ActiveTab tests that. * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionDataRecord.mm: (TEST(WKWebExtensionDataRecord, GetDataRecords)): Grant storage permission. (TEST(WKWebExtensionDataRecord, GetDataRecordsForMultipleContexts)): Ditto. (TEST(WKWebExtensionDataRecord, DISABLED_RemoveDataRecords)): Ditto. (TEST(WKWebExtensionDataRecord, DISABLED_RemoveDataRecordsForMultipleContexts)): Ditto. * Tools/TestWebKitAPI/cocoa/WebExtensionUtilities.mm: (-[TestWebExtensionManager initForExtension:extensionControllerConfiguration:]): Grant all requested API permissions, so it does not need done in each test. This matches what we do in Safari. Canonical link: https
[webkit-changes] [WebKit/WebKit] bab9c3: clipboardWrite permission does not work in Web Ext...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: bab9c3e3b0ebd24d87c99a17d979bc2b8c7cd715 https://github.com/WebKit/WebKit/commit/bab9c3e3b0ebd24d87c99a17d979bc2b8c7cd715 Author: Timothy Hatcher Date: 2024-03-04 (Mon, 04 Mar 2024) Changed paths: M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm M Source/WebKit/UIProcess/Extensions/WebExtensionContext.h M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIPermissions.mm Log Message: --- clipboardWrite permission does not work in Web Extensions. https://webkit.org/b/270419 rdar://123976956 Reviewed by Brian Weinstein. Set the javaScriptCanAccessClipboard preference when the clipboardWrite permission is granted or is revoked. Added three new tests to verify this works. * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm: (WebKit::WebExtensionContext::permissionsDidChange): Added. (WebKit::WebExtensionContext::postAsyncNotification): Call permissionsDidChange(). (WebKit::WebExtensionContext::enumerateExtensionPages): Added. (WebKit::WebExtensionContext::relatedWebView): Use enumerateExtensionPages(). (WebKit::WebExtensionContext::webViewConfiguration): Set _javaScriptCanAccessClipboard based on the clipboardWrite permission. * Source/WebKit/UIProcess/Extensions/WebExtensionContext.h: * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIPermissions.mm: (TestWebKitAPI::runScriptWithUserGesture): Added ASSERT. (TEST(WKWebExtensionAPIPermissions, ClipboardWrite)): Added. (TEST(WKWebExtensionAPIPermissions, ClipboardWriteWithoutPermission)): Added. (TEST(WKWebExtensionAPIPermissions, ClipboardWriteWithRequest)): Added. Canonical link: https://commits.webkit.org/275639@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
[webkit-changes] [WebKit/WebKit] 7a3236: Context menu items for Action and Tab are not filt...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 7a3236ba274c5374337531088e431b1ce8728a77 https://github.com/WebKit/WebKit/commit/7a3236ba274c5374337531088e431b1ce8728a77 Author: Timothy Hatcher Date: 2024-03-04 (Mon, 04 Mar 2024) Changed paths: M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionActionCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm M Source/WebKit/UIProcess/Extensions/WebExtensionMenuItem.cpp M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIMenus.mm Log Message: --- Context menu items for Action and Tab are not filtered by tab URL. https://webkit.org/b/270420 rdar://123977080 Reviewed by Brian Weinstein. Allow documentUrlPatterns to apply to action and tab context for menus. This prevents menu items from appearing that don’t apply to the current document in the tab. * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionActionCocoa.mm: (WebKit::WebExtensionAction::platformMenuItems const): Set frameURL. * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm: (WebKit::WebExtensionContext::platformMenuItems const): Set frameURL. * Source/WebKit/UIProcess/Extensions/WebExtensionMenuItem.cpp: (WebKit::WebExtensionMenuItem::matches const): Match frameURL before the early return for action and tab contexts. Only match if frameURL is non-null. * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIMenus.mm: (TEST(WKWebExtensionAPIMenus, ActionMenus)): Added documentUrlPatterns to one item. (TEST(WKWebExtensionAPIMenus, TabMenus)): Ditto. Canonical link: https://commits.webkit.org/275638@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
[webkit-changes] [WebKit/WebKit] 24d05e: Return empty port with a delay if destination exte...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 24d05ed6508910459be7ca081f3d4042a1174f68 https://github.com/WebKit/WebKit/commit/24d05ed6508910459be7ca081f3d4042a1174f68 Author: Timothy Hatcher Date: 2024-03-04 (Mon, 04 Mar 2024) Changed paths: M Source/WebKit/Platform/cocoa/CocoaHelpers.h M Source/WebKit/Platform/cocoa/CocoaHelpers.mm M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIPortCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIRuntimeCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionMessagePortCocoa.mm M Source/WebKit/UIProcess/Extensions/WebExtensionContext.h M Source/WebKit/UIProcess/Extensions/WebExtensionContext.messages.in M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIEventCocoa.mm M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIPortCocoa.mm M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIRuntimeCocoa.mm M Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIObject.h M Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIPort.h M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIRuntime.mm Log Message: --- Return empty port with a delay if destination extension isn't found for externally_connectable. https://webkit.org/b/269539 rdar://123060441 Reviewed by Brian Weinstein. Enhance privacy in web-to-extension messaging by ensuring indistinguishability between scenarios where an extension is not found or lacks permission to the page and when messaging is permitted. This approach mitigates fingerprinting based on installed extensions. Accomplish this by introducing a random delay for runtime.sendMessage() responses in error cases. Also runtime.connect() now consistently returns a port, which is subsequently disconnected after a random delay. Importantly, no errors are reported to the web page in any of these situations. Also improved port bookkeeping by always sending the PortRemoved message (was PortDisconnect) when the port is disconnected or garbage collected. * Source/WebKit/Platform/cocoa/CocoaHelpers.h: * Source/WebKit/Platform/cocoa/CocoaHelpers.mm: (WebKit::callAfterRandomDelay): Added. * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIPortCocoa.mm: (WebKit::WebExtensionContext::portRemoved): Added. (WebKit::WebExtensionContext::portDisconnect): Deleted. * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIRuntimeCocoa.mm: (WebKit::WebExtensionContext::runtimeWebPageSendMessage): Added work behind callAfterRandomDelay(). (WebKit::WebExtensionContext::runtimeWebPageConnect): Ditto. * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionMessagePortCocoa.mm: (WebKit::WebExtensionMessagePort::disconnect): Move portRemoved() call to remove(). (WebKit::WebExtensionMessagePort::remove): Add call to portRemoved(). * Source/WebKit/UIProcess/Extensions/WebExtensionContext.h: * Source/WebKit/UIProcess/Extensions/WebExtensionContext.messages.in: * Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIEventCocoa.mm: (WebKit::WebExtensionAPIEvent::addListener): Check hasExtensionContext() before using extensionContext(). This was needed since the quarantined port has no extensionContext, and events it created don't as well. (WebKit::WebExtensionAPIEvent::removeListener): Ditto. (WebKit::WebExtensionAPIEvent::removeAllListeners): Ditto. * Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIPortCocoa.mm: (WebKit::WebExtensionAPIPort::add): ASSERT !isQuarantined(), since it should not be added to the map. (WebKit::WebExtensionAPIPort::remove): Return early for isQuarantined(). Send PortRemoved here. (WebKit::WebExtensionAPIPort::postMessage): Use renamed isDisconnected(). (WebKit::WebExtensionAPIPort::fireMessageEventIfNeeded): Return early for isQuarantined(). (WebKit::WebExtensionAPIPort::fireDisconnectEventIfNeeded): Moved PortDisconnect message to remove(). * Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIRuntimeCocoa.mm: (WebKit::WebExtensionAPIWebPageRuntime::sendMessage): Respond after a random delay. (WebKit::WebExtensionAPIWebPageRuntime::connect): Return a port, and disconnect after a random delay. * Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIObject.h: (WebKit::WebExtensionAPIObject::hasExtensionContext const): Added. * Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIPort.h: (WebKit::WebExtensionAPIPort::isDisconnected const): Added. (WebKit::WebExtensionAPIPort::isQuarantined const): Added. (WebKit::WebExtensionAPIPort::WebExtensionAPIPort): Added. (WebKit::WebExtensionAPIPort::disconnected const): Deleted. * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIRuntime.mm: (TEST(WKWebExtensionAPIRuntime, ConnectFromWebPageWithWrongIdentifier)): Added. (TEST(WKWebExtensionAPIRuntime, SendMessageFromWebPageWithWrongIdentifier)): Added. Canonical link
[webkit-changes] [WebKit/WebKit] 08b992: Support moving a Web Extension tab to and from WIN...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 08b9923002071e6d00a4a90607710fa07b61676d https://github.com/WebKit/WebKit/commit/08b9923002071e6d00a4a90607710fa07b61676d Author: Timothy Hatcher Date: 2024-02-28 (Wed, 28 Feb 2024) Changed paths: M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionContext.h M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionContext.mm M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionController.h M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm M Source/WebKit/UIProcess/Extensions/WebExtensionContext.h M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPITabs.mm M Tools/TestWebKitAPI/cocoa/WebExtensionUtilities.h M Tools/TestWebKitAPI/cocoa/WebExtensionUtilities.mm Log Message: --- Support moving a Web Extension tab to and from WINDOW_ID_NONE. https://webkit.org/b/270260 rdar://123102191 Reviewed by Brian Weinstein. Safari needs to move tabs to and from WINDOW_ID_NONE when switching Tab Groups. The existing didMoveTab:fromIndex:inWindow: method needed updated to support this, and properly fire the tabs events. Updated existing testing support to allow assigning nil to a tab's window. * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionContext.h: * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionContext.mm: (-[_WKWebExtensionContext didMoveTab:fromIndex:inWindow:]): Handle NSNotFound. * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionController.h: * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm: (WebKit::WebExtensionContext::didMoveTab): Enumerate all the possible move combos when logging, and fire the appropriate events for for each possibility. * Source/WebKit/UIProcess/Extensions/WebExtensionContext.h: * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPITabs.mm: (TEST(WKWebExtensionAPITabs, DetachAndAttachToWindowIDNone)): Added. (TEST(WKWebExtensionAPITabs, DetachAndAttachFromWindowIDNone)): Added. * Tools/TestWebKitAPI/cocoa/WebExtensionUtilities.h: * Tools/TestWebKitAPI/cocoa/WebExtensionUtilities.mm: (-[TestWebExtensionTab assignWindow:]): Added. (-[TestWebExtensionTab setWindow:]): Added. Call didMoveTab:::. (-[TestWebExtensionWindow removeTab:]): Added. (-[TestWebExtensionWindow insertTab:atIndex:]): Added. (-[TestWebExtensionWindow moveTab:toIndex:]): Use assignWindow:. And pass self when the tab is moving in the same window. Canonical link: https://commits.webkit.org/275476@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
[webkit-changes] [WebKit/WebKit] 16d05a: Use privacyPreservingDescription() and always log ...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 16d05a3d74c72c170b84a8826c5121c680d2e23c https://github.com/WebKit/WebKit/commit/16d05a3d74c72c170b84a8826c5121c680d2e23c Author: Timothy Hatcher Date: 2024-02-28 (Wed, 28 Feb 2024) Changed paths: M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIDeclarativeNetRequestCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIRuntimeCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPITabsCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIWindowsCocoa.mm M 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/Cocoa/WebExtensionWindowCocoa.mm Log Message: --- Use privacyPreservingDescription() and always log NSErrors as %{public}@. https://webkit.org/b/270234 rdar://problem/123771246 Reviewed by Brian Weinstein. Use privacyPreservingDescription() wherever we log an NSError, and switch it to be %{public}@. Also change some error strings in dNR to %{public}@ since they are not private error messages. * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIDeclarativeNetRequestCocoa.mm: (WebKit::WebExtensionContext::updateDeclarativeNetRequestRulesInStorage): * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIRuntimeCocoa.mm: (WebKit::WebExtensionContext::runtimeOpenOptionsPage): * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPITabsCocoa.mm: (WebKit::WebExtensionContext::tabsCreate): * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIWindowsCocoa.mm: (WebKit::WebExtensionContext::windowsCreate): * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionActionCocoa.mm: (-[_WKWebExtensionActionWebViewDelegate webView:didFailProvisionalNavigation:withError:]): (-[_WKWebExtensionActionWebViewDelegate webView:didFailNavigation:withError:]): (WebKit::WebExtensionAction::detectPopoverColorScheme): * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionCocoa.mm: (WebKit::WebExtension::recordError): * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm: (WebKit::WebExtensionContext::readStateFromPath): (WebKit::WebExtensionContext::writeStateToStorage const): * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionTabCocoa.mm: (WebKit::WebExtensionTab::setParentTab): (WebKit::WebExtensionTab::pin): (WebKit::WebExtensionTab::unpin): (WebKit::WebExtensionTab::toggleReaderMode): (WebKit::WebExtensionTab::mute): (WebKit::WebExtensionTab::unmute): (WebKit::WebExtensionTab::setZoomFactor): (WebKit::WebExtensionTab::detectWebpageLocale): (WebKit::WebExtensionTab::captureVisibleWebpage): (WebKit::WebExtensionTab::loadURL): (WebKit::WebExtensionTab::reload): (WebKit::WebExtensionTab::reloadFromOrigin): (WebKit::WebExtensionTab::goBack): (WebKit::WebExtensionTab::goForward): (WebKit::WebExtensionTab::activate): (WebKit::WebExtensionTab::select): (WebKit::WebExtensionTab::deselect): (WebKit::WebExtensionTab::duplicate): (WebKit::WebExtensionTab::close): * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionWindowCocoa.mm: (WebKit::WebExtensionWindow::setState): (WebKit::WebExtensionWindow::focus): (WebKit::WebExtensionWindow::setFrame): (WebKit::WebExtensionWindow::close): Canonical link: https://commits.webkit.org/275470@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
[webkit-changes] [WebKit/WebKit] 53b1e6: 1Password fails to load popup after focusing a for...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 53b1e6b7f02bbbc8a252792659963244ee04620f https://github.com/WebKit/WebKit/commit/53b1e6b7f02bbbc8a252792659963244ee04620f Author: Timothy Hatcher Date: 2024-02-28 (Wed, 28 Feb 2024) Changed paths: M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIRuntimeCocoa.mm M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIRuntimeCocoa.mm M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIRuntime.mm Log Message: --- 1Password fails to load popup after focusing a form field on a page. https://webkit.org/b/270233 rdar://123423266 Reviewed by Jeff Miller and Brian Weinstein. Once the input field is focused, 1Password creates an iframe with an extension document in the tab. This causes two processes to have listeners for the runtime.onMessage event. That then causes a race when sending messages, and the tab frame wins since the background replies async after doing some work. This was happening because the reply aggregator in the web process was sending a default null reply, since the completion handler is always called, which was indistinguishable from a real reply. Now we always send either null for default or at minimum an empty string for the JSON reply, and the UI process skips the replies that are null strings. The aggregator on the UI process side will then get the real reply or default to null later once it goes out of scope. * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIRuntimeCocoa.mm: (WebKit::WebExtensionContext::runtimeSendMessage): Don't call callbackAggregator for null string. (WebKit::WebExtensionContext::runtimeWebPageSendMessage): Ditto. * Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIRuntimeCocoa.mm: (WebKit::WebExtensionContextProxy::internalDispatchRuntimeMessageEvent): Ensure a real reply is never null, so the completionHandler can make the distinction. Send default replies as null. * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIRuntime.mm: (TEST(WKWebExtensionAPIRuntime, SendMessageWithTabFrameAndAsyncReply)): Added. (TEST(WKWebExtensionAPIRuntime, SendMessageFromWebPageWithTabFrameAndAsyncReply)): Added. Canonical link: https://commits.webkit.org/275461@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
[webkit-changes] [WebKit/WebKit] d2091f: Web Extension popup can present too soon.
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: d2091f38fe857c747e7eb84f0e2d7fe19aa6fd1c https://github.com/WebKit/WebKit/commit/d2091f38fe857c747e7eb84f0e2d7fe19aa6fd1c Author: Timothy Hatcher Date: 2024-02-28 (Wed, 28 Feb 2024) Changed paths: M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionActionCocoa.mm M Source/WebKit/UIProcess/Extensions/WebExtensionAction.h M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIAction.mm Log Message: --- Web Extension popup can present too soon. https://webkit.org/b/270185 rdar://problem/123711867 Reviewed by Brian Weinstein. Instead of starting the timer that presented the popup on the start of the load, we should start it after the document has loaded and rendering will begin. This prevents us from showing the popup while it might still be loading, and causing it to resize mid-animation in most instances. Also connect delegate methods for load fails to close the popup, so the web view doesn't stick around indefinitely. Some API tests were failing to load because the popup.html resource was missing. * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionActionCocoa.mm: (-[_WKWebExtensionActionWebViewDelegate webView:didFailProvisionalNavigation:withError:]): (-[_WKWebExtensionActionWebViewDelegate webView:didFailNavigation:withError:]): (-[_WKWebExtensionActionWebViewDelegate _webView:navigationDidFinishDocumentLoad:]): (WebKit::WebExtensionAction::presentPopupWhenReady): (WebKit::WebExtensionAction::popupDidFinishDocumentLoad): (WebKit::WebExtensionAction::readyToPresentPopup): * Source/WebKit/UIProcess/Extensions/WebExtensionAction.h: * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIAction.mm: (TestWebKitAPI::TEST): Canonical link: https://commits.webkit.org/275454@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
[webkit-changes] [WebKit/WebKit] 75b646: Add NSPopover to _WKWebExtensionAction.
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 75b646bd8fd82fcc3457d7c99efb23206a3617ca https://github.com/WebKit/WebKit/commit/75b646bd8fd82fcc3457d7c99efb23206a3617ca Author: Timothy Hatcher Date: 2024-02-27 (Tue, 27 Feb 2024) Changed paths: M Source/WebKit/Platform/spi/mac/AppKitSPI.h M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionAction.h M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionAction.mm M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionActionCocoa.mm M Source/WebKit/UIProcess/Extensions/WebExtensionAction.h M Tools/Scripts/webkitpy/style/checkers/cpp.py M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIAction.mm Log Message: --- Add NSPopover to _WKWebExtensionAction. https://webkit.org/b/270126 rdar://problem/123655122 Reviewed by Jeff Miller. Also remove the ContentSizeDidChange and DidClose notifications, since those things and handled internally now with the UIViewController and NSPopover paths. Rename closePopupWebView to closePopup to also better align with the new approach. * Source/WebKit/Platform/spi/mac/AppKitSPI.h: * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionAction.h: * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionAction.mm: (-[_WKWebExtensionAction popupPopover]): (-[_WKWebExtensionAction closePopup]): (-[_WKWebExtensionAction closePopupWebView]): Deleted. * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionActionCocoa.mm: (-[_WKWebExtensionActionWebViewDelegate webViewWebContentProcessDidTerminate:]): (-[_WKWebExtensionActionWebViewDelegate webViewDidClose:]): (-[_WKWebExtensionActionViewController _viewControllerDismissalTransitionDidEnd:]): (-[_WKWebExtensionActionPopover initWithWebExtensionAction:]): (-[_WKWebExtensionActionPopover dealloc]): (-[_WKWebExtensionActionPopover popoverWillClose:]): (-[_WKWebExtensionActionPopover popoverDidClose:]): (-[_WKWebExtensionActionPopover _otherPopoverWillShow:]): (WebKit::WebExtensionAction::clearCustomizations): (WebKit::WebExtensionAction::setPopupPath): (WebKit::WebExtensionAction::popupPopover): (WebKit::WebExtensionAction::setPopupPopoverAppearance): (WebKit::WebExtensionAction::detectPopoverColorScheme): (WebKit::WebExtensionAction::popupWebView): (WebKit::WebExtensionAction::readyToPresentPopup): (WebKit::WebExtensionAction::popupSizeDidChange): (WebKit::WebExtensionAction::closePopup): (WebKit::WebExtensionAction::popupDidClose): Deleted. (WebKit::WebExtensionAction::closePopupWebView): Deleted. * Source/WebKit/UIProcess/Extensions/WebExtensionAction.h: (WebKit::WebExtensionAction::popupPopoverAppearance const): * Tools/Scripts/webkitpy/style/checkers/cpp.py: (check_identifier_name_in_declaration): Make an exception for _WK prefixed classes. * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIAction.mm: (TestWebKitAPI::TEST): Canonical link: https://commits.webkit.org/275391@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
[webkit-changes] [WebKit/WebKit] c210f6: Tapping locked 1Password icon in password field fa...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: c210f6aba610272b3da3e48813257f160c55836f https://github.com/WebKit/WebKit/commit/c210f6aba610272b3da3e48813257f160c55836f Author: Timothy Hatcher Date: 2024-02-26 (Mon, 26 Feb 2024) Changed paths: M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIActionCocoa.mm M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIAction.mm Log Message: --- Tapping locked 1Password icon in password field fails to open popup. https://webkit.org/b/270116 rdar://123647578 Reviewed by Brian Weinstein. 1Password calls the browser.openPopup() function when the extension is locked. This is failing due to them not telling us what window or tab to use, instead they are relying on us using the active window and tab. Currently we use the default action, which has no tab associated and this causes Safari to fail to present the popup. Always use the tab's action when handling browser.openPopup() with a windowID, or no arguments (implying the frontmost window and active tab). * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIActionCocoa.mm: (WebKit::WebExtensionContext::actionOpenPopup): Combine paths, so there is one final call to the performAction method which will always have an associated tab. * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIAction.mm: (TestWebKitAPI::TEST): Updated expected results for associatedTab. Canonical link: https://commits.webkit.org/275346@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
[webkit-changes] [WebKit/WebKit] eb5c28: Add UIViewController to _WKWebExtensionAction.
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: eb5c280e046344fc93ee454dce60690da5d75e7a https://github.com/WebKit/WebKit/commit/eb5c280e046344fc93ee454dce60690da5d75e7a Author: Timothy Hatcher Date: 2024-02-26 (Mon, 26 Feb 2024) Changed paths: M Source/WebKit/Platform/spi/ios/UIKitSPI.h M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionAction.h M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionAction.mm M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionActionCocoa.mm M Source/WebKit/UIProcess/Extensions/WebExtensionAction.h M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIAction.mm Log Message: --- Add UIViewController to _WKWebExtensionAction. https://webkit.org/b/270099 rdar://121461105 Reviewed by Brian Weinstein. The logic for popups is complex on iOS, we should vend a UIViewController instead of just the WKWebView. This also overrides the viewport to accommodate desktop extenions better on mobile. * Source/WebKit/Platform/spi/ios/UIKitSPI.h: * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionAction.h: * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionAction.mm: (-[_WKWebExtensionAction popupViewController]): * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionActionCocoa.mm: (-[_WKWebExtensionActionWebViewDelegate initWithWebExtensionAction:]): (-[_WKWebExtensionActionWebViewDelegate webView:decidePolicyForNavigationAction:decisionHandler:]): (-[_WKWebExtensionActionWebView initWithFrame:configuration:webExtensionAction:]): (-[_WKWebExtensionActionWebView dealloc]): (-[_WKWebExtensionActionWebView invalidateIntrinsicContentSize]): (-[_WKWebExtensionActionWebView observeValueForKeyPath:ofObject:change:context:]): (-[_WKWebExtensionActionWebView _contentSize]): (-[_WKWebExtensionActionWebView _contentSizeDidChange]): (-[_WKWebExtensionActionWebView _checkIfContentSizeStabilizedAndPresentPopup]): (-[_WKWebExtensionActionViewController initWithWebExtensionAction:]): (-[_WKWebExtensionActionViewController viewIsAppearing:]): (-[_WKWebExtensionActionViewController adaptivePresentationStyleForPresentationController:traitCollection:]): (-[_WKWebExtensionActionViewController presentationController:prepareAdaptivePresentationController:]): (-[_WKWebExtensionActionViewController presentationController:viewControllerForAdaptivePresentationStyle:]): (-[_WKWebExtensionActionViewController _viewControllerDismissalTransitionDidEnd:]): (-[_WKWebExtensionActionViewController _updatePopoverContentSize]): (-[_WKWebExtensionActionViewController _updateDetentForSheetPresentationController:]): (-[_WKWebExtensionActionViewController _dismissPopup]): (WebKit::WebExtensionAction::popupViewController): (WebKit::WebExtensionAction::popupWebView): (WebKit::WebExtensionAction::readyToPresentPopup): (WebKit::WebExtensionAction::popupSizeDidChange): (WebKit::WebExtensionAction::popupDidClose): (WebKit::WebExtensionAction::closePopupWebView): * Source/WebKit/UIProcess/Extensions/WebExtensionAction.h: * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIAction.mm: (TestWebKitAPI::TEST): Check that popupViewController is non-null. Canonical link: https://commits.webkit.org/275337@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
[webkit-changes] [WebKit/WebKit] dc20f3: _WKWebExtensionMessagePort is being deallocated on...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: dc20f3f73c6b9aa0da5523525031b6501436dc4d https://github.com/WebKit/WebKit/commit/dc20f3f73c6b9aa0da5523525031b6501436dc4d Author: Timothy Hatcher Date: 2024-02-23 (Fri, 23 Feb 2024) Changed paths: M Source/WTF/wtf/PlatformHave.h M Source/WTF/wtf/spi/cocoa/objcSPI.h M Source/WebKit/Shared/Cocoa/WKObject.h M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtension.mm M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionAction.mm M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionCommand.mm M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionContext.mm M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionController.mm M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionControllerConfiguration.mm M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionDataRecord.mm M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionMatchPattern.mm M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionMessagePort.mm Log Message: --- _WKWebExtensionMessagePort is being deallocated on a background thread. https://webkit.org/b/270012 rdar://123529626 Reviewed by Darin Adler. Introduce WK_OBJECT_DEALLOC_ON_MAIN_THREAD() and WK_OBJECT_DEALLOC_IMPL_ON_MAIN_THREAD() macros that use _class_setCustomDeallocInitiation() to be able to dealloc on the main thread for both ARC and non-ARC objects. Start using these macros in the Web Extensions classes since they stopped using WebCoreObjCScheduleDeallocateOnMainRunLoop(). All objects currently using the WebCore dealloc helper can be switched over to use these new macros. * Source/WTF/wtf/PlatformHave.h: Added HAVE_OBJC_CUSTOM_DEALLOC. * Source/WTF/wtf/spi/cocoa/objcSPI.h: Added _class_setCustomDeallocInitiation and _objc_deallocOnMainThreadHelper. * Source/WebKit/Shared/Cocoa/WKObject.h: Added WK_OBJECT_DEALLOC_ON_MAIN_THREAD and WK_OBJECT_DEALLOC_IMPL_ON_MAIN_THREAD. * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtension.mm: (-[_WKWebExtension dealloc]): Deleted. * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionAction.mm: (-[_WKWebExtensionAction dealloc]): Deleted. * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionCommand.mm: (-[_WKWebExtensionCommand dealloc]): Deleted. * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionContext.mm: (-[_WKWebExtensionContext initForExtension:]): (-[_WKWebExtensionContext dealloc]): Deleted. * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionController.mm: (-[_WKWebExtensionController dealloc]): Deleted. * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionControllerConfiguration.mm: (-[_WKWebExtensionControllerConfiguration dealloc]): Deleted. * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionDataRecord.mm: (-[_WKWebExtensionDataRecord dealloc]): Deleted. * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionMatchPattern.mm: (-[_WKWebExtensionMatchPattern initWithCoder:]): (-[_WKWebExtensionMatchPattern encodeWithCoder:]): (-[_WKWebExtensionMatchPattern copyWithZone:]): (-[_WKWebExtensionMatchPattern dealloc]): Deleted. * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionMessagePort.mm: (-[_WKWebExtensionMessagePort dealloc]): Deleted. Canonical link: https://commits.webkit.org/275272@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
[webkit-changes] [WebKit/WebKit] 36c6dd: Safari is hanging on launch in WebExtension::resou...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 36c6dd79307be994ccb7ca9a819775c6e904564c https://github.com/WebKit/WebKit/commit/36c6dd79307be994ccb7ca9a819775c6e904564c Author: Timothy Hatcher Date: 2024-02-23 (Fri, 23 Feb 2024) Changed paths: M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionActionCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionCocoa.mm Log Message: --- Safari is hanging on launch in WebExtension::resourceFileURLForPath. https://webkit.org/b/269972 rdar://123470286 Reviewed by Brian Weinstein. Three things were happening here to cause the hang: * The incorrect logic for checking null strings in `clearCustomizations()` was causing the notification to fire all the time. When the action cleared, Ghostery would set custom icons and an empty badge string again (likely detecting the change in results from browser.action APIs.) This would cause rapid cycles of change and reset. * The icon paths Ghostery uses start with a `/`. This was causing our `resourceFileURLForPath()` function to truncate the file URL back to the root and return nil for the icons path. This caused the action icon image to fail to load and show a blank icon. * Not all of the action properties were properly tracking changes, always sending the changed notification when nothing had changed. * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionActionCocoa.mm: (WebKit::WebExtensionAction::clearCustomizations): Correct the null string checks. (WebKit::WebExtensionAction::setIconsDictionary): Early return if nothing changed. (WebKit::WebExtensionAction::setHasUnreadBadgeText): Ditto. (WebKit::WebExtensionAction::incrementBlockedResourceCount): Ditto. * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionCocoa.mm: (WebKit::WebExtension::resourceFileURLForPath): Remove prefix if present. Canonical link: https://commits.webkit.org/275225@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
[webkit-changes] [WebKit/WebKit] 7c0a7f: EmberJS Web Extension fails to detect Ember applic...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 7c0a7f074ef28ce5047f221780989c47e18e763c https://github.com/WebKit/WebKit/commit/7c0a7f074ef28ce5047f221780989c47e18e763c Author: Timothy Hatcher Date: 2024-02-21 (Wed, 21 Feb 2024) Changed paths: M Source/WebKit/Shared/Extensions/WebExtensionContentWorldType.h M Source/WebKit/Shared/Extensions/WebExtensionContentWorldType.serialization.in M Source/WebKit/Shared/Extensions/WebExtensionContextParameters.h M Source/WebKit/Shared/Extensions/WebExtensionContextParameters.serialization.in M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIPortCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIRuntimeCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm M Source/WebKit/UIProcess/Extensions/WebExtensionContext.cpp M Source/WebKit/UIProcess/Extensions/WebExtensionContext.h M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIRuntimeCocoa.mm M Source/WebKit/WebProcess/Extensions/Cocoa/WebExtensionContextProxyCocoa.mm M Source/WebKit/WebProcess/Extensions/Cocoa/WebExtensionControllerProxyCocoa.mm M Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.cpp M Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.h M Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.messages.in M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIDevTools.mm Log Message: --- EmberJS Web Extension fails to detect Ember application. https://webkit.org/b/269816 rdar://problem/123338506 Reviewed by Brian Weinstein. DevTools extensions need to use a custom content world type, that is similar to Main but distinct since it has less APIs. Previously we were just using the ContentScript world type to limit the APIs. This prevented message passing from being delivered properly to the Inspector pages. We also need the pass the Inspector page, tab, and window identifiers to the web process so browser.devtools.inspectedWindow.tabId returns the correct value. * Source/WebKit/Shared/Extensions/WebExtensionContentWorldType.h: (WebKit::toDebugString): * Source/WebKit/Shared/Extensions/WebExtensionContentWorldType.serialization.in: * Source/WebKit/Shared/Extensions/WebExtensionContextParameters.h: * Source/WebKit/Shared/Extensions/WebExtensionContextParameters.serialization.in: * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIPortCocoa.mm: (WebKit::WebExtensionContext::portPostMessage): (WebKit::WebExtensionContext::firePortDisconnectEventIfNeeded): * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIRuntimeCocoa.mm: (WebKit::WebExtensionContext::runtimeSendMessage): * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm: (WebKit::WebExtensionContext::inspectorPageIdentifiers const): (WebKit::WebExtensionContext::wakeUpBackgroundContentIfNecessaryToFireEvents): (WebKit::WebExtensionContext::loadInspectorBackgroundPage): * Source/WebKit/UIProcess/Extensions/WebExtensionContext.cpp: (WebKit::WebExtensionContext::parameters const): (WebKit::WebExtensionContext::pageListensForEvent const): (WebKit::WebExtensionContext::processes const): * Source/WebKit/UIProcess/Extensions/WebExtensionContext.h: (WebKit::WebExtensionContext::processes const): (WebKit::WebExtensionContext::sendToProcessesForEvents const): * Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIRuntimeCocoa.mm: (WebKit::WebExtensionContextProxy::dispatchRuntimeMessageEvent): (WebKit::WebExtensionContextProxy::dispatchRuntimeConnectEvent): * Source/WebKit/WebProcess/Extensions/Cocoa/WebExtensionContextProxyCocoa.mm: (WebKit::WebExtensionContextProxy::toDOMWrapperWorld): * Source/WebKit/WebProcess/Extensions/Cocoa/WebExtensionControllerProxyCocoa.mm: (WebKit::WebExtensionControllerProxy::globalObjectIsAvailableForFrame): * Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.cpp: (WebKit::WebExtensionContextProxy::tabIdentifier const): (WebKit::WebExtensionContextProxy::addInspectorPage): (WebKit::WebExtensionContextProxy::addInspectorPageIdentifier): * Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.h: * Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.messages.in: * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIDevTools.mm: (TEST(WKWebExtensionAPIDevTools, MessagePassingToBackground)): Added. (TEST(WKWebExtensionAPIDevTools, MessagePassingFromPanelToBackground)): Added. (TEST(WKWebExtensionAPIDevTools, MessagePassingFromPanelToDevToolsBackground)): Added. (TEST(WKWebExtensionAPIDevTools, PortMessagePassingToBackground)): Added. (TEST(WKWebExtensionAPIDevTools, PortMessagePassingFromPanelToBackground)): Added. (TEST(WKWebExtensionAPIDevTools, PortMessagePassingFromPanelToDevToolsBackground)): Added. Canonical link: https://commits.webkit.org/275135@main To unsubscribe from these emails, change
[webkit-changes] [WebKit/WebKit] 607817: Remove browser.test.testEvent and browser.test.fir...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 607817d6a54bd5803b8a719493511a70034a533e https://github.com/WebKit/WebKit/commit/607817d6a54bd5803b8a719493511a70034a533e Author: Timothy Hatcher Date: 2024-02-20 (Tue, 20 Feb 2024) Changed paths: M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPITestCocoa.mm M Source/WebKit/WebProcess/Extensions/API/WebExtensionAPITest.h M Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPITest.idl M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIEvent.mm Log Message: --- Remove browser.test.testEvent and browser.test.fireTestEvent(). https://webkit.org/b/269659 rdar://123173676 Reviewed by Brian Weinstein. * Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPITestCocoa.mm: (WebKit::WebExtensionAPITest::testEvent): Deleted. (WebKit::WebExtensionAPITest::fireTestEvent): Deleted. * Source/WebKit/WebProcess/Extensions/API/WebExtensionAPITest.h: * Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPITest.idl: * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIEvent.mm: (TEST(WKWebExtensionAPIEvent, Errors)): Use browser.runtime.onStartup instead. (TEST(WKWebExtensionAPIEvent, TestEventListener)): Ditto. Firing events is tested plenty of times in other tests. Canonical link: https://commits.webkit.org/275071@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
[webkit-changes] [WebKit/WebKit] 948644: Remove testingMode from WebExtensionContext.
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 948644e21eefcb6fdb3703d087b67c5d39e8a0c3 https://github.com/WebKit/WebKit/commit/948644e21eefcb6fdb3703d087b67c5d39e8a0c3 Author: Timothy Hatcher Date: 2024-02-19 (Mon, 19 Feb 2024) Changed paths: M Source/WebKit/Shared/Extensions/WebExtensionContextParameters.h M Source/WebKit/Shared/Extensions/WebExtensionContextParameters.serialization.in M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionContext.mm M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionContextPrivate.h M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm M Source/WebKit/UIProcess/Extensions/WebExtensionContext.cpp M Source/WebKit/UIProcess/Extensions/WebExtensionContext.h M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPINamespaceCocoa.mm M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIPermissionsCocoa.mm M Source/WebKit/WebProcess/Extensions/Cocoa/WebExtensionContextProxyCocoa.mm M Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.cpp M Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.h M Tools/TestWebKitAPI/cocoa/WebExtensionUtilities.mm Log Message: --- Remove testingMode from WebExtensionContext. https://webkit.org/b/269735 rdar://problem/123254659 Reviewed by Brian Weinstein. testingMode was added to WebExtensionController, so it is no longer needed on WebExtensionContext. Removing it prevents the context and controller from mismathcing. * Source/WebKit/Shared/Extensions/WebExtensionContextParameters.h: * Source/WebKit/Shared/Extensions/WebExtensionContextParameters.serialization.in: * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionContext.mm: (-[_WKWebExtensionContext _inTestingMode]): Deleted. (-[_WKWebExtensionContext _setTestingMode:]): Deleted. * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionContextPrivate.h: * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm: (WebKit::WebExtensionContext::setTestingMode): Deleted. * Source/WebKit/UIProcess/Extensions/WebExtensionContext.cpp: (WebKit::WebExtensionContext::parameters const): (WebKit::WebExtensionContext::inTestingMode const): * Source/WebKit/UIProcess/Extensions/WebExtensionContext.h: (WebKit::WebExtensionContext::inTestingMode const): Deleted. * Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPINamespaceCocoa.mm: * Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIPermissionsCocoa.mm: * Source/WebKit/WebProcess/Extensions/Cocoa/WebExtensionContextProxyCocoa.mm: (WebKit::WebExtensionContextProxy::getOrCreate): * Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.cpp: (WebKit::WebExtensionContextProxy::inTestingMode const): * Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.h: * Tools/TestWebKitAPI/cocoa/WebExtensionUtilities.mm: (-[TestWebExtensionManager initForExtension:extensionControllerConfiguration:]): Canonical link: https://commits.webkit.org/275006@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
[webkit-changes] [WebKit/WebKit] 1e5e28: Use Expected for error reporting in Web Extensions...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 1e5e2883c8bda6ee86b1717947a226daed9f1437 https://github.com/WebKit/WebKit/commit/1e5e2883c8bda6ee86b1717947a226daed9f1437 Author: Timothy Hatcher Date: 2024-02-19 (Mon, 19 Feb 2024) Changed paths: M Source/WebKit/Scripts/webkit/messages.py M Source/WebKit/Shared/Extensions/WebExtensionConstants.h A Source/WebKit/Shared/Extensions/WebExtensionError.h M Source/WebKit/Shared/Extensions/WebExtensionFrameIdentifier.h M Source/WebKit/Shared/Extensions/WebExtensionUtilities.h M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIActionCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIAlarmsCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPICookiesCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIDeclarativeNetRequestCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIDevToolsInspectedWindow.mm M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIDevToolsPanels.mm M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIMenusCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIPermissionsCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIRuntimeCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIScriptingCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIStorageCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPITabsCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIWebNavigationCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIWindowsCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionDynamicScriptsCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionTabCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionWindowCocoa.mm M Source/WebKit/UIProcess/Extensions/WebExtensionContext.h M Source/WebKit/UIProcess/Extensions/WebExtensionContext.messages.in M Source/WebKit/UIProcess/Extensions/WebExtensionController.h M Source/WebKit/UIProcess/Extensions/WebExtensionController.messages.in M Source/WebKit/UIProcess/Extensions/WebExtensionDynamicScripts.h M Source/WebKit/UIProcess/Extensions/WebExtensionTab.h M Source/WebKit/UIProcess/Extensions/WebExtensionWindow.h M Source/WebKit/WebKit.xcodeproj/project.pbxproj M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIActionCocoa.mm M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIAlarmsCocoa.mm M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPICommandsCocoa.mm M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPICookiesCocoa.mm M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIDeclarativeNetRequestCocoa.mm M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIDevToolsExtensionPanelCocoa.mm M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIDevToolsInspectedWindowCocoa.mm M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIDevToolsPanelsCocoa.mm M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIExtensionCocoa.mm M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIMenusCocoa.mm M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIPermissionsCocoa.mm M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIRuntimeCocoa.mm M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIScriptingCocoa.mm M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIStorageAreaCocoa.mm M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPITabsCocoa.mm M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIWebNavigationCocoa.mm M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIWindowsCocoa.mm M Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIScripting.h M Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.h M Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.messages.in M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIWindows.mm Log Message: --- Use Expected for error reporting in Web Extensions completionHandlers. https://webkit.org/b/269681 rdar://123199880 Reviewed by Brian Weinstein. Instead of using std::optional for errors, and std::optional for the real result, wrap them together with Expected to be more efficient. Also use r-value references for these results, so the result is moved instead of copied when the completionHandler is called. Added two helper templates for toWebAPI that that return nil
[webkit-changes] [WebKit/WebKit] 601dbe: NEW TEST (274589@main): [ macOS ] TestWebKitAPI.WK...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 601dbe0a8712cfebad40ef68b02088cf271d4f65 https://github.com/WebKit/WebKit/commit/601dbe0a8712cfebad40ef68b02088cf271d4f65 Author: Timothy Hatcher Date: 2024-02-19 (Mon, 19 Feb 2024) Changed paths: M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIDevTools.mm Log Message: --- NEW TEST (274589@main): [ macOS ] TestWebKitAPI.WKWebExtensionAPIDevTools.CreatePanel is a consistent timeout https://webkit.org/b/269402 rdar://problem/122967271 Reviewed by Brian Weinstein. Fix a race condition between showing the panel, and the panel frame loading. The frame was not loading fast enough on the bots, and locally it would load slow about 20% of the time. * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIDevTools.mm: (TEST(WKWebExtensionAPIDevTools, CreatePanel)): Move test.yield() to the panel script, so it happens after the window.notifyHidden function is set. Canonical link: https://commits.webkit.org/274984@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
[webkit-changes] [WebKit/WebKit] b891aa: WKWebExtensionAPIScripting.InsertAndRemoveCSSWithF...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: b891aa9d845db409b56539f3862112348284c65b https://github.com/WebKit/WebKit/commit/b891aa9d845db409b56539f3862112348284c65b Author: Timothy Hatcher Date: 2024-02-19 (Mon, 19 Feb 2024) Changed paths: M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIScripting.mm M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPITabs.mm Log Message: --- WKWebExtensionAPIScripting.InsertAndRemoveCSSWithFrameIds is flaky. https://webkit.org/b/268387 rdar://problem/121934255 Reviewed by Brian Weinstein. Wait for the tabs to load before tryign ti insert CSS and evaluate script. * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIScripting.mm: (TEST(WKWebExtensionAPIScripting, InsertAndRemoveCSS)): Move work inside browser.tabs.onUpdate. (TEST(WKWebExtensionAPIScripting, InsertAndRemoveCSSWithFrameIds)): Ditto. * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPITabs.mm: (TEST(WKWebExtensionAPITabs, InsertAndRemoveCSSInMainFrame)): Move work inside browser.tabs.onUpdate. (TEST(WKWebExtensionAPITabs, InsertAndRemoveCSSInAllFrames)): Ditto. Canonical link: https://commits.webkit.org/274983@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
[webkit-changes] [WebKit/WebKit] 786fc3: Crash in WebExtensionContext::addListener when Web...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 786fc33388fb10648646e930125e2e1fa444a022 https://github.com/WebKit/WebKit/commit/786fc33388fb10648646e930125e2e1fa444a022 Author: Timothy Hatcher Date: 2024-02-16 (Fri, 16 Feb 2024) Changed paths: M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIEventCocoa.mm Log Message: --- Crash in WebExtensionContext::addListener when Web Extension does not have a background page. https://webkit.org/b/269543 rdar://123052586 Reviewed by David Kilzer. Make sure m_backgroundWebView is not nil before accessing _page->identifier(). * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIEventCocoa.mm: (WebKit::WebExtensionContext::addListener): (WebKit::WebExtensionContext::removeListener): Canonical link: https://commits.webkit.org/274834@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
[webkit-changes] [WebKit/WebKit] ec5b31: Add support for themeName and onThemeChanged for d...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: ec5b31644d06ea268cd38c3ffb6593fc1e91d47f https://github.com/WebKit/WebKit/commit/ec5b31644d06ea268cd38c3ffb6593fc1e91d47f Author: Timothy Hatcher Date: 2024-02-15 (Thu, 15 Feb 2024) Changed paths: M Source/WebKit/Scripts/webkit/messages.py M Source/WebKit/Shared/InspectorExtensionTypes.h M Source/WebKit/Shared/InspectorExtensionTypes.serialization.in M Source/WebKit/UIProcess/API/APIInspectorExtensionClient.h M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm M Source/WebKit/UIProcess/Extensions/WebExtensionContext.h M Source/WebKit/UIProcess/Inspector/WebInspectorUIExtensionControllerProxy.cpp M Source/WebKit/UIProcess/Inspector/WebInspectorUIExtensionControllerProxy.h M Source/WebKit/UIProcess/Inspector/WebInspectorUIProxy.cpp M Source/WebKit/UIProcess/Inspector/WebInspectorUIProxy.h M Source/WebKit/UIProcess/Inspector/WebInspectorUIProxy.messages.in M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIDevToolsPanelsCocoa.mm M Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIDevToolsPanels.h M Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.h M Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.messages.in M Source/WebKit/WebProcess/Inspector/WebInspectorUI.cpp M Source/WebKit/WebProcess/Inspector/WebInspectorUI.h M Source/WebKit/WebProcess/WebPage/WebPage.cpp M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIDevTools.mm Log Message: --- Add support for themeName and onThemeChanged for devtools Web Extensions. https://webkit.org/b/246485 rdar://problem/114823326 Reviewed by Brian Weinstein. * Source/WebKit/Scripts/webkit/messages.py: (types_that_cannot_be_forward_declared): (headers_for_type): * Source/WebKit/Shared/InspectorExtensionTypes.h: * Source/WebKit/Shared/InspectorExtensionTypes.serialization.in: * Source/WebKit/UIProcess/API/APIInspectorExtensionClient.h: (API::InspectorExtensionClient::effectiveAppearanceDidChange): * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm: (WebKit::WebExtensionContext::loadInspectorBackgroundPage): Hook up the new client function. (WebKit::WebExtensionContext::inspectorEffectiveAppearanceDidChange): Added. * Source/WebKit/UIProcess/Extensions/WebExtensionContext.h: * Source/WebKit/UIProcess/Inspector/WebInspectorUIExtensionControllerProxy.cpp: (WebKit::WebInspectorUIExtensionControllerProxy::effectiveAppearanceDidChange): Added. * Source/WebKit/UIProcess/Inspector/WebInspectorUIExtensionControllerProxy.h: * Source/WebKit/UIProcess/Inspector/WebInspectorUIProxy.cpp: (WebKit::WebInspectorUIProxy::effectiveAppearanceDidChange): Added. * Source/WebKit/UIProcess/Inspector/WebInspectorUIProxy.h: * Source/WebKit/UIProcess/Inspector/WebInspectorUIProxy.messages.in: * Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIDevToolsPanelsCocoa.mm: (WebKit::WebExtensionAPIDevToolsPanels::themeName): Implemneted. (WebKit::WebExtensionContextProxy::dispatchDevToolsPanelsThemeChangedEvent): * Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIDevToolsPanels.h: (WebKit::WebExtensionAPIDevToolsPanels::theme const): Added. (WebKit::WebExtensionAPIDevToolsPanels::setTheme): Added. * Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.h: * Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.messages.in: * Source/WebKit/WebProcess/Inspector/WebInspectorUI.cpp: (WebKit::WebInspectorUI::effectiveAppearanceDidChange): Added. * Source/WebKit/WebProcess/Inspector/WebInspectorUI.h: * Source/WebKit/WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::effectiveAppearanceDidChange): Added. * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIDevTools.mm: (TEST(WKWebExtensionAPIDevTools, PanelsThemeName)): Added. Canonical link: https://commits.webkit.org/274703@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 7900c6: Exception in WebKit::WebExtensionTab::processes().
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 7900c68de6a3191a59ddff3938d08e3334189187 https://github.com/WebKit/WebKit/commit/7900c68de6a3191a59ddff3938d08e3334189187 Author: Timothy Hatcher Date: 2024-02-14 (Wed, 14 Feb 2024) Changed paths: M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionTabCocoa.mm Log Message: --- Exception in WebKit::WebExtensionTab::processes(). https://webkit.org/b/269409 rdar://122974809 Reviewed by Jeff Miller and Brian Weinstein. When mainWebView() is nil, we need to be careful. Use [NSArray arrayWithObjects:] instead of [NSArray arrayWithObject:] since that will make a zero item array if the web view is nil, instead of throwing an exception. * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionTabCocoa.mm: (WebKit::WebExtensionTab::processes const): Canonical link: https://commits.webkit.org/274669@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 886077: Add support for the devtools.network.onNavigated W...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 886077e077a496a6e398df52a4b7915d8cd68f76 https://github.com/WebKit/WebKit/commit/886077e077a496a6e398df52a4b7915d8cd68f76 Author: Timothy Hatcher Date: 2024-02-14 (Wed, 14 Feb 2024) Changed paths: M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm M Source/WebKit/UIProcess/Extensions/WebExtensionContext.h M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIDevToolsNetworkCocoa.mm M Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.h M Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.messages.in M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIDevTools.mm Log Message: --- Add support for the devtools.network.onNavigated Web Extension event. https://webkit.org/b/246485 rdar://problem/114823326 Reviewed by BJ Burg. * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm: (WebKit::WebExtensionContext::loadInspectorBackgroundPage): Connect client to inspectedPageDidNavigate. (WebKit::WebExtensionContext::inspectedPageDidNavigate): Added. * Source/WebKit/UIProcess/Extensions/WebExtensionContext.h: * Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIDevToolsNetworkCocoa.mm: (WebKit::WebExtensionContextProxy::dispatchDevToolsNetworkNavigatedEvent): * Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.h: * Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.messages.in: * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIDevTools.mm: (TEST(WKWebExtensionAPIDevTools, NetworkNavigatedEvent)): Added. Canonical link: https://commits.webkit.org/274649@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] bbc211: Add support for the devtools.inspectedWindow Web E...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: bbc211140430e58da5821a8e87d1f6736a984929 https://github.com/WebKit/WebKit/commit/bbc211140430e58da5821a8e87d1f6736a984929 Author: Timothy Hatcher Date: 2024-02-14 (Wed, 14 Feb 2024) Changed paths: M Source/WebInspectorUI/UserInterface/Controllers/WebInspectorExtensionController.js M Source/WebKit/Shared/InspectorExtensionTypes.h M Source/WebKit/UIProcess/API/APIInspectorExtension.cpp M Source/WebKit/UIProcess/API/APIInspectorExtension.h M Source/WebKit/UIProcess/API/Cocoa/_WKInspectorExtension.mm A Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIDevToolsInspectedWindow.mm M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIDevToolsPanels.mm M Source/WebKit/UIProcess/Extensions/WebExtensionContext.h M Source/WebKit/UIProcess/Extensions/WebExtensionContext.messages.in M Source/WebKit/UIProcess/Inspector/WebInspectorUIExtensionControllerProxy.cpp M Source/WebKit/UIProcess/Inspector/WebInspectorUIExtensionControllerProxy.h M Source/WebKit/WebKit.xcodeproj/project.pbxproj M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIDevToolsInspectedWindowCocoa.mm M Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIDevToolsInspectedWindow.h M Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPIDevToolsInspectedWindow.idl M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIDevTools.mm Log Message: --- Add support for the devtools.inspectedWindow Web Extension APIs. https://webkit.org/bug/246485 rdar://problem/114823326 Reviewed by Jeff Miller and BJ Burg. Adds support for the eval() and reload() functions on devtools.inspectedWindow. This is primarily implemented by API::InspectorExtension and Inspector code. This implementation of eval() properly returns the result as an array of two values, the result and error, like Chrome and Firefox. The Safari implementation just returned the result and never provided the exception details. Also removed the plumbing for reload to return a evaluation result. This was never the case, and the Web Extension spec does not provide a result. * Source/WebInspectorUI/UserInterface/Controllers/WebInspectorExtensionController.js: (WI.WebInspectorExtensionController.prototype.async evaluateScriptForExtension): (WI.WebInspectorExtensionController.prototype.reloadForExtension): Don't use an eval result since reload does not provide a result to Web Extensions. * Source/WebKit/Shared/InspectorExtensionTypes.h: Use Ref instead of RefPtr. * Source/WebKit/UIProcess/API/APIInspectorExtension.cpp: (API::InspectorExtension::reloadIgnoringCache): * Source/WebKit/UIProcess/API/APIInspectorExtension.h: * Source/WebKit/UIProcess/API/Cocoa/_WKInspectorExtension.mm: (-[_WKInspectorExtension reloadIgnoringCache:userAgent:injectedScript:completionHandler:]): * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIDevToolsInspectedWindow.mm: Added. (WebKit::WebExtensionContext::devToolsInspectedWindowEval): (WebKit::WebExtensionContext::devToolsInspectedWindowReload): * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIDevToolsPanels.mm: (WebKit::WebExtensionContext::devToolsPanelsCreate): * Source/WebKit/UIProcess/Extensions/WebExtensionContext.h: * Source/WebKit/UIProcess/Extensions/WebExtensionContext.messages.in: * Source/WebKit/UIProcess/Inspector/WebInspectorUIExtensionControllerProxy.cpp: (WebKit::WebInspectorUIExtensionControllerProxy::evaluateScriptForExtension): (WebKit::WebInspectorUIExtensionControllerProxy::reloadForExtension): (WebKit::WebInspectorUIExtensionControllerProxy::evaluateScriptInExtensionTab): * Source/WebKit/UIProcess/Inspector/WebInspectorUIExtensionControllerProxy.h: * Source/WebKit/WebKit.xcodeproj/project.pbxproj: * Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIDevToolsInspectedWindowCocoa.mm: (WebKit::WebExtensionAPIDevToolsInspectedWindow::eval): (WebKit::WebExtensionAPIDevToolsInspectedWindow::reload): * Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIDevToolsInspectedWindow.h: * Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPIDevToolsInspectedWindow.idl: * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIDevTools.mm: (TEST(WKWebExtensionAPIDevTools, InspectedWindowEval)): Added. (TEST(WKWebExtensionAPIDevTools, InspectedWindowReload)): Added. (TEST(WKWebExtensionAPIDevTools, InspectedWindowReloadIgnoringCache)): Added. Canonical link: https://commits.webkit.org/274645@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 553a55: Add support for creating panels in the Web Extensi...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 553a55c37606ca6bce4630ca93b72e9354d1a25d https://github.com/WebKit/WebKit/commit/553a55c37606ca6bce4630ca93b72e9354d1a25d Author: Timothy Hatcher Date: 2024-02-13 (Tue, 13 Feb 2024) Changed paths: M Source/WebKit/Scripts/webkit/messages.py A Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIDevToolsPanels.mm M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionURLSchemeHandlerCocoa.mm M Source/WebKit/UIProcess/Extensions/WebExtensionContext.h M Source/WebKit/UIProcess/Extensions/WebExtensionContext.messages.in M Source/WebKit/UIProcess/Extensions/WebExtensionController.h M Source/WebKit/UIProcess/Inspector/mac/WKInspectorViewController.mm M Source/WebKit/UIProcess/WebPageProxy.h M Source/WebKit/UIProcess/WebProcessPool.cpp M Source/WebKit/WebKit.xcodeproj/project.pbxproj M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIDevToolsCocoa.mm M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIDevToolsExtensionPanelCocoa.mm M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIDevToolsInspectedWindowCocoa.mm M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIDevToolsNetworkCocoa.mm M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIDevToolsPanelsCocoa.mm M Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIDevToolsPanels.h M Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPIDevToolsPanels.idl M Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.h M Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.messages.in M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIDevTools.mm Log Message: --- Add support for creating panels in the Web Extension devtools background page. https://webkit.org/b/246485 rdar://problem/114823326 Reviewed by Jeff Miller. This adds support for browser.devtools.panels.create() and firing the onShown and onHidden events on those panels when they are shown / hidden in Web Inspector. This requires loading the devtools background page in the same process as Web Inspector, since we need to pass the window object of the new panel's frame to the onShown listeners. Added a new test that exercise this end-to-end. We also have WKInspectorExtension API tests that test this separate from the Web Extensions tests. * Source/WebKit/Scripts/webkit/messages.py: (types_that_cannot_be_forward_declared): (headers_for_type): * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIDevToolsPanels.mm: Added. (WebKit::WebExtensionContext::devToolsPanelsCreate): * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm: (WebKit::WebExtensionContext::webViewConfiguration): (WebKit::WebExtensionContext::openInspectors const): (WebKit::WebExtensionContext::inspectorExtension const): (WebKit::WebExtensionContext::inspector const): (WebKit::WebExtensionContext::processes const): (WebKit::WebExtensionContext::loadInspectorBackgroundPage): (WebKit::WebExtensionContext::unloadInspectorBackgroundPage): (WebKit::WebExtensionContext::didShowInspectorExtensionPanel const): (WebKit::WebExtensionContext::didHideInspectorExtensionPanel const): * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionURLSchemeHandlerCocoa.mm: (WebKit::WebExtensionURLSchemeHandler::platformStartTask): * Source/WebKit/UIProcess/Extensions/WebExtensionContext.h: (WebKit::WebExtensionContext::sendToProcesses const): (WebKit::WebExtensionContext::sendToProcessesForEvent const): (WebKit::WebExtensionContext::sendToProcessesForEvents const): (WebKit::WebExtensionContext::sendToContentScriptProcessesForEvent const): (WebKit::WebExtensionContext::sendToProcesses): Deleted. (WebKit::WebExtensionContext::sendToProcessesForEvent): Deleted. (WebKit::WebExtensionContext::sendToProcessesForEvents): Deleted. (WebKit::WebExtensionContext::sendToContentScriptProcessesForEvent): Deleted. * Source/WebKit/UIProcess/Extensions/WebExtensionContext.messages.in: * Source/WebKit/UIProcess/Extensions/WebExtensionController.h: * Source/WebKit/UIProcess/Inspector/mac/WKInspectorViewController.mm: (-[WKInspectorViewController webViewConfiguration]): * Source/WebKit/UIProcess/WebPageProxy.h: * Source/WebKit/UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::processForNavigationInternal): * Source/WebKit/WebKit.xcodeproj/project.pbxproj: * Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIDevToolsCocoa.mm: * Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIDevToolsExtensionPanelCocoa.mm: (WebKit::WebExtensionAPIDevToolsExtensionPanel::onHidden): (WebKit::WebExtensionContextProxy::dispatchDevToolsExtensionPanelShownEvent): (WebKit::WebExtensionContextProxy::dispatchDevToolsExtensionPanelHiddenEvent): * Source/WebKit/WebProcess
[webkit-changes] [WebKit/WebKit] 0b519b: Add support for loading and connecting the Web Ext...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 0b519b877420bd9b534b8ca4b8341952ab698208 https://github.com/WebKit/WebKit/commit/0b519b877420bd9b534b8ca4b8341952ab698208 Author: Timothy Hatcher Date: 2024-02-12 (Mon, 12 Feb 2024) Changed paths: M Source/WebKit/Shared/Extensions/WebExtensionConstants.h M Source/WebKit/Shared/Extensions/WebExtensionContextParameters.h M Source/WebKit/Shared/Extensions/WebExtensionContextParameters.serialization.in M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionControllerCocoa.mm M Source/WebKit/UIProcess/Extensions/WebExtension.h M Source/WebKit/UIProcess/Extensions/WebExtensionContext.cpp M Source/WebKit/UIProcess/Extensions/WebExtensionContext.h M Source/WebKit/UIProcess/Extensions/WebExtensionController.h M Source/WebKit/UIProcess/Inspector/WebInspectorUIProxy.cpp M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIDevToolsInspectedWindowCocoa.mm M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPINamespaceCocoa.mm M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIStorageAreaCocoa.mm M Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIDevToolsInspectedWindow.h M Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIStorageArea.h M Source/WebKit/WebProcess/Extensions/Cocoa/WebExtensionContextProxyCocoa.mm M Source/WebKit/WebProcess/Extensions/Cocoa/WebExtensionControllerProxyCocoa.mm M Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPIDevToolsInspectedWindow.idl M Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.cpp 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/WKWebExtensionAPIDevTools.mm M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebViewSuspendAllMediaPlayback.mm M Tools/TestWebKitAPI/cocoa/WebExtensionUtilities.mm Log Message: --- Add support for loading and connecting the Web Extension devtools background page. https://webkit.org/b/246485 rdar://problem/114823326 Reviewed by Jeff Miller. Hook up loading the devtools_page when Web Inspector opens, or an extension is loaded when Inspectors are already open during load, or private browsing is toggled. * Source/WebKit/Shared/Extensions/WebExtensionContextParameters.h: * Source/WebKit/Shared/Extensions/WebExtensionContextParameters.serialization.in: * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionCocoa.mm: (WebKit::WebExtension::hasInspectorBackgroundPage): (WebKit::WebExtension::inspectorBackgroundPagePath): (WebKit::WebExtension::populateInspectorPropertiesIfNeeded): * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm: (WebKit::WebExtensionContext::load): (WebKit::WebExtensionContext::setHasAccessInPrivateBrowsing): (WebKit::WebExtensionContext::inspectorBackgroundPageIdentifiers const): (WebKit::WebExtensionContext::decidePolicyForNavigationAction): (WebKit::WebExtensionContext::webViewWebContentProcessDidTerminate): (WebKit::WebExtensionContext::inspectorBackgroundPageURL const): (WebKit::WebExtensionContext::openInspectors const): (WebKit::WebExtensionContext::loadedInspectors const): (WebKit::WebExtensionContext::isInspectorBackgroundPage const): (WebKit::WebExtensionContext::loadInspectorBackgroundPagesDuringLoad): (WebKit::WebExtensionContext::unloadInspectorBackgroundPages): (WebKit::WebExtensionContext::loadInspectorBackgroundPagesForPrivateBrowsing): (WebKit::WebExtensionContext::unloadInspectorBackgroundPagesForPrivateBrowsing): (WebKit::WebExtensionContext::loadInspectorBackgroundPage): (WebKit::WebExtensionContext::unloadInspectorBackgroundPage): (WebKit::WebExtensionContext::inspectorWillOpen): (WebKit::WebExtensionContext::inspectorWillClose): * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionControllerCocoa.mm: (WebKit::WebExtensionController::load): (WebKit::WebExtensionController::unload): (WebKit::WebExtensionController::unloadAll): (WebKit::WebExtensionController::addProcessPool): (WebKit::WebExtensionController::removeProcessPool): (WebKit::WebExtensionController::addUserContentController): (WebKit::WebExtensionController::removeUserContentController): (WebKit::WebExtensionController::removeWebsiteDataStore): (WebKit::WebExtensionController::cookiesDidChange): (WebKit::WebExtensionController::extensionContext const): (WebKit::WebExtensionController::extensions const): (WebKit::WebExtensionController::addItemsToContextMenu): (WebKit::WebExtensionController::didStartProvisionalLoadForFrame): (WebKit::WebExtensionController::didCommitLoadForFrame): (WebKit
[webkit-changes] [WebKit/WebKit] 123998: WebExtensionMatchPattern::registerCustomURLScheme(...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 1239980cbe3eba753efc1b6dfe92b61e80cd99fc https://github.com/WebKit/WebKit/commit/1239980cbe3eba753efc1b6dfe92b61e80cd99fc Author: Timothy Hatcher Date: 2024-02-12 (Mon, 12 Feb 2024) Changed paths: M Source/WebKit/Shared/WebProcessCreationParameters.h M Source/WebKit/Shared/WebProcessCreationParameters.serialization.in M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionMatchPatternCocoa.mm M Source/WebKit/UIProcess/WebProcessPool.cpp M Source/WebKit/WebProcess/WebProcess.cpp M Source/WebKit/WebProcess/WebProcess.h M Source/WebKit/WebProcess/WebProcess.messages.in M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIPermissions.mm Log Message: --- WebExtensionMatchPattern::registerCustomURLScheme() needs to register in the web processes. https://webkit.org/b/261292 rdar://problem/115136557 Reviewed by Jeff Miller. * Source/WebKit/Shared/WebProcessCreationParameters.h: * Source/WebKit/Shared/WebProcessCreationParameters.serialization.in: * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionMatchPatternCocoa.mm: (WebKit::WebExtensionMatchPattern::registerCustomURLScheme): Tell the processes. * Source/WebKit/UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::initializeNewWebProcess): Add registered extension schemes. * Source/WebKit/WebProcess/WebProcess.cpp: (WebKit::WebProcess::initializeWebProcess): Call WebExtensionMatchPattern::registerCustomURLScheme. (WebKit::WebProcess::registerURLSchemeAsWebExtension const): Added. * Source/WebKit/WebProcess/WebProcess.h: * Source/WebKit/WebProcess/WebProcess.messages.in: * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIPermissions.mm: (TEST(WKWebExtensionAPIPermissions, ValidMatchPatterns)): Added. Canonical link: https://commits.webkit.org/274467@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] e02fde: Remove some unsupported devTools Web Extensions APIs.
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: e02fdeb1b6033c97951d2a1f8ccf88c5a63d7c38 https://github.com/WebKit/WebKit/commit/e02fdeb1b6033c97951d2a1f8ccf88c5a63d7c38 Author: Timothy Hatcher Date: 2024-02-12 (Mon, 12 Feb 2024) Changed paths: M Source/WebKit/DerivedSources-input.xcfilelist M Source/WebKit/DerivedSources-output.xcfilelist M Source/WebKit/DerivedSources.make M Source/WebKit/WebKit.xcodeproj/project.pbxproj R Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIDevToolsElementsPanelCocoa.mm R Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIDevToolsExtensionSidebarPaneCocoa.mm M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIDevToolsInspectedWindowCocoa.mm M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIDevToolsNetworkCocoa.mm M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIDevToolsPanelsCocoa.mm R Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIDevToolsElementsPanel.h R Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIDevToolsExtensionSidebarPane.h M Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIDevToolsNetwork.h M Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIDevToolsPanels.h R Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPIDevToolsElementsPanel.idl R Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPIDevToolsExtensionSidebarPane.idl M Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPIDevToolsInspectedWindow.idl M Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPIDevToolsNetwork.idl M Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPIDevToolsPanels.idl Log Message: --- Remove some unsupported devTools Web Extensions APIs. https://webkit.org/b/269200 rdar://problem/122806817 Reviewed by Jeff Miller. These were just empty stubs in Safari, we should not ship them in WebKit. * Source/WebKit/DerivedSources-input.xcfilelist: * Source/WebKit/DerivedSources-output.xcfilelist: * Source/WebKit/DerivedSources.make: * Source/WebKit/WebKit.xcodeproj/project.pbxproj: * Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIDevToolsElementsPanelCocoa.mm: Removed. * Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIDevToolsExtensionSidebarPaneCocoa.mm: Removed. * Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIDevToolsInspectedWindowCocoa.mm: (WebKit::WebExtensionAPIDevToolsInspectedWindow::isPropertyAllowed): Deleted. (WebKit::WebExtensionAPIDevToolsInspectedWindow::getResources): Deleted. (WebKit::WebExtensionAPIDevToolsInspectedWindow::onResourceAdded): Deleted. * Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIDevToolsNetworkCocoa.mm: (WebKit::WebExtensionAPIDevToolsNetwork::getHAR): Deleted. (WebKit::WebExtensionAPIDevToolsNetwork::onRequestFinished): Deleted. * Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIDevToolsPanelsCocoa.mm: (WebKit::WebExtensionAPIDevToolsPanels::elements): Deleted. * Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIDevToolsElementsPanel.h: Removed. * Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIDevToolsExtensionSidebarPane.h: Removed. * Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIDevToolsNetwork.h: * Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIDevToolsPanels.h: * Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPIDevToolsElementsPanel.idl: Removed. * Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPIDevToolsExtensionSidebarPane.idl: Removed. * Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPIDevToolsInspectedWindow.idl: * Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPIDevToolsNetwork.idl: * Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPIDevToolsPanels.idl: Canonical link: https://commits.webkit.org/274466@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] a3e842: Messages sent to a Web Extension port should not b...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: a3e8427b4707498583267f2f0b9f42f82ec0f30a https://github.com/WebKit/WebKit/commit/a3e8427b4707498583267f2f0b9f42f82ec0f30a Author: Timothy Hatcher Date: 2024-02-09 (Fri, 09 Feb 2024) Changed paths: M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIPortCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionMessagePortCocoa.mm M Source/WebKit/UIProcess/Extensions/WebExtensionContext.h M Source/WebKit/UIProcess/Extensions/WebExtensionContext.messages.in M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIPortCocoa.mm M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIRuntimeCocoa.mm M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPITabsCocoa.mm M Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIPort.h M Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.h M Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.messages.in M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIRuntime.mm M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPITabs.mm Log Message: --- Messages sent to a Web Extension port should not be delivered to itself. https://webkit.org/b/269049 rdar://122583434 Reviewed by Brian Weinstein. Track the port's owning page proxy identifier, to identify the sending page, and then prevent ports from delivering a message to its own page. This was causing a loop because the ports array in the same extension web process had both the sender and receiver port. Also make sure the port's sender is null when it is the port returned by calling tabs.connect() or runtime.connect(). * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIPortCocoa.mm: (WebKit::WebExtensionContext::portPostMessage): (WebKit::WebExtensionContext::fireQueuedPortMessageEventsIfNeeded): (WebKit::WebExtensionContext::sendQueuedNativePortMessagesIfNeeded): * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionMessagePortCocoa.mm: (WebKit::WebExtensionMessagePort::sendMessage): * Source/WebKit/UIProcess/Extensions/WebExtensionContext.h: * Source/WebKit/UIProcess/Extensions/WebExtensionContext.messages.in: * Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIPortCocoa.mm: (WebKit::WebExtensionAPIPort::postMessage): (WebKit::WebExtensionContextProxy::dispatchPortMessageEvent): (WebKit::WebExtensionContextProxy::dispatchPortDisconnectEvent): * Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIRuntimeCocoa.mm: (WebKit::WebExtensionAPIRuntime::sendMessage): (WebKit::WebExtensionAPIRuntime::connect): (WebKit::WebExtensionAPIRuntime::connectNative): (WebKit::WebExtensionContextProxy::internalDispatchRuntimeConnectEvent): * Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPITabsCocoa.mm: (WebKit::WebExtensionAPITabs::sendMessage): (WebKit::WebExtensionAPITabs::connect): * Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIPort.h: (WebKit::WebExtensionAPIPort::owningPageProxyIdentifier const): Added. (WebKit::WebExtensionAPIPort::senderParameters const): Added. (WebKit::WebExtensionAPIPort::WebExtensionAPIPort): * Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.h: * Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.messages.in: * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIRuntime.mm: (TEST(WKWebExtensionAPIRuntime, ConnectFromPopup)): Added. * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPITabs.mm: (TestWebKitAPI::TEST): Added sender checks. Canonical link: https://commits.webkit.org/274403@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 12dd6b: [Cocoa] EME with encrypted MPEG2-TS fails to begin...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 12dd6bd4eb2d527989f4502c701e01f5121e8d75 https://github.com/WebKit/WebKit/commit/12dd6bd4eb2d527989f4502c701e01f5121e8d75 Author: Timothy Hatcher Date: 2024-02-09 (Fri, 09 Feb 2024) Changed paths: A LayoutTests/http/tests/media/fairplay/content/elementary-stream-video-keyid-1.ts A LayoutTests/http/tests/media/fairplay/fps-mse-unmuxed-mpts-expected.txt A LayoutTests/http/tests/media/fairplay/fps-mse-unmuxed-mpts.html M LayoutTests/platform/mac/TestExpectations M Source/WTF/wtf/PlatformHave.h M Source/WebCore/platform/graphics/avfoundation/CDMFairPlayStreaming.cpp M Source/WebCore/platform/graphics/avfoundation/CDMFairPlayStreaming.h M Source/WebCore/platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.mm M Source/WebCore/platform/graphics/avfoundation/objc/MediaSampleAVFObjC.mm M Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm Log Message: --- [Cocoa] EME with encrypted MPEG2-TS fails to begin playback https://bugs.webkit.org/show_bug.cgi?id=268948 rdar://122030589 Reviewed by Andy Estes. When encrypted samples are parsed from containers by AVStreamDataParser, those samples have their associated initialization data attached to their CMFormatDescription as extensions. WebKit then reads those initialization data from the format description to determine the keyID needed to decrypt that key. For MPEG2-TS files, the initialization data is stored in a different key/value pair. Explicitly support this initData type as 'mpts'. * LayoutTests/http/tests/media/fairplay/content/elementary-stream-video-keyid-1.ts: Added. * LayoutTests/http/tests/media/fairplay/fps-mse-unmuxed-mpts.html: Added. * Source/WebCore/platform/graphics/avfoundation/CDMFairPlayStreaming.cpp: (WebCore::CDMPrivateFairPlayStreaming::extractKeyIDsSinf): (WebCore::CDMPrivateFairPlayStreaming::mptsName): (WebCore::CDMPrivateFairPlayStreaming::extractKeyIDsMpts): (WebCore::CDMPrivateFairPlayStreaming::sanitizeMpts): (WebCore::CDMPrivateFairPlayStreaming::mptsKeyIDs): (WebCore::validInitDataTypes): (WebCore::CDMFactory::platformRegisterFactories): (WebCore::CDMPrivateFairPlayStreaming::supportsInitData const): * Source/WebCore/platform/graphics/avfoundation/CDMFairPlayStreaming.h: * Source/WebCore/platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.mm: (WebCore::keyIDsForRequest): (WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::requestLicense): * Source/WebCore/platform/graphics/avfoundation/objc/MediaSampleAVFObjC.mm: (WebCore::MediaSampleAVFObjC::commonInit): * Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm: (WebCore::SourceBufferPrivateAVFObjC::didProvideContentKeyRequestInitializationDataForTrackID): Canonical link: https://commits.webkit.org/274351@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] bc58f4: Crash when closing DashLane extension popup.
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: bc58f493f50e6787944a0044979ea5a58b223b9a https://github.com/WebKit/WebKit/commit/bc58f493f50e6787944a0044979ea5a58b223b9a Author: Timothy Hatcher Date: 2024-02-08 (Thu, 08 Feb 2024) Changed paths: M Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIPort.h Log Message: --- Crash when closing DashLane extension popup. https://webkit.org/b/269041 rdar://problem/122599318 Reviewed by Alex Christensen. * Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIPort.h: (WebKit::WebExtensionAPIPort::~WebExtensionAPIPort): Set m_disconnected to true to prevent the disconnect event from firing. We can't call into JavaScript during garbage collection. Canonical link: https://commits.webkit.org/274344@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes