Title: [267123] trunk
Revision
267123
Author
[email protected]
Date
2020-09-15 17:57:08 -0700 (Tue, 15 Sep 2020)

Log Message

Move local storage sync SPI from WebProcessPool to WebsiteDataStore
https://bugs.webkit.org/show_bug.cgi?id=216581

Patch by Alex Christensen <[email protected]> on 2020-09-15
Reviewed by Geoffrey Garen.

Source/WebKit:

This move is needed for https://bugs.webkit.org/show_bug.cgi?id=216041
We no longer need to sync the legacy private browsing storage because it is no longer used by WebKitTestRunner.  Thank goodness.

* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::clearLegacyPrivateBrowsingLocalStorage): Deleted.
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/NetworkProcess.messages.in:
* UIProcess/API/C/WKContext.cpp:
(WKContextSyncLocalStorage): Deleted.
(WKContextClearLegacyPrivateBrowsingLocalStorage): Deleted.
* UIProcess/API/C/WKContextPrivate.h:
* UIProcess/API/C/WKWebsiteDataStoreRef.cpp:
(WKWebsiteDataStoreSyncLocalStorage):
* UIProcess/API/C/WKWebsiteDataStoreRef.h:
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::syncLocalStorage): Deleted.
(WebKit::WebProcessPool::clearLegacyPrivateBrowsingLocalStorage): Deleted.
* UIProcess/WebProcessPool.h:
* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::syncLocalStorage):
* UIProcess/WebsiteData/WebsiteDataStore.h:

Tools:

* WebKitTestRunner/TestController.cpp:
(WTR::TestController::clearLocalStorage):
(WTR::TestController::syncLocalStorage):

Modified Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (267122 => 267123)


--- trunk/Source/WebKit/ChangeLog	2020-09-16 00:54:33 UTC (rev 267122)
+++ trunk/Source/WebKit/ChangeLog	2020-09-16 00:57:08 UTC (rev 267123)
@@ -1,5 +1,34 @@
 2020-09-15  Alex Christensen  <[email protected]>
 
+        Move local storage sync SPI from WebProcessPool to WebsiteDataStore
+        https://bugs.webkit.org/show_bug.cgi?id=216581
+
+        Reviewed by Geoffrey Garen.
+
+        This move is needed for https://bugs.webkit.org/show_bug.cgi?id=216041
+        We no longer need to sync the legacy private browsing storage because it is no longer used by WebKitTestRunner.  Thank goodness.
+
+        * NetworkProcess/NetworkProcess.cpp:
+        (WebKit::NetworkProcess::clearLegacyPrivateBrowsingLocalStorage): Deleted.
+        * NetworkProcess/NetworkProcess.h:
+        * NetworkProcess/NetworkProcess.messages.in:
+        * UIProcess/API/C/WKContext.cpp:
+        (WKContextSyncLocalStorage): Deleted.
+        (WKContextClearLegacyPrivateBrowsingLocalStorage): Deleted.
+        * UIProcess/API/C/WKContextPrivate.h:
+        * UIProcess/API/C/WKWebsiteDataStoreRef.cpp:
+        (WKWebsiteDataStoreSyncLocalStorage):
+        * UIProcess/API/C/WKWebsiteDataStoreRef.h:
+        * UIProcess/WebProcessPool.cpp:
+        (WebKit::WebProcessPool::syncLocalStorage): Deleted.
+        (WebKit::WebProcessPool::clearLegacyPrivateBrowsingLocalStorage): Deleted.
+        * UIProcess/WebProcessPool.h:
+        * UIProcess/WebsiteData/WebsiteDataStore.cpp:
+        (WebKit::WebsiteDataStore::syncLocalStorage):
+        * UIProcess/WebsiteData/WebsiteDataStore.h:
+
+2020-09-15  Alex Christensen  <[email protected]>
+
         Move service worker testing timeout setting from WebProcessPool to WebsiteDataStore
         https://bugs.webkit.org/show_bug.cgi?id=216578
 

Modified: trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp (267122 => 267123)


--- trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp	2020-09-16 00:54:33 UTC (rev 267122)
+++ trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp	2020-09-16 00:57:08 UTC (rev 267123)
@@ -2448,12 +2448,6 @@
     completionHandler();
 }
 
