[webkit-changes] [WebKit/WebKit] 1656d3: Declarative Web Push - Expose window.navigator.pus...

Brady Eidson noreply at github.com
Tue Sep 19 14:36:49 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 1656d3b67f45abd302bda420d9c233f323cd7fbd
      https://github.com/WebKit/WebKit/commit/1656d3b67f45abd302bda420d9c233f323cd7fbd
  Author: Brady Eidson <beidson at apple.com>
  Date:   2023-09-19 (Tue, 19 Sep 2023)

  Changed paths:
    M Source/WebCore/CMakeLists.txt
    M Source/WebCore/DerivedSources-input.xcfilelist
    M Source/WebCore/DerivedSources-output.xcfilelist
    M Source/WebCore/DerivedSources.make
    M Source/WebCore/Headers.cmake
    A Source/WebCore/Modules/push-api/NavigatorPush.idl
    A Source/WebCore/Modules/push-api/PushStrategy.h
    M Source/WebCore/WebCore.xcodeproj/project.pbxproj
    M Source/WebCore/page/Navigator.cpp
    M Source/WebCore/page/Navigator.h
    M Source/WebCore/page/Navigator.idl
    M Source/WebCore/platform/PlatformStrategies.h
    M Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp
    M Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h
    M Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.messages.in
    M Source/WebKit/NetworkProcess/NetworkProcessPlatformStrategies.cpp
    M Source/WebKit/NetworkProcess/NetworkProcessPlatformStrategies.h
    M Source/WebKit/WebProcess/WebCoreSupport/WebPlatformStrategies.cpp
    M Source/WebKit/WebProcess/WebCoreSupport/WebPlatformStrategies.h
    M Source/WebKitLegacy/mac/WebCoreSupport/WebPlatformStrategies.h
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm

  Log Message:
  -----------
  Declarative Web Push - Expose window.navigator.pushManager
https://bugs.webkit.org/show_bug.cgi?id=261751
rdar://115730929

Reviewed by Tim Horton.

Since a goal of Declarative Web Push is to work without service workers, you must be able to (un)subscribe
from a window browsing context, no ServiceWorkerRegistration needed.

To that end, expose a PushManager on window.navigator.

The push subscriptions from a window whose scope matches a service worker can be seen from that service worker.
And vice versa.

* Source/WebCore/DerivedSources-input.xcfilelist:
* Source/WebCore/DerivedSources-output.xcfilelist:
* Source/WebCore/DerivedSources.make:
* Source/WebCore/Modules/push-api/NavigatorPush.idl: Copied from Source/WebKit/NetworkProcess/NetworkProcessPlatformStrategies.h.
* Source/WebCore/Modules/push-api/PushStrategy.h: Copied from Source/WebKit/NetworkProcess/NetworkProcessPlatformStrategies.h.
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/page/Navigator.cpp:
(WebCore::Navigator::Navigator):
(WebCore::Navigator::pushManager):
(WebCore::toScope):
(WebCore::Navigator::subscribeToPushService):
(WebCore::Navigator::unsubscribeFromPushService):
(WebCore::Navigator::getPushSubscription):
(WebCore::Navigator::getPushPermissionState):
* Source/WebCore/page/Navigator.h:
* Source/WebCore/page/Navigator.idl:
* Source/WebCore/platform/PlatformStrategies.h:
(WebCore::PlatformStrategies::pushStrategy):
* Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::navigatorSubscribeToPushService):
(WebKit::NetworkConnectionToWebProcess::navigatorUnsubscribeFromPushService):
(WebKit::NetworkConnectionToWebProcess::navigatorGetPushSubscription):
(WebKit::NetworkConnectionToWebProcess::navigatorGetPushPermissionState):
* Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h:
* Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.messages.in:
* Source/WebKit/NetworkProcess/NetworkProcessPlatformStrategies.cpp:
(WebKit::NetworkProcessPlatformStrategies::createPushStrategy):
* Source/WebKit/NetworkProcess/NetworkProcessPlatformStrategies.h:
* Source/WebKit/WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::createPushStrategy):
(WebKit::WebPlatformStrategies::navigatorSubscribeToPushService):
(WebKit::WebPlatformStrategies::navigatorUnsubscribeFromPushService):
(WebKit::WebPlatformStrategies::navigatorGetPushSubscription):
(WebKit::WebPlatformStrategies::navigatorGetPushPermissionState):
* Source/WebKit/WebProcess/WebCoreSupport/WebPlatformStrategies.h:
* Source/WebKitLegacy/mac/WebCoreSupport/WebPlatformStrategies.h:
* Tools/TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm:
(TestWebKitAPI::log):
(TestWebKitAPI::function):
(TestWebKitAPI::subscribe):
(TestWebKitAPI::unsubscribe):
(TestWebKitAPI::getPushSubscription):
(TestWebKitAPI::then): Deleted.
(TestWebKitAPI::catch): Deleted.
(TestWebKitAPI::disableShowNotifications): Deleted.

Canonical link: https://commits.webkit.org/268147@main




More information about the webkit-changes mailing list