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