-void NetworkProcess::clearLegacyPrivateBrowsingLocalStorage()
-{
-    if (m_storageManagerSet->contains(PAL::SessionID::legacyPrivateSessionID()))
-        m_storageManagerSet->deleteLocalStorageModifiedSince(PAL::SessionID::legacyPrivateSessionID(), -WallTime::infinity(), []() { });
-}
-
 void NetworkProcess::resetQuota(PAL::SessionID sessionID, CompletionHandler<void()>&& completionHandler)
 {
     LockHolder locker(m_sessionStorageQuotaManagersLock);

Modified: trunk/Source/WebKit/NetworkProcess/NetworkProcess.h (267122 => 267123)


--- trunk/Source/WebKit/NetworkProcess/NetworkProcess.h	2020-09-16 00:54:33 UTC (rev 267122)
+++ trunk/Source/WebKit/NetworkProcess/NetworkProcess.h	2020-09-16 00:57:08 UTC (rev 267123)
@@ -301,7 +301,6 @@
 #endif
 
     void syncLocalStorage(CompletionHandler<void()>&&);
-    void clearLegacyPrivateBrowsingLocalStorage();
 
     void resetQuota(PAL::SessionID, CompletionHandler<void()>&&);
     void renameOriginInWebsiteData(PAL::SessionID, const URL&, const URL&, OptionSet<WebsiteDataType>, CompletionHandler<void()>&&);

Modified: trunk/Source/WebKit/NetworkProcess/NetworkProcess.messages.in (267122 => 267123)


--- trunk/Source/WebKit/NetworkProcess/NetworkProcess.messages.in	2020-09-16 00:54:33 UTC (rev 267122)
+++ trunk/Source/WebKit/NetworkProcess/NetworkProcess.messages.in	2020-09-16 00:57:08 UTC (rev 267123)
@@ -164,8 +164,7 @@
 
     SetCacheStorageParameters(PAL::SessionID sessionID, String cacheStorageDirectory, WebKit::SandboxExtension::Handle handle);
 
-    SyncLocalStorage() -> () Synchronous
-    ClearLegacyPrivateBrowsingLocalStorage()
+    SyncLocalStorage() -> () Async
 
     StoreAdClickAttribution(PAL::SessionID sessionID, WebCore::AdClickAttribution adClickAttribution)
     DumpAdClickAttribution(PAL::SessionID sessionID) -> (String adClickAttributionState) Async

Modified: trunk/Source/WebKit/UIProcess/API/C/WKContext.cpp (267122 => 267123)


--- trunk/Source/WebKit/UIProcess/API/C/WKContext.cpp	2020-09-16 00:54:33 UTC (rev 267122)
+++ trunk/Source/WebKit/UIProcess/API/C/WKContext.cpp	2020-09-16 00:57:08 UTC (rev 267123)
@@ -620,22 +620,6 @@
     WebKit::toImpl(contextRef)->clearCurrentModifierStateForTesting();
 }
 
-void WKContextSyncLocalStorage(WKContextRef contextRef, void* context, WKContextSyncLocalStorageCallback callback)
-{
-    WebKit::toImpl(contextRef)->syncLocalStorage([context, callback] {
-        if (callback)
-            callback(context);
-    });
-}
-
-void WKContextClearLegacyPrivateBrowsingLocalStorage(WKContextRef contextRef, void* context, WKContextClearLegacyPrivateBrowsingLocalStorageCallback callback)
-{
-    WebKit::toImpl(contextRef)->clearLegacyPrivateBrowsingLocalStorage([context, callback] {
-        if (callback)
-            callback(context);
-    });
-}
-
 void WKContextSetUseSeparateServiceWorkerProcess(WKContextRef contextRef, bool useSeparateServiceWorkerProcess)
 {
     WebKit::toImpl(contextRef)->setUseSeparateServiceWorkerProcess(useSeparateServiceWorkerProcess);

Modified: trunk/Source/WebKit/UIProcess/API/C/WKContextPrivate.h (267122 => 267123)


--- trunk/Source/WebKit/UIProcess/API/C/WKContextPrivate.h	2020-09-16 00:54:33 UTC (rev 267122)
+++ trunk/Source/WebKit/UIProcess/API/C/WKContextPrivate.h	2020-09-16 00:57:08 UTC (rev 267123)
@@ -104,12 +104,6 @@
 
 WK_EXPORT void WKContextClearCurrentModifierStateForTesting(WKContextRef context);
 
-typedef void (*WKContextSyncLocalStorageCallback)(void* functionContext);
-WK_EXPORT void WKContextSyncLocalStorage(WKContextRef contextRef, void* context, WKContextSyncLocalStorageCallback callback);
-
-typedef void (*WKContextClearLegacyPrivateBrowsingLocalStorageCallback)(void* functionContext);
-WK_EXPORT void WKContextClearLegacyPrivateBrowsingLocalStorage(WKContextRef contextRef, void* context, WKContextClearLegacyPrivateBrowsingLocalStorageCallback callback);
-
 WK_EXPORT void WKContextSetUseSeparateServiceWorkerProcess(WKContextRef context, bool forceServiceWorkerProcess);
 
 WK_EXPORT void WKContextSetPrimaryWebsiteDataStore(WKContextRef context, WKWebsiteDataStoreRef websiteDataStore);

Modified: trunk/Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreRef.cpp (267122 => 267123)


--- trunk/Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreRef.cpp	2020-09-16 00:54:33 UTC (rev 267122)
+++ trunk/Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreRef.cpp	2020-09-16 00:57:08 UTC (rev 267123)
@@ -137,6 +137,14 @@
     WebKit::toImpl(dataStoreRef)->setResourceLoadStatisticsDebugMode(enable);
 }
 
