[webkit-changes] [WebKit/WebKit] c48c05: Add getPendingPushMessage IPC to webpushd
bnham
noreply at github.com
Mon Jul 8 18:20:36 PDT 2024
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: c48c059497e4001943f243e8046eeae28aea8cbc
https://github.com/WebKit/WebKit/commit/c48c059497e4001943f243e8046eeae28aea8cbc
Author: Ben Nham <nham at apple.com>
Date: 2024-07-08 (Mon, 08 Jul 2024)
Changed paths:
M Source/WebKit/Shared/WebPushDaemonConstants.h
M Source/WebKit/webpushd/PushClientConnection.h
M Source/WebKit/webpushd/PushClientConnection.messages.in
M Source/WebKit/webpushd/PushClientConnection.mm
M Source/WebKit/webpushd/WebPushDaemon.h
M Source/WebKit/webpushd/WebPushDaemon.mm
M Source/WebKit/webpushd/WebPushDaemonMain.mm
M Tools/TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm
Log Message:
-----------
Add getPendingPushMessage IPC to webpushd
https://bugs.webkit.org/show_bug.cgi?id=276282
rdar://131225000
Reviewed by Brady Eidson.
Currently clients fetch push messages via the getPendingPushMessages IPC, and we count on them to
call incrementSilentPushCount if the associated service worker doesn't call
ServiceWorkerRegistration.showNotification as part of handling the push event.
We'd like to eventually remove the incrementSilentPushCount IPC. Instead, this patch introduces a
new getPendingPushMessage IPC which also implicitly starts a 30 second timer waiting for the client
to call showNotification. If the timer expires, then we automatically increment the silent push
count for the push subscription in the daemon.
* Source/WebKit/Shared/WebPushDaemonConstants.h:
* Source/WebKit/webpushd/PushClientConnection.h:
* Source/WebKit/webpushd/PushClientConnection.messages.in:
* Source/WebKit/webpushd/PushClientConnection.mm:
(WebPushD::PushClientConnection::getPendingPushMessage):
(WebPushD::PushClientConnection::didShowNotificationForTesting):
* Source/WebKit/webpushd/WebPushDaemon.h:
(WebPushD::WebPushDaemon::setMachServiceName): Deleted.
* Source/WebKit/webpushd/WebPushDaemon.mm:
(WebPushD::WebPushDaemon::startMockPushService):
(WebPushD::WebPushDaemon::injectPushMessageForTesting):
(WebPushD::WebPushDaemon::handleIncomingPush):
(WebPushD::WebPushDaemon::notifyClientPushMessageIsAvailable):
(WebPushD::WebPushDaemon::silentPushTimeout const):
(WebPushD::WebPushDaemon::rescheduleSilentPushTimer):
(WebPushD::WebPushDaemon::silentPushTimerFired):
(WebPushD::WebPushDaemon::didShowNotificationImpl):
(WebPushD::WebPushDaemon::getPendingPushMessage):
(WebPushD::WebPushDaemon::getPendingPushMessages):
(WebPushD::WebPushDaemon::didShowNotificationForTesting):
* Source/WebKit/webpushd/WebPushDaemonMain.mm:
(WebKit::WebPushDaemonMain):
* Tools/TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm:
(TestWebKitAPI::defaultWebPushDaemonConfiguration):
(TestWebKitAPI::createAndConfigureConnectionToService):
(TestWebKitAPI::TEST(WebPushD, BasicCommunication)):
(TestWebKitAPI::sendConfigurationWithAuditToken): Deleted.
Canonical link: https://commits.webkit.org/280760@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