Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 7f0adb9a948d4da14ee28010d3da9428de203961
https://github.com/WebKit/WebKit/commit/7f0adb9a948d4da14ee28010d3da9428de203961
Author: Ben Nham <[email protected]>
Date: 2024-08-11 (Sun, 11 Aug 2024)
Changed paths:
M Source/WebKit/webpushd/WebPushDaemon.mm
M Source/WebKit/webpushd/_WKMockUserNotificationCenter.mm
Log Message:
-----------
Fix thread safety issues in WebPushDaemon
https://bugs.webkit.org/show_bug.cgi?id=277866
rdar://133553571
Reviewed by Brady Eidson.
UNUserNotificationCenter calls its completion handler on background threads,
but WebPushDaemon is
expecting them to run on the main thread. Add main thread dispatches where
necessary. Change the
mock version of the class to also call back on background threads and add an
assert to catch these
issues in the future.
* Source/WebKit/webpushd/WebPushDaemon.mm:
(WebPushD::WebPushDaemon::connectionEventHandler):
(WebPushD::WebPushDaemon::getNotifications):
(WebPushD::WebPushDaemon::getPushPermissionState):
(WebPushD::WebPushDaemon::requestPushPermission):
(WebPushD::WebPushDaemon::setAppBadge):
* Source/WebKit/webpushd/_WKMockUserNotificationCenter.mm:
(-[_WKMockUserNotificationCenter _internalInitWithBundleIdentifier:]):
(-[_WKMockUserNotificationCenter
addNotificationRequest:withCompletionHandler:]):
(-[_WKMockUserNotificationCenter
getDeliveredNotificationsWithCompletionHandler:]):
(-[_WKMockUserNotificationCenter
getNotificationSettingsWithCompletionHandler:]):
(-[_WKMockUserNotificationCenter
requestAuthorizationWithOptions:completionHandler:]):
(-[_WKMockUserNotificationCenter notificationSettings]):
Canonical link: https://commits.webkit.org/282108@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