+void WKWebsiteDataStoreSyncLocalStorage(WKWebsiteDataStoreRef dataStore, void* context, WKWebsiteDataStoreSyncLocalStorageCallback callback)
+{
+    WebKit::toImpl(dataStore)->syncLocalStorage([context, callback] {
+        if (callback)
+            callback(context);
+    });
+}
+
 WKHTTPCookieStoreRef WKWebsiteDataStoreGetHTTPCookieStore(WKWebsiteDataStoreRef dataStoreRef)
 {
     return WebKit::toAPI(&WebKit::toImpl(dataStoreRef)->cookieStore());

Modified: trunk/Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreRef.h (267122 => 267123)


--- trunk/Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreRef.h	2020-09-16 00:54:33 UTC (rev 267122)
+++ trunk/Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreRef.h	2020-09-16 00:57:08 UTC (rev 267123)
@@ -190,6 +190,9 @@
 
 WK_EXPORT void WKWebsiteDataStoreReinitializeAppBoundDomains(WKWebsiteDataStoreRef dataStoreRef);
 
+typedef void (*WKWebsiteDataStoreSyncLocalStorageCallback)(void* functionContext);
+WK_EXPORT void WKWebsiteDataStoreSyncLocalStorage(WKWebsiteDataStoreRef dataStore, void* context, WKWebsiteDataStoreSyncLocalStorageCallback callback);
+
 typedef void (*WKWebsiteDataStoreUpdateBundleIdentifierInNetworkProcessFunction)(void* functionContext);
 WK_EXPORT void WKWebsiteDataStoreUpdateBundleIdentifierInNetworkProcess(WKWebsiteDataStoreRef dataStoreRef, WKStringRef bundleIdentifier, void* context, WKWebsiteDataStoreUpdateBundleIdentifierInNetworkProcessFunction completionHandler);
 

Modified: trunk/Source/WebKit/UIProcess/WebProcessPool.cpp (267122 => 267123)


--- trunk/Source/WebKit/UIProcess/WebProcessPool.cpp	2020-09-16 00:54:33 UTC (rev 267122)
+++ trunk/Source/WebKit/UIProcess/WebProcessPool.cpp	2020-09-16 00:57:08 UTC (rev 267123)
@@ -1815,19 +1815,6 @@
     ensureNetworkProcess().flushCookies(sessionID, WTFMove(completionHandler));
 }
 
-void WebProcessPool::syncLocalStorage(CompletionHandler<void()>&& completionHandler)
-{
-    sendSyncToNetworkingProcess(Messages::NetworkProcess::SyncLocalStorage(), Messages::NetworkProcess::SyncLocalStorage::Reply());
-    completionHandler();
-}
-
-void WebProcessPool::clearLegacyPrivateBrowsingLocalStorage(CompletionHandler<void()>&& completionHandler)
-{
-    if (m_networkProcess)
-        m_networkProcess->send(Messages::NetworkProcess::ClearLegacyPrivateBrowsingLocalStorage(), 0);
-    completionHandler();
-}
-
 void WebProcessPool::allowSpecificHTTPSCertificateForHost(const WebCertificateInfo* certificate, const String& host)
 {
     ensureNetworkProcess();

Modified: trunk/Source/WebKit/UIProcess/WebProcessPool.h (267122 => 267123)


--- trunk/Source/WebKit/UIProcess/WebProcessPool.h	2020-09-16 00:54:33 UTC (rev 267122)
+++ trunk/Source/WebKit/UIProcess/WebProcessPool.h	2020-09-16 00:57:08 UTC (rev 267123)
@@ -325,8 +325,6 @@
     void terminateServiceWorkers();
 
     void flushCookies(const PAL::SessionID&, CompletionHandler<void()>&&);
-    void syncLocalStorage(CompletionHandler<void()>&& callback);
-    void clearLegacyPrivateBrowsingLocalStorage(CompletionHandler<void()>&& callback);
 
     void setShouldMakeNextWebProcessLaunchFailForTesting(bool value) { m_shouldMakeNextWebProcessLaunchFailForTesting = value; }
     bool shouldMakeNextWebProcessLaunchFailForTesting() const { return m_shouldMakeNextWebProcessLaunchFailForTesting; }

Modified: trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp (267122 => 267123)


--- trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp	2020-09-16 00:54:33 UTC (rev 267122)
+++ trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp	2020-09-16 00:57:08 UTC (rev 267123)
@@ -1984,6 +1984,15 @@
 }
 #endif // ENABLE(RESOURCE_LOAD_STATISTICS)
 
