Diff
Modified: branches/safari-612-branch/LayoutTests/TestExpectations (284306 => 284307)
--- branches/safari-612-branch/LayoutTests/TestExpectations 2021-10-16 05:31:25 UTC (rev 284306)
+++ branches/safari-612-branch/LayoutTests/TestExpectations 2021-10-16 06:02:53 UTC (rev 284307)
@@ -196,7 +196,6 @@
fast/speechrecognition/start-recognition-then-stop.html [ Skip ]
fast/speechrecognition/start-second-recognition.html [ Skip ]
fast/speechrecognition/ios/ [ Skip ]
-imported/w3c/web-platform-tests/storage/ [ Skip ]
# app-privacy-report tests rely on WebKitAdditions
http/tests/app-privacy-report/ [ Skip ]
Modified: branches/safari-612-branch/LayoutTests/imported/w3c/web-platform-tests/storage/permission-query.https.any-expected.txt (284306 => 284307)
--- branches/safari-612-branch/LayoutTests/imported/w3c/web-platform-tests/storage/permission-query.https.any-expected.txt 2021-10-16 05:31:25 UTC (rev 284306)
+++ branches/safari-612-branch/LayoutTests/imported/w3c/web-platform-tests/storage/permission-query.https.any-expected.txt 2021-10-16 06:02:53 UTC (rev 284307)
@@ -1,3 +1,3 @@
-FAIL The "persistent-storage" permission is recognized promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.permissions.query')"
+FAIL The "persistent-storage" permission is recognized promise_test: Unhandled rejection with value: object "TypeError: Type error"
Modified: branches/safari-612-branch/LayoutTests/platform/wk2/TestExpectations (284306 => 284307)
--- branches/safari-612-branch/LayoutTests/platform/wk2/TestExpectations 2021-10-16 05:31:25 UTC (rev 284306)
+++ branches/safari-612-branch/LayoutTests/platform/wk2/TestExpectations 2021-10-16 06:02:53 UTC (rev 284307)
@@ -866,5 +866,4 @@
fast/speechrecognition/start-recognition-then-stop.html [ Pass ]
fast/speechrecognition/start-second-recognition.html [ Pass ]
fullscreen/full-screen-enter-while-exiting.html [ Pass ]
-imported/w3c/web-platform-tests/storage/ [ Pass ]
Modified: branches/safari-612-branch/Source/WebKit/NetworkProcess/NetworkProcess.cpp (284306 => 284307)
--- branches/safari-612-branch/Source/WebKit/NetworkProcess/NetworkProcess.cpp 2021-10-16 05:31:25 UTC (rev 284306)
+++ branches/safari-612-branch/Source/WebKit/NetworkProcess/NetworkProcess.cpp 2021-10-16 06:02:53 UTC (rev 284307)
@@ -2422,14 +2422,6 @@
completionHandler();
}
-void NetworkProcess::clearStorage(PAL::SessionID sessionID, CompletionHandler<void()>&& completionHandler)
-{
- if (auto manager = m_storageManagers.get(sessionID))
- manager->clearStorageForTesting(WTFMove(completionHandler));
- else
- completionHandler();
-}
-
void NetworkProcess::renameOriginInWebsiteData(PAL::SessionID sessionID, const URL& oldName, const URL& newName, OptionSet<WebsiteDataType> dataTypes, CompletionHandler<void()>&& completionHandler)
{
auto aggregator = CallbackAggregator::create(WTFMove(completionHandler));
Modified: branches/safari-612-branch/Source/WebKit/NetworkProcess/NetworkProcess.h (284306 => 284307)
--- branches/safari-612-branch/Source/WebKit/NetworkProcess/NetworkProcess.h 2021-10-16 05:31:25 UTC (rev 284306)
+++ branches/safari-612-branch/Source/WebKit/NetworkProcess/NetworkProcess.h 2021-10-16 06:02:53 UTC (rev 284307)
@@ -309,7 +309,6 @@
void syncLocalStorage(CompletionHandler<void()>&&);
void resetQuota(PAL::SessionID, CompletionHandler<void()>&&);
- void clearStorage(PAL::SessionID, CompletionHandler<void()>&&);
void renameOriginInWebsiteData(PAL::SessionID, const URL&, const URL&, OptionSet<WebsiteDataType>, CompletionHandler<void()>&&);
#if ENABLE(SERVICE_WORKER)
Modified: branches/safari-612-branch/Source/WebKit/NetworkProcess/NetworkProcess.messages.in (284306 => 284307)
--- branches/safari-612-branch/Source/WebKit/NetworkProcess/NetworkProcess.messages.in 2021-10-16 05:31:25 UTC (rev 284306)
+++ branches/safari-612-branch/Source/WebKit/NetworkProcess/NetworkProcess.messages.in 2021-10-16 06:02:53 UTC (rev 284307)
@@ -178,7 +178,6 @@
ResetServiceWorkerFetchTimeoutForTesting() -> () Synchronous
ResetQuota(PAL::SessionID sessionID) -> () Async
- ClearStorage(PAL::SessionID sessionID) -> () Async
#if ENABLE(APP_BOUND_DOMAINS)
HasAppBoundSession(PAL::SessionID sessionID) -> (bool hasAppBoundSession) Async
Modified: branches/safari-612-branch/Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp (284306 => 284307)
--- branches/safari-612-branch/Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp 2021-10-16 05:31:25 UTC (rev 284306)
+++ branches/safari-612-branch/Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp 2021-10-16 06:02:53 UTC (rev 284307)
@@ -111,5 +111,16 @@
completionHandler(true);
}
+void NetworkStorageManager::clearStorageForTesting(CompletionHandler<void()>&& completionHandler)
+{
+ ASSERT(RunLoop::isMain());
+ m_queue->dispatch([this, protectedThis = makeRef(*this), completionHandler = WTFMove(completionHandler)]() mutable {
+ m_localOriginStorageManagers.clear();
+ m_sessionOriginStorageManagers.clear();
+
+ RunLoop::main().dispatch(WTFMove(completionHandler));
+ });
+}
+
} // namespace WebKit
Modified: branches/safari-612-branch/Source/WebKit/NetworkProcess/storage/NetworkStorageManager.h (284306 => 284307)
--- branches/safari-612-branch/Source/WebKit/NetworkProcess/storage/NetworkStorageManager.h 2021-10-16 05:31:25 UTC (rev 284306)
+++ branches/safari-612-branch/Source/WebKit/NetworkProcess/storage/NetworkStorageManager.h 2021-10-16 06:02:53 UTC (rev 284307)
@@ -44,6 +44,7 @@
void stopReceivingMessageFromConnection(IPC::Connection&);
PAL::SessionID sessionID() const { return m_sessionID; }
+ void clearStorageForTesting(CompletionHandler<void()>&&);
private:
NetworkStorageManager(PAL::SessionID, const String& path);
Modified: branches/safari-612-branch/Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreRef.cpp (284306 => 284307)
--- branches/safari-612-branch/Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreRef.cpp 2021-10-16 05:31:25 UTC (rev 284306)
+++ branches/safari-612-branch/Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreRef.cpp 2021-10-16 06:02:53 UTC (rev 284307)
@@ -838,6 +838,14 @@
});
}
+void WKWebsiteDataStoreClearStorage(WKWebsiteDataStoreRef dataStoreRef, void* context, WKWebsiteDataStoreClearStorageCallback callback)
+{
+ WebKit::toImpl(dataStoreRef)->clearStorage([context, callback] {
+ if (callback)
+ callback(context);
+ });
+}
+
void WKWebsiteDataStoreClearAppBoundSession(WKWebsiteDataStoreRef dataStoreRef, void* context, WKWebsiteDataStoreClearAppBoundSessionFunction completionHandler)
{
#if ENABLE(APP_BOUND_DOMAINS)
Modified: branches/safari-612-branch/Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreRef.h (284306 => 284307)
--- branches/safari-612-branch/Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreRef.h 2021-10-16 05:31:25 UTC (rev 284306)
+++ branches/safari-612-branch/Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreRef.h 2021-10-16 06:02:53 UTC (rev 284307)
@@ -194,6 +194,9 @@
typedef void (*WKWebsiteDataStoreResetQuotaCallback)(void* functionContext);
WK_EXPORT void WKWebsiteDataStoreResetQuota(WKWebsiteDataStoreRef dataStoreRef, void* context, WKWebsiteDataStoreResetQuotaCallback callback);
+typedef void (*WKWebsiteDataStoreClearStorageCallback)(void* functionContext);
+WK_EXPORT void WKWebsiteDataStoreClearStorage(WKWebsiteDataStoreRef dataStoreRef, void* context, WKWebsiteDataStoreResetQuotaCallback callback);
+
typedef void (*WKWebsiteDataStoreClearAppBoundSessionFunction)(void* functionContext);
WK_EXPORT void WKWebsiteDataStoreClearAppBoundSession(WKWebsiteDataStoreRef dataStoreRef, void* context, WKWebsiteDataStoreClearAppBoundSessionFunction completionHandler);
Modified: branches/safari-612-branch/Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp (284306 => 284307)
--- branches/safari-612-branch/Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp 2021-10-16 05:31:25 UTC (rev 284306)
+++ branches/safari-612-branch/Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp 2021-10-16 06:02:53 UTC (rev 284307)
@@ -1564,6 +1564,11 @@
sendWithAsyncReply(Messages::NetworkProcess::ResetQuota(sessionID), WTFMove(completionHandler));
}
+void NetworkProcessProxy::clearStorage(PAL::SessionID sessionID, CompletionHandler<void()>&& completionHandler)
+{
+ sendWithAsyncReply(Messages::NetworkProcess::ClearStorage(sessionID), WTFMove(completionHandler));
+}
+
#if ENABLE(APP_BOUND_DOMAINS)
void NetworkProcessProxy::hasAppBoundSession(PAL::SessionID sessionID, CompletionHandler<void(bool)>&& completionHandler)
{
Modified: branches/safari-612-branch/Source/WebKit/UIProcess/Network/NetworkProcessProxy.h (284306 => 284307)
--- branches/safari-612-branch/Source/WebKit/UIProcess/Network/NetworkProcessProxy.h 2021-10-16 05:31:25 UTC (rev 284306)
+++ branches/safari-612-branch/Source/WebKit/UIProcess/Network/NetworkProcessProxy.h 2021-10-16 06:02:53 UTC (rev 284307)
@@ -242,6 +242,7 @@
void networkProcessDidTerminate(TerminationReason);
void resetQuota(PAL::SessionID, CompletionHandler<void()>&&);
+ void clearStorage(PAL::SessionID, CompletionHandler<void()>&&);
void resourceLoadDidSendRequest(WebPageProxyIdentifier, ResourceLoadInfo&&, WebCore::ResourceRequest&&, std::optional<IPC::FormDataReference>&&);
void resourceLoadDidPerformHTTPRedirection(WebPageProxyIdentifier, ResourceLoadInfo&&, WebCore::ResourceResponse&&, WebCore::ResourceRequest&&);
Modified: branches/safari-612-branch/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp (284306 => 284307)
--- branches/safari-612-branch/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp 2021-10-16 05:31:25 UTC (rev 284306)
+++ branches/safari-612-branch/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp 2021-10-16 06:02:53 UTC (rev 284307)
@@ -2161,6 +2161,11 @@
networkProcess().resetQuota(m_sessionID, [callbackAggregator] { });
}
+void WebsiteDataStore::clearStorage(CompletionHandler<void()>&& completionHandler)
+{
+ networkProcess().clearStorage(m_sessionID, WTFMove(completionHandler));
+}
+
#if !PLATFORM(COCOA)
WTF::String WebsiteDataStore::defaultMediaCacheDirectory()
{
Modified: branches/safari-612-branch/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h (284306 => 284307)
--- branches/safari-612-branch/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h 2021-10-16 05:31:25 UTC (rev 284306)
+++ branches/safari-612-branch/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h 2021-10-16 06:02:53 UTC (rev 284307)
@@ -353,6 +353,7 @@
static bool http3Enabled();
void resetQuota(CompletionHandler<void()>&&);
+ void clearStorage(CompletionHandler<void()>&&);
#if ENABLE(APP_BOUND_DOMAINS)
void hasAppBoundSession(CompletionHandler<void(bool)>&&) const;
Modified: branches/safari-612-branch/Tools/WebKitTestRunner/TestController.cpp (284306 => 284307)
--- branches/safari-612-branch/Tools/WebKitTestRunner/TestController.cpp 2021-10-16 05:31:25 UTC (rev 284306)
+++ branches/safari-612-branch/Tools/WebKitTestRunner/TestController.cpp 2021-10-16 06:02:53 UTC (rev 284307)
@@ -955,6 +955,7 @@
clearDOMCaches();
resetQuota();
+ clearStorage();
WKContextClearCurrentModifierStateForTesting(TestController::singleton().context());
WKContextSetUseSeparateServiceWorkerProcess(TestController::singleton().context(), false);
@@ -2951,6 +2952,13 @@
runUntil(context.done, noTimeout);
}
+void TestController::clearStorage()
+{
+ StorageVoidCallbackContext context(*this);
+ WKWebsiteDataStoreClearStorage(TestController::websiteDataStore(), &context, StorageVoidCallback);
+ runUntil(context.done, noTimeout);
+}
+
struct FetchCacheOriginsCallbackContext {
FetchCacheOriginsCallbackContext(TestController& controller, WKStringRef origin)
: testController(controller)
Modified: branches/safari-612-branch/Tools/WebKitTestRunner/TestController.h (284306 => 284307)
--- branches/safari-612-branch/Tools/WebKitTestRunner/TestController.h 2021-10-16 05:31:25 UTC (rev 284306)
+++ branches/safari-612-branch/Tools/WebKitTestRunner/TestController.h 2021-10-16 06:02:53 UTC (rev 284307)
@@ -282,6 +282,7 @@
void terminateServiceWorkers();
void resetQuota();
+ void clearStorage();
void removeAllSessionCredentials();