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

Reply via email to