Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: e5b61a361d97c315d2a0ba17ae6d323798ba03d1
https://github.com/WebKit/WebKit/commit/e5b61a361d97c315d2a0ba17ae6d323798ba03d1
Author: Brady Eidson <[email protected]>
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
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes