Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 9d9c4e42c34d0f8ae2db0bc6f2849371e101aa85
https://github.com/WebKit/WebKit/commit/9d9c4e42c34d0f8ae2db0bc6f2849371e101aa85
Author: Ari Young <[email protected]>
Date: 2026-07-02 (Thu, 02 Jul 2026)
Changed paths:
M
Source/WebKit/UIProcess/API/Cocoa/WKWebExtensionControllerDelegatePrivate.h
M
Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPITabsCocoa.mm
M Source/WebKit/UIProcess/Extensions/WebExtensionContext.h
M Source/WebKit/UIProcess/Extensions/WebExtensionContext.messages.in
M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPITabsCocoa.mm
M Source/WebKit/WebProcess/Extensions/API/WebExtensionAPITabs.h
M Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPITabs.idl
M Tools/TestWebKitAPI/Helpers/cocoa/TestWebExtensionsDelegate.h
M Tools/TestWebKitAPI/Helpers/cocoa/TestWebExtensionsDelegate.mm
M Tools/TestWebKitAPI/Tests/WebKit/WKWebView/WKWebExtensionAPITabs.mm
Log Message:
-----------
Support browser.tabs.move(...) WebExtension API
rdar://173603894
https://bugs.webkit.org/show_bug.cgi?id=318148
Reviewed by Timothy Hatcher.
This patch adds WebKit support for the `browser.tabs.move` WebExtension API. To
that end, add
`webExtensionController:moveTabs:toIndex:inWindow:forExtensionContext:completionHandler:`
delegate
method on WKWebExtensionControllerDelegate to perform the actual move. Tabs are
moved in per-window
batches. Per the API's documentation, if a window is specified then all listed
tabs are moved to
that window (in one delegate call). If no window is specified, tabs are moved
to that index in the
window where they already are (one delegate call per window).
Test: Tools/TestWebKitAPI/Tests/WebKit/WKWebView/WKWebExtensionAPITabs.mm
* Source/WebKit/UIProcess/API/Cocoa/WKWebExtensionControllerDelegatePrivate.h:
*
Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPITabsCocoa.mm:
(WebKit::WebExtensionContext::tabsMove):
* Source/WebKit/UIProcess/Extensions/WebExtensionContext.h:
* Source/WebKit/UIProcess/Extensions/WebExtensionContext.messages.in:
Drive-by: Fix indentation
* Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPITabsCocoa.mm:
(WebKit::parseTabIdentifiers):
(WebKit::WebExtensionAPITabs::move):
(WebKit::WebExtensionAPITabs::remove):
* Source/WebKit/WebProcess/Extensions/API/WebExtensionAPITabs.h:
* Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPITabs.idl:
* Tools/TestWebKitAPI/Helpers/cocoa/TestWebExtensionsDelegate.h:
* Tools/TestWebKitAPI/Helpers/cocoa/TestWebExtensionsDelegate.mm:
(-[TestWebExtensionsDelegate
_webExtensionController:moveTabs:toIndex:inWindow:forExtensionContext:completionHandler:]):
* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/WKWebExtensionAPITabs.mm:
(TestWebKitAPI::TEST(WKWebExtensionAPITabs, MoveSingleTabInSingleWindow)):
(TestWebKitAPI::TEST(WKWebExtensionAPITabs, MoveSingleTabToEndOfWindow)):
(TestWebKitAPI::TEST(WKWebExtensionAPITabs, MoveOverflowIndexClampsToEnd)):
(TestWebKitAPI::TEST(WKWebExtensionAPITabs, MoveToCurrentIndexReturnsTab)):
(TestWebKitAPI::TEST(WKWebExtensionAPITabs, MoveMultipleTabsReturnsArray)):
(TestWebKitAPI::TEST(WKWebExtensionAPITabs,
MoveWithoutWindowIdGroupsTabsByWindow)):
(TestWebKitAPI::TEST(WKWebExtensionAPITabs, MoveToAnotherWindow)):
(TestWebKitAPI::TEST(WKWebExtensionAPITabs, MoveToOrFromPopupWindowFails)):
(TestWebKitAPI::TEST(WKWebExtensionAPITabs,
MoveBetweenPrivateAndNonPrivateFails)):
(TestWebKitAPI::TEST(WKWebExtensionAPITabs, MoveDelegateErrorIsPropagated)):
(TestWebKitAPI::TEST(WKWebExtensionAPITabs,
MoveMultiWindowGroupErrorIsPropagated)):
(TestWebKitAPI::TEST(WKWebExtensionAPITabs, MovePrivateTabsAllowed)):
(TestWebKitAPI::TEST(WKWebExtensionAPITabs, MoveErrors)):
Canonical link: https://commits.webkit.org/316366@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications