[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