Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: b8e051cd9c342531744a43a8b59fb973bd9e0e6d
      
https://github.com/WebKit/WebKit/commit/b8e051cd9c342531744a43a8b59fb973bd9e0e6d
  Author: Timothy Hatcher <[email protected]>
  Date:   2024-11-08 (Fri, 08 Nov 2024)

  Changed paths:
    M Source/WebKit/Platform/cocoa/CocoaHelpers.h
    M Source/WebKit/UIProcess/API/Cocoa/WKWebExtension.mm
    M Source/WebKit/UIProcess/API/Cocoa/WKWebExtensionAction.mm
    M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionSidebar.mm
    M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionCommandCocoa.mm
    M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionMenuItemCocoa.mm
    M Source/WebKit/UIProcess/Extensions/WebExtension.cpp
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtension.mm
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIAction.mm

  Log Message:
  -----------
  REGRESSION (62bde3c): Crash under -[WKWebExtensionAction iconForSize:].
https://webkit.org/b/282789
rdar://139467453

Reviewed by Brian Weinstein and Abrar Rahman Protyasha.

Change WebExtension::actionIcon() to return icon() when no action is
provided in the manifest.

Also use the toCocoaImage() helper everywhere, to avoid manual nil checks.
The nil check was missing in WKWebExtensionAction and _WKWebExtensionSidebar.

* Source/WebKit/Platform/cocoa/CocoaHelpers.h:
(WebKit::toCocoaImage): Added.
* Source/WebKit/UIProcess/API/Cocoa/WKWebExtension.mm:
(-[WKWebExtension iconForSize:]): Use toCocoaImage().
(-[WKWebExtension actionIconForSize:]): Ditto.
* Source/WebKit/UIProcess/API/Cocoa/WKWebExtensionAction.mm:
(-[WKWebExtensionAction iconForSize:]): Use toCocoaImage().
* Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionSidebar.mm:
(-[_WKWebExtensionSidebar iconForSize:]): Use toCocoaImage().
* Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionCommandCocoa.mm:
(WebKit::WebExtensionCommand::platformMenuItem const): Use toCocoaImage().
* Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionMenuItemCocoa.mm:
(WebKit::toCocoaImage): Deleted.
* Source/WebKit/UIProcess/Extensions/WebExtension.cpp:
(WebKit::WebExtension::actionIcon): Return icon() instead of nullptr.
* Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtension.mm:
(TestWebKitAPI::TEST(WKWebExtension, SingleIconVariant)): Added actionIcon test.
(TestWebKitAPI::TEST(WKWebExtension, AnySizeIconVariant)): Ditto.
(TestWebKitAPI::TEST(WKWebExtension, NoIconVariants)): Ditto.
(TestWebKitAPI::TEST(WKWebExtension, IconsAndIconVariantsSpecified)): Ditto.
(TestWebKitAPI::TEST(WKWebExtension, ActionIconSingleVariant)): Added icon test.
(TestWebKitAPI::TEST(WKWebExtension, ActionIconAnySizeVariant)): Ditto.
(TestWebKitAPI::TEST(WKWebExtension, ActionNoIconVariants)): Ditto.
(TestWebKitAPI::TEST(WKWebExtension, ActionIconsAndIconVariantsSpecified)): 
Ditto.
* Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIAction.mm:
(TestWebKitAPI::TEST(WKWebExtensionAPIAction, SetIconWithBadPath)): Added.
(TestWebKitAPI::TEST(WKWebExtensionAPIAction, SetIconWithBadImageData)): Added.
(TestWebKitAPI::TEST(WKWebExtensionAPIAction, SetIconWithBadDataURL)): Added.

Canonical link: https://commits.webkit.org/286356@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to