+void WebsiteDataStore::syncLocalStorage(CompletionHandler<void()>&& completionHandler)
+{
+    auto callbackAggregator = CallbackAggregator::create(WTFMove(completionHandler));
+    for (auto& processPool : processPools()) {
+        if (auto* networkProcess = processPool->networkProcess())
+            networkProcess->sendWithAsyncReply(Messages::NetworkProcess::SyncLocalStorage(), [callbackAggregator] { });
+    }
+}
+
 void WebsiteDataStore::setCacheMaxAgeCapForPrevalentResources(Seconds seconds, CompletionHandler<void()>&& completionHandler)
 {
 #if ENABLE(RESOURCE_LOAD_STATISTICS)

Modified: trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h (267122 => 267123)


--- trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h	2020-09-16 00:54:33 UTC (rev 267122)
+++ trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h	2020-09-16 00:57:08 UTC (rev 267123)
@@ -211,6 +211,7 @@
     bool isItpStateExplicitlySet() const { return m_isItpStateExplicitlySet; }
     void useExplicitITPState() { m_isItpStateExplicitlySet = true; }
 #endif
+    void syncLocalStorage(CompletionHandler<void()>&&);
     void setCacheMaxAgeCapForPrevalentResources(Seconds, CompletionHandler<void()>&&);
     void resetCacheMaxAgeCapForPrevalentResources(CompletionHandler<void()>&&);
     void resolveDirectoriesIfNecessary();

Modified: trunk/Tools/ChangeLog (267122 => 267123)


--- trunk/Tools/ChangeLog	2020-09-16 00:54:33 UTC (rev 267122)
+++ trunk/Tools/ChangeLog	2020-09-16 00:57:08 UTC (rev 267123)
@@ -1,5 +1,16 @@
 2020-09-15  Alex Christensen  <[email protected]>
 
+        Move local storage sync SPI from WebProcessPool to WebsiteDataStore
+        https://bugs.webkit.org/show_bug.cgi?id=216581
+
+        Reviewed by Geoffrey Garen.
+
+        * WebKitTestRunner/TestController.cpp:
+        (WTR::TestController::clearLocalStorage):
+        (WTR::TestController::syncLocalStorage):
+
+2020-09-15  Alex Christensen  <[email protected]>
+
         Move service worker testing timeout setting from WebProcessPool to WebsiteDataStore
         https://bugs.webkit.org/show_bug.cgi?id=216578
 

Modified: trunk/Tools/WebKitTestRunner/TestController.cpp (267122 => 267123)


--- trunk/Tools/WebKitTestRunner/TestController.cpp	2020-09-16 00:54:33 UTC (rev 267122)
+++ trunk/Tools/WebKitTestRunner/TestController.cpp	2020-09-16 00:57:08 UTC (rev 267123)
@@ -3361,16 +3361,12 @@
     StorageVoidCallbackContext context(*this);
     WKWebsiteDataStoreRemoveLocalStorage(websiteDataStore(), &context, StorageVoidCallback);
     runUntil(context.done, noTimeout);
-
-    StorageVoidCallbackContext legacyContext(*this);
-    WKContextClearLegacyPrivateBrowsingLocalStorage(platformContext(), &legacyContext, StorageVoidCallback);
-    runUntil(legacyContext.done, noTimeout);
 }
 
 void TestController::syncLocalStorage()
 {
     StorageVoidCallbackContext context(*this);
-    WKContextSyncLocalStorage(platformContext(), &context, StorageVoidCallback);
+    WKWebsiteDataStoreSyncLocalStorage(TestController::websiteDataStore(), &context, StorageVoidCallback);
     runUntil(context.done, noTimeout);
 }
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to