[webkit-changes] [WebKit/WebKit] 0f1498: Improve sidebarAction API test coverage.
Ariel Young
noreply at github.com
Tue Aug 20 16:31:03 PDT 2024
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 0f149866988c4425bb777f4747bf9273a5a2aa5e
https://github.com/WebKit/WebKit/commit/0f149866988c4425bb777f4747bf9273a5a2aa5e
Author: Ari Young <ari_young at apple.com>
Date: 2024-08-20 (Tue, 20 Aug 2024)
Changed paths:
M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPISidebarCocoa.mm
M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm
M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionSidebarCocoa.mm
M Source/WebKit/UIProcess/Extensions/WebExtensionSidebar.h
M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPISidebarActionCocoa.mm
M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPISidebar.mm
Log Message:
-----------
Improve sidebarAction API test coverage.
https://webkit.org/b/278395
rdar://134355062
Reviewed by Timothy Hatcher.
This PR improves test coverage for the sidebarAction JavaScript
extensions API, especially as pertaining to the semantics of the API
methods relating to the panel URL and panel title. It also adds several
drive-by fixes for bugs I found while writing these tests.
* Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPISidebarCocoa.mm:
(WebKit::WebExtensionContext::sidebarSetTitle): Actually set title on
sidebar object in this method
* Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm:
(WebKit::WebExtensionContext::getSidebar): Return nullopt rather than
default sidebar when no sidebar is found.
* Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionSidebarCocoa.mm:
(WebKit::getDefaultSidebarTitleFromExtension): Default to extension
display name when no title is found in manifest
(WebKit::WebExtensionSidebar::extensionContext const): Switch to WeakPtr
for holding a reference to the current extension context
(WebKit::WebExtensionSidebar::parent const): Add nil check before we
attempt to get the sidebar for *(tab->window()), use extensionContext()
for context validity check rather than m_context
(WebKit::WebExtensionSidebar::setTitle): When setting the title to
std::nullopt on the default sidebar, retrieve manifest-default display
name instead.
(WebKit::WebExtensionSidebar::setSidebarPath): When setting the path to
std::nullopt on the default sidebar, retrieve manifest-default sidebar
path instead.
* Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPISidebarActionCocoa.mm:
(WebKit::parseDetailsStringFromKey): Return String variant in happy case
(was mistakenly returning SidebarError instead).
(WebKit::WebExtensionAPISidebarAction::setPanel): Set panelPath argument
in message to panel path rather than std::nullopt.
* Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPISidebar.mm:
(TestWebKitAPI::WKWebExtensionAPISidebar::getManagerFor): Add helper
method to set up TestWebExtensionManager.
(TestWebKitAPI::TEST_F): Add assorted tests exercising the title and
panel URL semantics of the sidebarAction API, including setting,
modifying, retrieving, and clearing these "properties."
* Source/WebKit/UIProcess/Extensions/WebExtensionSidebar.h: Switch to
WeakPtr for holding a reference to the current WebExtensionContext,
rather than WeakRef, rename m_context to m_extensionContext
Canonical link: https://commits.webkit.org/282533@main
To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications
More information about the webkit-changes
mailing list