[webkit-changes] [WebKit/WebKit] e5b61a: Add automatic handling of Declarative Web Push mes...
Brady Eidson
noreply at github.com
Mon Sep 18 16:48:21 PDT 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: e5b61a361d97c315d2a0ba17ae6d323798ba03d1
https://github.com/WebKit/WebKit/commit/e5b61a361d97c315d2a0ba17ae6d323798ba03d1
Author: Brady Eidson <beidson at apple.com>
Date: 2023-09-18 (Mon, 18 Sep 2023)
Changed paths:
M Source/WebCore/Modules/notifications/Notification.cpp
M Source/WebCore/Modules/notifications/NotificationData.cpp
M Source/WebCore/Modules/notifications/NotificationData.h
M Source/WebCore/Modules/notifications/NotificationDataCocoa.mm
M Source/WebKit/NetworkProcess/NetworkSessionCreationParameters.cpp
M Source/WebKit/NetworkProcess/NetworkSessionCreationParameters.h
M Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in
A Source/WebKit/Shared/WebPushMessage.cpp
M Source/WebKit/Shared/WebPushMessage.h
M Source/WebKit/Sources.txt
M Source/WebKit/UIProcess/API/APINotificationProvider.h
M Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm
M Source/WebKit/UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h
M Source/WebKit/UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm
M Source/WebKit/UIProcess/API/glib/WebKitNotificationProvider.cpp
M Source/WebKit/UIProcess/Notifications/ServiceWorkerNotificationHandler.cpp
M Source/WebKit/UIProcess/Notifications/WebNotification.cpp
M Source/WebKit/UIProcess/Notifications/WebNotification.h
M Source/WebKit/UIProcess/Notifications/WebNotificationManagerProxy.cpp
M Source/WebKit/UIProcess/Notifications/WebNotificationManagerProxy.h
M Source/WebKit/UIProcess/Notifications/WebNotificationProvider.cpp
M Source/WebKit/UIProcess/Notifications/WebNotificationProvider.h
M Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp
M Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h
M Source/WebKit/UIProcess/WebsiteData/WebsiteDataStoreClient.h
M Source/WebKit/UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp
M Source/WebKit/UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h
M Source/WebKit/WebKit.xcodeproj/project.pbxproj
M Tools/MiniBrowser/mac/AppDelegate.m
M Tools/TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm
Log Message:
-----------
Add automatic handling of Declarative Web Push messages in the UIProcess
https://bugs.webkit.org/show_bug.cgi?id=261694
rdar://115675105
Reviewed by Andy Estes and Chris Dumez.
The goal of Declarative Web Push is to handle the push message automatically.
Eventually we'll be able to do so without even requiring the UIProcess to launch.
But for now, we can do so inside the UIProcess bypassing any JavaScript.
This patch implements that logic, and tests that both the declarative notification
was shown and that the declarative app badge was set.
* Source/WebCore/Modules/notifications/Notification.cpp:
(WebCore::Notification::data const):
* Source/WebCore/Modules/notifications/NotificationData.cpp:
(WebCore::NotificationData::isolatedCopy const):
(WebCore::NotificationData::isolatedCopy):
* Source/WebCore/Modules/notifications/NotificationData.h:
* Source/WebCore/Modules/notifications/NotificationDataCocoa.mm:
(WebCore::NotificationData::fromDictionary):
(WebCore::NotificationData::dictionaryRepresentation const):
* Source/WebKit/NetworkProcess/NetworkSessionCreationParameters.cpp:
(WebKit::NetworkSessionCreationParameters::encode const):
(WebKit::NetworkSessionCreationParameters::decode):
* Source/WebKit/NetworkProcess/NetworkSessionCreationParameters.h:
* Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in:
* Source/WebKit/Shared/WebPushMessage.cpp: Added.
(WebKit::WebPushMessage::notificationPayloadToCoreData const):
* Source/WebKit/Shared/WebPushMessage.h:
* Source/WebKit/Sources.txt:
* Source/WebKit/UIProcess/API/APINotificationProvider.h:
(API::NotificationProvider::show):
* Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
(-[WKWebsiteDataStore _processPushMessage:completionHandler:]):
* Source/WebKit/UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h:
* Source/WebKit/UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm:
(-[_WKWebsiteDataStoreConfiguration declarativeWebPushEnabled]):
(-[_WKWebsiteDataStoreConfiguration setDeclarativeWebPushEnabled:]):
* Source/WebKit/UIProcess/Notifications/ServiceWorkerNotificationHandler.cpp:
(WebKit::ServiceWorkerNotificationHandler::showNotification):
* Source/WebKit/UIProcess/Notifications/WebNotification.cpp:
(WebKit::WebNotification::WebNotification):
* Source/WebKit/UIProcess/Notifications/WebNotification.h:
(WebKit::WebNotification::createNonPersistent):
(WebKit::WebNotification::createPersistent):
* Source/WebKit/UIProcess/Notifications/WebNotificationManagerProxy.cpp:
(WebKit::WebNotificationManagerProxy::showPersistent):
(WebKit::WebNotificationManagerProxy::showImpl):
* Source/WebKit/UIProcess/Notifications/WebNotificationManagerProxy.h:
* Source/WebKit/UIProcess/Notifications/WebNotificationProvider.cpp:
(WebKit::WebNotificationProvider::show):
* Source/WebKit/UIProcess/Notifications/WebNotificationProvider.h:
* Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::parameters):
(WebKit::WebsiteDataStore::showPersistentNotification):
(WebKit::WebsiteDataStore::processPushMessage):
(WebKit::WebsiteDataStore::showServiceWorkerNotification): Deleted.
* Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h:
* Source/WebKit/UIProcess/WebsiteData/WebsiteDataStoreClient.h:
* Source/WebKit/UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp:
(WebKit::WebsiteDataStoreConfiguration::copy const):
* Source/WebKit/UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h:
(WebKit::WebsiteDataStoreConfiguration::declarativeWebPushEnabled const):
(WebKit::WebsiteDataStoreConfiguration::setDeclarativeWebPushEnabled):
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:
* Tools/MiniBrowser/mac/AppDelegate.m:
(enabledForFeature):
(-[BrowserAppDelegate persistentDataStore]):
(-[BrowserAppDelegate defaultConfiguration]):
* Tools/TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm:
(-[PushNotificationDelegate websiteDataStore:showNotification:]):
(-[PushNotificationDelegate websiteDataStore:workerOrigin:updatedAppBadge:]):
(-[PushNotificationDelegate websiteDataStore:showNotification:]):
(-[NotificationPermissionDelegate _webView:requestNotificationPermissionForSecurityOrigin:decisionHandler:]): Deleted.
(-[NotificationPermissionDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]): Deleted.
Canonical link: https://commits.webkit.org/268101@main
More information about the webkit-changes
mailing list