[webkit-changes] [WebKit/WebKit] f606e5: WebExtensionContext::permissionsRequest needs to p...
Timothy Hatcher
noreply at github.com
Fri Mar 8 15:59:00 PST 2024
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: f606e5e964d5dcd860e4a6625db8092664bbc05c
https://github.com/WebKit/WebKit/commit/f606e5e964d5dcd860e4a6625db8092664bbc05c
Author: Timothy Hatcher <timothy at apple.com>
Date: 2024-03-08 (Fri, 08 Mar 2024)
Changed paths:
M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIPermissionsCocoa.mm
M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIRuntimeCocoa.mm
M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIPermissions.mm
Log Message:
-----------
WebExtensionContext::permissionsRequest needs to properly capture completionHandler.
https://webkit.org/b/269678
rdar://problem/123197187
Reviewed by Brian Weinstein.
Rework permissions.request() to only call the delegate if needed, never with an empty set.
Also the completionHandler only worked if it was called immediately, but we need to support
it being called later. To support all this, a CallbackAggregator was needed and it now waits
for both delegates to be called (in either order) since they both retain the aggregator.
This also changes the handling to better match the permissions.request() API, by only
allowing granting all or none, not some. Added a test for this.
Also updated the tests to not use nil, since the block parameters are not nullable.
* Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIPermissionsCocoa.mm:
(WebKit::WebExtensionContext::permissionsRequest):
* Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIRuntimeCocoa.mm:
(WebKit::WebExtensionContext::runtimeSendNativeMessage):
* Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIPermissions.mm:
(TEST(WKWebExtensionAPIPermissions, Basics)): Renamed.
(TEST(WKWebExtensionAPIPermissions, AcceptPermissionsRequest)): Updated.
(TEST(WKWebExtensionAPIPermissions, DenyPermissionsRequest)): Updated.
(TEST(WKWebExtensionAPIPermissions, AcceptPermissionsDenyMatchPatternsRequest)): Updated.
(TEST(WKWebExtensionAPIPermissions, RequestPermissionsOnly)): Updated.
(TEST(WKWebExtensionAPIPermissions, RequestMatchPatternsOnly)): Updated.
(TEST(WKWebExtensionAPIPermissions, GrantOnlySomePermissions)): Added.
(TEST(WKWebExtensionAPIPermissions, GrantOnlySomeMatchPatterns)): Added.
Canonical link: https://commits.webkit.org/275859@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