Diff
Modified: trunk/LayoutTests/ChangeLog (282169 => 282170)
--- trunk/LayoutTests/ChangeLog 2021-09-08 20:55:00 UTC (rev 282169)
+++ trunk/LayoutTests/ChangeLog 2021-09-08 21:09:45 UTC (rev 282170)
@@ -1,3 +1,16 @@
+2021-09-08 Sihui Liu <sihui_...@apple.com>
+
+ Regression (r282130): [ macOS iOS wk2 ] imported/w3c/web-platform-tests/storage/persisted.https.any.html is failing
+ https://bugs.webkit.org/show_bug.cgi?id=230053
+ <rdar://problem/82879548>
+
+ Reviewed by Chris Dumez.
+
+ Skip storage/ tests on WebKitLegacy platforms as the API is not implemented there.
+
+ * TestExpectations:
+ * platform/wk2/TestExpectations:
+
2021-09-08 Ayumi Kojima <ayumi_koj...@apple.com>
[ macOS wk1 ] fast/text/FontFaceSet-check-after-style-update.html is a flaky failure.
Modified: trunk/LayoutTests/TestExpectations (282169 => 282170)
--- trunk/LayoutTests/TestExpectations 2021-09-08 20:55:00 UTC (rev 282169)
+++ trunk/LayoutTests/TestExpectations 2021-09-08 21:09:45 UTC (rev 282170)
@@ -198,6 +198,7 @@
fast/speechrecognition/start-second-recognition.html [ Skip ]
fast/speechrecognition/ios/ [ Skip ]
imported/w3c/web-platform-tests/permissions/ [ Skip ]
+imported/w3c/web-platform-tests/storage/ [ Skip ]
# app-privacy-report tests rely on WebKitAdditions
http/tests/app-privacy-report/ [ Skip ]
Modified: trunk/LayoutTests/platform/wk2/TestExpectations (282169 => 282170)
--- trunk/LayoutTests/platform/wk2/TestExpectations 2021-09-08 20:55:00 UTC (rev 282169)
+++ trunk/LayoutTests/platform/wk2/TestExpectations 2021-09-08 21:09:45 UTC (rev 282170)
@@ -862,4 +862,5 @@
fast/speechrecognition/start-second-recognition.html [ Pass ]
fullscreen/full-screen-enter-while-exiting.html [ Pass ]
imported/w3c/web-platform-tests/permissions/ [ Pass ]
+imported/w3c/web-platform-tests/storage/ [ Pass ]
Modified: trunk/Source/WebKit/ChangeLog (282169 => 282170)
--- trunk/Source/WebKit/ChangeLog 2021-09-08 20:55:00 UTC (rev 282169)
+++ trunk/Source/WebKit/ChangeLog 2021-09-08 21:09:45 UTC (rev 282170)
@@ -1,3 +1,32 @@
+2021-09-08 Sihui Liu <sihui_...@apple.com>
+
+ Regression (r282130): [ macOS iOS wk2 ] imported/w3c/web-platform-tests/storage/persisted.https.any.html is failing
+ https://bugs.webkit.org/show_bug.cgi?id=230053
+ <rdar://problem/82879548>
+
+ Reviewed by Chris Dumez.
+
+ Add SPI to clear storage states for testing.
+
+ Covered by existing tests.
+
+ * NetworkProcess/NetworkProcess.cpp:
+ (WebKit::NetworkProcess::clearStorage):
+ * NetworkProcess/NetworkProcess.h:
+ * NetworkProcess/NetworkProcess.messages.in:
+ * NetworkProcess/storage/NetworkStorageManager.cpp:
+ (WebKit::NetworkStorageManager::clearStorageForTesting):
+ * NetworkProcess/storage/NetworkStorageManager.h:
+ * UIProcess/API/C/WKWebsiteDataStoreRef.cpp:
+ (WKWebsiteDataStoreClearStorage):
+ * UIProcess/API/C/WKWebsiteDataStoreRef.h:
+ * UIProcess/Network/NetworkProcessProxy.cpp:
+ (WebKit::NetworkProcessProxy::clearStorage):
+ * UIProcess/Network/NetworkProcessProxy.h:
+ * UIProcess/WebsiteData/WebsiteDataStore.cpp:
+ (WebKit::WebsiteDataStore::clearStorage):
+ * UIProcess/WebsiteData/WebsiteDataStore.h:
+
2021-09-08 Per Arne <pvol...@apple.com>
Remove unneeded call on startup of WebContent process
Modified: trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp (282169 => 282170)
--- trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp 2021-09-08 20:55:00 UTC (rev 282169)
+++ trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp 2021-09-08 21:09:45 UTC (rev 282170)
@@ -2416,6 +2416,14 @@
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: trunk/Source/WebKit/NetworkProcess/NetworkProcess.h (282169 => 282170)
--- trunk/Source/WebKit/NetworkProcess/NetworkProcess.h 2021-09-08 20:55:00 UTC (rev 282169)
+++ trunk/Source/WebKit/NetworkProcess/NetworkProcess.h 2021-09-08 21:09:45 UTC (rev 282170)
@@ -308,6 +308,7 @@
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: trunk/Source/WebKit/NetworkProcess/NetworkProcess.messages.in (282169 => 282170)
--- trunk/Source/WebKit/NetworkProcess/NetworkProcess.messages.in 2021-09-08 20:55:00 UTC (rev 282169)
+++ trunk/Source/WebKit/NetworkProcess/NetworkProcess.messages.in 2021-09-08 21:09:45 UTC (rev 282170)
@@ -176,6 +176,7 @@
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: trunk/Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp (282169 => 282170)
--- trunk/Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp 2021-09-08 20:55:00 UTC (rev 282169)
+++ trunk/Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp 2021-09-08 21:09:45 UTC (rev 282170)
@@ -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: trunk/Source/WebKit/NetworkProcess/storage/NetworkStorageManager.h (282169 => 282170)
--- trunk/Source/WebKit/NetworkProcess/storage/NetworkStorageManager.h 2021-09-08 20:55:00 UTC (rev 282169)
+++ trunk/Source/WebKit/NetworkProcess/storage/NetworkStorageManager.h 2021-09-08 21:09:45 UTC (rev 282170)
@@ -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: trunk/Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreRef.cpp (282169 => 282170)
--- trunk/Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreRef.cpp 2021-09-08 20:55:00 UTC (rev 282169)
+++ trunk/Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreRef.cpp 2021-09-08 21:09:45 UTC (rev 282170)
@@ -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: trunk/Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreRef.h (282169 => 282170)
--- trunk/Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreRef.h 2021-09-08 20:55:00 UTC (rev 282169)
+++ trunk/Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreRef.h 2021-09-08 21:09:45 UTC (rev 282170)
@@ -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: trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp (282169 => 282170)
--- trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp 2021-09-08 20:55:00 UTC (rev 282169)
+++ trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp 2021-09-08 21:09:45 UTC (rev 282170)
@@ -1560,6 +1560,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: trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxy.h (282169 => 282170)
--- trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxy.h 2021-09-08 20:55:00 UTC (rev 282169)
+++ trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxy.h 2021-09-08 21:09:45 UTC (rev 282170)
@@ -243,6 +243,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: trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp (282169 => 282170)
--- trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp 2021-09-08 20:55:00 UTC (rev 282169)
+++ trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp 2021-09-08 21:09:45 UTC (rev 282170)
@@ -2154,6 +2154,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: trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h (282169 => 282170)
--- trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h 2021-09-08 20:55:00 UTC (rev 282169)
+++ trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h 2021-09-08 21:09:45 UTC (rev 282170)
@@ -352,6 +352,7 @@
static bool http3Enabled();
void resetQuota(CompletionHandler<void()>&&);
+ void clearStorage(CompletionHandler<void()>&&);
#if ENABLE(APP_BOUND_DOMAINS)
void hasAppBoundSession(CompletionHandler<void(bool)>&&) const;
Modified: trunk/Tools/ChangeLog (282169 => 282170)
--- trunk/Tools/ChangeLog 2021-09-08 20:55:00 UTC (rev 282169)
+++ trunk/Tools/ChangeLog 2021-09-08 21:09:45 UTC (rev 282170)
@@ -1,3 +1,18 @@
+2021-09-08 Sihui Liu <sihui_...@apple.com>
+
+ Regression (r282130): [ macOS iOS wk2 ] imported/w3c/web-platform-tests/storage/persisted.https.any.html is failing
+ https://bugs.webkit.org/show_bug.cgi?id=230053
+ <rdar://problem/82879548>
+
+ Reviewed by Chris Dumez.
+
+ Clear storage states between tests so tests do not affect each other.
+
+ * WebKitTestRunner/TestController.cpp:
+ (WTR::TestController::resetStateToConsistentValues):
+ (WTR::TestController::clearStorage):
+ * WebKitTestRunner/TestController.h:
+
2021-09-08 Jonathan Bedard <jbed...@apple.com>
[webkitcorepy] Add support for find_spec
Modified: trunk/Tools/WebKitTestRunner/TestController.cpp (282169 => 282170)
--- trunk/Tools/WebKitTestRunner/TestController.cpp 2021-09-08 20:55:00 UTC (rev 282169)
+++ trunk/Tools/WebKitTestRunner/TestController.cpp 2021-09-08 21:09:45 UTC (rev 282170)
@@ -967,6 +967,7 @@
clearDOMCaches();
resetQuota();
+ clearStorage();
WKContextClearCurrentModifierStateForTesting(TestController::singleton().context());
WKContextSetUseSeparateServiceWorkerProcess(TestController::singleton().context(), false);
@@ -2953,6 +2954,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: trunk/Tools/WebKitTestRunner/TestController.h (282169 => 282170)
--- trunk/Tools/WebKitTestRunner/TestController.h 2021-09-08 20:55:00 UTC (rev 282169)
+++ trunk/Tools/WebKitTestRunner/TestController.h 2021-09-08 21:09:45 UTC (rev 282170)
@@ -281,6 +281,7 @@
void terminateServiceWorkers();
void resetQuota();
+ void clearStorage();
void removeAllSessionCredentials();