[webkit-changes] [WebKit/WebKit] c1a5c6: Implement CookieStoreManager for the CookieStore API
Rupin Mittal
noreply at github.com
Sun Aug 18 23:26:59 PDT 2024
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: c1a5c61946b9f75678be873346223d40f774f814
https://github.com/WebKit/WebKit/commit/c1a5c61946b9f75678be873346223d40f774f814
Author: Rupin Mittal <rupin at apple.com>
Date: 2024-08-18 (Sun, 18 Aug 2024)
Changed paths:
M LayoutTests/imported/w3c/web-platform-tests/cookie-store/cookieStoreManager_getSubscriptions_empty.https.any-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/cookie-store/cookieStoreManager_getSubscriptions_empty.https.any.serviceworker-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/cookie-store/cookieStoreManager_getSubscriptions_multiple.https.any-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/cookie-store/cookieStoreManager_getSubscriptions_multiple.https.any.serviceworker-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/cookie-store/cookieStoreManager_getSubscriptions_single.https.any-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/cookie-store/cookieStoreManager_getSubscriptions_single.https.any.serviceworker-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/cookie-store/cookieStore_subscribe_arguments.https.any-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/cookie-store/cookieStore_subscribe_arguments.https.any.serviceworker-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/cookie-store/cookieStore_subscriptions_empty.https.window-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/cookie-store/serviceworker_cookieStore_subscriptions_reset.https-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/cookie-store/serviceworker_cookiechange_eventhandler_mismatched_subscription.https.any.serviceworker-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/cookie-store/serviceworker_cookiechange_eventhandler_multiple_subscriptions.https.any.serviceworker-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/cookie-store/serviceworker_cookiechange_eventhandler_overlapping_subscriptions.https.any.serviceworker-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/cookie-store/serviceworker_cookiechange_eventhandler_single_subscription.https.any.serviceworker-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/cookie-store/serviceworker_oncookiechange_eventhandler_single_subscription.https.any.serviceworker-expected.txt
M Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml
M Source/WebCore/Headers.cmake
A Source/WebCore/Modules/cookie-store/CookieChangeSubscription.h
M Source/WebCore/Modules/cookie-store/CookieStoreGetOptions.idl
M Source/WebCore/Modules/cookie-store/CookieStoreManager.cpp
M Source/WebCore/Modules/cookie-store/CookieStoreManager.h
M Source/WebCore/Modules/cookie-store/CookieStoreManager.idl
M Source/WebCore/WebCore.xcodeproj/project.pbxproj
M Source/WebCore/workers/service/SWClientConnection.h
M Source/WebCore/workers/service/ServiceWorkerContainer.cpp
M Source/WebCore/workers/service/ServiceWorkerContainer.h
M Source/WebCore/workers/service/ServiceWorkerRegistration.cpp
M Source/WebCore/workers/service/ServiceWorkerRegistration.h
M Source/WebCore/workers/service/WorkerSWClientConnection.cpp
M Source/WebCore/workers/service/WorkerSWClientConnection.h
M Source/WebCore/workers/service/server/SWServerRegistration.cpp
M Source/WebCore/workers/service/server/SWServerRegistration.h
M Source/WebKit/NetworkProcess/ServiceWorker/WebSWServerConnection.cpp
M Source/WebKit/NetworkProcess/ServiceWorker/WebSWServerConnection.h
M Source/WebKit/NetworkProcess/ServiceWorker/WebSWServerConnection.messages.in
M Source/WebKit/Scripts/webkit/messages.py
M Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in
M Source/WebKit/WebProcess/Storage/WebSWClientConnection.cpp
M Source/WebKit/WebProcess/Storage/WebSWClientConnection.h
Log Message:
-----------
Implement CookieStoreManager for the CookieStore API
rdar://133575968
https://bugs.webkit.org/show_bug.cgi?id=277892
Reviewed by Chris Dumez.
This patch implements the CookieStoreManager which allows
Service Workers to subscribe to events on cookie changes
(https://wicg.github.io/cookie-store/#CookieStoreManager).
We implement the subscribe, unsubscribe, and getSubscriptions
functions. The list of subscriptions is stored in the Service
Worker Registration on the Network Process side. The WebProcess
sends IPC messages to alter or get a copy of the list.
This patch causes some WPT Layout Tests that were previously
failing to now pass. Some of the tests whose results changed
to timeout are timing out because they are testing the
functionality of the ExtendableCookieChangeEvent for Service
Workers which has not yet been implemented. Since we currently
don't plan on firing cookie change events to the Service Workers,
there's no plan to implement ExtendableCookieChangeEvent yet.
* LayoutTests/imported/w3c/web-platform-tests/cookie-store/cookieStoreManager_getSubscriptions_empty.https.any-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/cookie-store/cookieStoreManager_getSubscriptions_empty.https.any.serviceworker-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/cookie-store/cookieStoreManager_getSubscriptions_multiple.https.any-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/cookie-store/cookieStoreManager_getSubscriptions_multiple.https.any.serviceworker-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/cookie-store/cookieStoreManager_getSubscriptions_single.https.any-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/cookie-store/cookieStoreManager_getSubscriptions_single.https.any.serviceworker-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/cookie-store/cookieStore_subscribe_arguments.https.any-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/cookie-store/cookieStore_subscribe_arguments.https.any.serviceworker-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/cookie-store/cookieStore_subscriptions_empty.https.window-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/cookie-store/serviceworker_cookieStore_subscriptions_reset.https-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/cookie-store/serviceworker_cookiechange_eventhandler_mismatched_subscription.https.any.serviceworker-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/cookie-store/serviceworker_cookiechange_eventhandler_multiple_subscriptions.https.any.serviceworker-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/cookie-store/serviceworker_cookiechange_eventhandler_overlapping_subscriptions.https.any.serviceworker-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/cookie-store/serviceworker_cookiechange_eventhandler_single_subscription.https.any.serviceworker-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/cookie-store/serviceworker_oncookiechange_eventhandler_single_subscription.https.any.serviceworker-expected.txt:
* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:
* Source/WebCore/Headers.cmake:
* Source/WebCore/Modules/cookie-store/CookieChangeSubscription.h: Added.
(WebCore::CookieChangeSubscription::CookieChangeSubscription):
(WebCore::CookieChangeSubscription::isHashTableDeletedValue const):
(WTF::CookieChangeSubscriptionHash::hash):
(WTF::CookieChangeSubscriptionHash::equal):
* Source/WebCore/Modules/cookie-store/CookieStoreGetOptions.idl:
* Source/WebCore/Modules/cookie-store/CookieStoreManager.cpp:
(WebCore::CookieStoreManager::create):
(WebCore::CookieStoreManager::CookieStoreManager):
(WebCore::CookieStoreManager::subscribe):
(WebCore::CookieStoreManager::unsubscribe):
(WebCore::CookieStoreManager::getSubscriptions):
* Source/WebCore/Modules/cookie-store/CookieStoreManager.h:
* Source/WebCore/Modules/cookie-store/CookieStoreManager.idl:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/workers/service/SWClientConnection.h:
* Source/WebCore/workers/service/ServiceWorkerContainer.cpp:
(WebCore::ServiceWorkerContainer::ensureProtectedSWClientConnection):
(WebCore::ServiceWorkerContainer::addCookieChangeSubscriptions):
(WebCore::ServiceWorkerContainer::removeCookieChangeSubscriptions):
(WebCore::ServiceWorkerContainer::cookieChangeSubscriptions):
* Source/WebCore/workers/service/ServiceWorkerContainer.h:
* Source/WebCore/workers/service/ServiceWorkerRegistration.cpp:
(WebCore::ServiceWorkerRegistration::cookies):
(WebCore::ServiceWorkerRegistration::addCookieChangeSubscriptions):
(WebCore::ServiceWorkerRegistration::removeCookieChangeSubscriptions):
(WebCore::ServiceWorkerRegistration::cookieChangeSubscriptions):
(WebCore::ServiceWorkerRegistration::protectedContainer const):
* Source/WebCore/workers/service/ServiceWorkerRegistration.h:
* Source/WebCore/workers/service/WorkerSWClientConnection.cpp:
(WebCore::WorkerSWClientConnection::~WorkerSWClientConnection):
(WebCore::WorkerSWClientConnection::matchRegistration):
(WebCore::WorkerSWClientConnection::getRegistrations):
(WebCore::WorkerSWClientConnection::whenRegistrationReady):
(WebCore::WorkerSWClientConnection::scheduleUnregisterJobInServer):
(WebCore::WorkerSWClientConnection::subscribeToPushService):
(WebCore::WorkerSWClientConnection::unsubscribeFromPushService):
(WebCore::WorkerSWClientConnection::getPushSubscription):
(WebCore::WorkerSWClientConnection::getPushPermissionState):
(WebCore::WorkerSWClientConnection::getNotifications):
(WebCore::WorkerSWClientConnection::enableNavigationPreload):
(WebCore::WorkerSWClientConnection::disableNavigationPreload):
(WebCore::WorkerSWClientConnection::setNavigationPreloadHeaderValue):
(WebCore::WorkerSWClientConnection::getNavigationPreloadState):
(WebCore::WorkerSWClientConnection::startBackgroundFetch):
(WebCore::WorkerSWClientConnection::backgroundFetchInformation):
(WebCore::WorkerSWClientConnection::backgroundFetchIdentifiers):
(WebCore::WorkerSWClientConnection::abortBackgroundFetch):
(WebCore::WorkerSWClientConnection::matchBackgroundFetch):
(WebCore::WorkerSWClientConnection::retrieveRecordResponse):
(WebCore::WorkerSWClientConnection::retrieveRecordResponseBody):
(WebCore::WorkerSWClientConnection::addCookieChangeSubscriptions):
(WebCore::WorkerSWClientConnection::removeCookieChangeSubscriptions):
(WebCore::WorkerSWClientConnection::cookieChangeSubscriptions):
* Source/WebCore/workers/service/WorkerSWClientConnection.h:
* Source/WebCore/workers/service/server/SWServerRegistration.cpp:
(WebCore::SWServerRegistration::addCookieChangeSubscriptions):
(WebCore::SWServerRegistration::removeCookieChangeSubscriptions):
(WebCore::SWServerRegistration::cookieChangeSubscriptions const):
* Source/WebCore/workers/service/server/SWServerRegistration.h:
* Source/WebKit/NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:
(WebKit::WebSWServerConnection::sharedPreferencesForWebProcess const):
(WebKit::WebSWServerConnection::addCookieChangeSubscriptions):
(WebKit::WebSWServerConnection::removeCookieChangeSubscriptions):
(WebKit::WebSWServerConnection::cookieChangeSubscriptions):
* Source/WebKit/NetworkProcess/ServiceWorker/WebSWServerConnection.h:
* Source/WebKit/NetworkProcess/ServiceWorker/WebSWServerConnection.messages.in:
* Source/WebKit/Scripts/webkit/messages.py:
(headers_for_type):
* Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in:
* Source/WebKit/WebProcess/Storage/WebSWClientConnection.cpp:
(WebKit::WebSWClientConnection::addCookieChangeSubscriptions):
(WebKit::WebSWClientConnection::removeCookieChangeSubscriptions):
(WebKit::WebSWClientConnection::cookieChangeSubscriptions):
* Source/WebKit/WebProcess/Storage/WebSWClientConnection.h:
Canonical link: https://commits.webkit.org/282417@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