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);
}