Diff
Modified: trunk/Source/WebKit/ChangeLog (267041 => 267042)
--- trunk/Source/WebKit/ChangeLog 2020-09-14 21:40:37 UTC (rev 267041)
+++ trunk/Source/WebKit/ChangeLog 2020-09-14 21:50:38 UTC (rev 267042)
@@ -1,3 +1,45 @@
+2020-09-14 Alex Christensen <[email protected]>
+
+ Move cookie flushing SPI from WKProcessPool to WKHTTPCookieStore
+ https://bugs.webkit.org/show_bug.cgi?id=216493
+
+ Reviewed by Chris Dumez.
+
+ In order for https://bugs.webkit.org/show_bug.cgi?id=216041 to be possible, our interface for flushing cookies to disk can't be
+ on the WKProcessPool. It should be with the other cookie operations, in WKHTTPCookieStore.
+ AuxiliaryProcessProxy::sendWithAsyncReply takes care of the background assertion, so we remove that code from NetworkProcessProxy::syncAllCookies.
+ rdar://problem/68872711 tracks adoption in Safari, which I will land within an hour of landing this to avoid cookie regressions.
+
+ * NetworkProcess/NetworkProcess.cpp:
+ (WebKit::NetworkProcess::syncAllCookies):
+ (WebKit::NetworkProcess::didSyncAllCookies): Deleted.
+ * NetworkProcess/NetworkProcess.h:
+ * NetworkProcess/NetworkProcess.messages.in:
+ * NetworkProcess/cocoa/NetworkProcessCocoa.mm:
+ (WebKit::NetworkProcess::syncAllCookies):
+ * UIProcess/API/APIHTTPCookieStore.cpp:
+ (API::HTTPCookieStore::syncCookies):
+ * UIProcess/API/APIHTTPCookieStore.h:
+ * UIProcess/API/Cocoa/WKHTTPCookieStore.mm:
+ (-[WKHTTPCookieStore _flushCookiesToDiskWithCompletionHandler:]):
+ * UIProcess/API/Cocoa/WKHTTPCookieStorePrivate.h:
+ * UIProcess/API/Cocoa/WKProcessPool.mm:
+ (-[WKProcessPool _syncNetworkProcessCookies]):
+ * UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
+ * UIProcess/Network/NetworkProcessProxy.cpp:
+ (WebKit::NetworkProcessProxy::didClose):
+ (WebKit::NetworkProcessProxy::syncAllCookies):
+ (WebKit::NetworkProcessProxy::didSyncAllCookies): Deleted.
+ * UIProcess/Network/NetworkProcessProxy.h:
+ * UIProcess/Network/NetworkProcessProxy.messages.in:
+ * UIProcess/WebProcessPool.cpp:
+ (WebKit::WebProcessPool::syncCookies):
+ (WebKit::WebProcessPool::syncNetworkProcessCookies): Deleted.
+ * UIProcess/WebProcessPool.h:
+ * UIProcess/WebsiteData/WebsiteDataStore.cpp:
+ (WebKit::WebsiteDataStore::syncCookies):
+ * UIProcess/WebsiteData/WebsiteDataStore.h:
+
2020-09-14 Fujii Hironori <[email protected]>
[WinCairo][MediaFoundation] r264188 introduced linker warning: LNK4199: /DELAYLOAD:mf.dll ignored; no imports found from mf.dll
Modified: trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp (267041 => 267042)
--- trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp 2020-09-14 21:40:37 UTC (rev 267041)
+++ trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp 2020-09-14 21:50:38 UTC (rev 267042)
@@ -275,7 +275,9 @@
networkSession.flushAndDestroyPersistentStore([callbackAggregator] { });
});
#endif
- platformSyncAllCookies([callbackAggregator] { });
+ forEachNetworkSession([&] (auto& networkSession) {
+ platformFlushCookies(networkSession.sessionID(), [callbackAggregator] { });
+ });
}
void NetworkProcess::didCreateDownload()
@@ -2280,7 +2282,9 @@
WebResourceLoadStatisticsStore::suspend([callbackAggregator] { });
#endif
- platformSyncAllCookies([callbackAggregator] { });
+ forEachNetworkSession([&] (auto& networkSession) {
+ platformFlushCookies(networkSession.sessionID(), [callbackAggregator] { });
+ });
for (auto& connection : m_webProcessConnections.values())
connection->cleanupForSuspension([callbackAggregator] { });
@@ -2382,11 +2386,6 @@
LegacySchemeRegistry::registerURLSchemeAsNoAccess(scheme);
}
-void NetworkProcess::didSyncAllCookies()
-{
- parentProcessConnection()->send(Messages::NetworkProcessProxy::DidSyncAllCookies(), 0);
-}
-
#if ENABLE(INDEXED_DATABASE)
Ref<WebIDBServer> NetworkProcess::createWebIDBServer(PAL::SessionID sessionID)
{
@@ -2612,11 +2611,12 @@
{
}
-void NetworkProcess::syncAllCookies()
+void NetworkProcess::flushCookies(const PAL::SessionID&, CompletionHandler<void()>&& completionHandler)
{
+ completionHandler();
}
-void NetworkProcess::platformSyncAllCookies(CompletionHandler<void()>&& completionHandler)
+void NetworkProcess::platformFlushCookies(const PAL::SessionID&, CompletionHandler<void()>&& completionHandler)
{
completionHandler();
}
Modified: trunk/Source/WebKit/NetworkProcess/NetworkProcess.h (267041 => 267042)
--- trunk/Source/WebKit/NetworkProcess/NetworkProcess.h 2020-09-14 21:40:37 UTC (rev 267041)
+++ trunk/Source/WebKit/NetworkProcess/NetworkProcess.h 2020-09-14 21:50:38 UTC (rev 267042)
@@ -443,8 +443,7 @@
void allowSpecificHTTPSCertificateForHost(const WebCore::CertificateInfo&, const String& host);
void setAllowsAnySSLCertificateForWebSocket(bool, CompletionHandler<void()>&&);
- void syncAllCookies();
- void didSyncAllCookies();
+ void flushCookies(const PAL::SessionID&, CompletionHandler<void()>&&);
#if USE(SOUP)
void setIgnoreTLSErrors(bool);
@@ -461,7 +460,7 @@
static void setSharedHTTPCookieStorage(const Vector<uint8_t>& identifier);
#endif
- void platformSyncAllCookies(CompletionHandler<void()>&&);
+ void platformFlushCookies(const PAL::SessionID&, CompletionHandler<void()>&&);
void registerURLSchemeAsSecure(const String&) const;
void registerURLSchemeAsBypassingContentSecurityPolicy(const String&) const;
Modified: trunk/Source/WebKit/NetworkProcess/NetworkProcess.messages.in (267041 => 267042)
--- trunk/Source/WebKit/NetworkProcess/NetworkProcess.messages.in 2020-09-14 21:40:37 UTC (rev 267041)
+++ trunk/Source/WebKit/NetworkProcess/NetworkProcess.messages.in 2020-09-14 21:50:38 UTC (rev 267042)
@@ -67,7 +67,7 @@
#endif
SetAllowsAnySSLCertificateForWebSocket(bool enabled) -> () Synchronous
- SyncAllCookies()
+ FlushCookies(PAL::SessionID sessionID) -> () Async
AllowSpecificHTTPSCertificateForHost(WebCore::CertificateInfo certificate, String host)
Modified: trunk/Source/WebKit/NetworkProcess/cocoa/NetworkProcessCocoa.mm (267041 => 267042)
--- trunk/Source/WebKit/NetworkProcess/cocoa/NetworkProcessCocoa.mm 2020-09-14 21:40:37 UTC (rev 267041)
+++ trunk/Source/WebKit/NetworkProcess/cocoa/NetworkProcessCocoa.mm 2020-09-14 21:50:38 UTC (rev 267042)
@@ -223,11 +223,9 @@
WebCore::NetworkStorageSession::setStorageAccessAPIEnabled(enabled);
}
-void NetworkProcess::syncAllCookies()
+void NetworkProcess::flushCookies(const PAL::SessionID& sessionID, CompletionHandler<void()>&& completionHandler)
{
- platformSyncAllCookies([this] {
- didSyncAllCookies();
- });
+ platformFlushCookies(sessionID, WTFMove(completionHandler));
}
#if HAVE(FOUNDATION_WITH_SAVE_COOKIES_WITH_COMPLETION_HANDLER)
@@ -234,6 +232,7 @@
static void saveCookies(NSHTTPCookieStorage *cookieStorage, CompletionHandler<void()>&& completionHandler)
{
ASSERT(RunLoop::isMain());
+ ASSERT(cookieStorage);
[cookieStorage _saveCookies:makeBlockPtr([completionHandler = WTFMove(completionHandler)]() mutable {
// CFNetwork may call the completion block on a background queue, so we need to redispatch to the main thread.
RunLoop::main().dispatch(WTFMove(completionHandler));
@@ -241,21 +240,20 @@
}
#endif
-void NetworkProcess::platformSyncAllCookies(CompletionHandler<void()>&& completionHander) {
+void NetworkProcess::platformFlushCookies(const PAL::SessionID& sessionID, CompletionHandler<void()>&& completionHandler)
+{
ASSERT(hasProcessPrivilege(ProcessPrivilege::CanAccessRawCookies));
- ALLOW_DEPRECATED_DECLARATIONS_BEGIN
-
#if HAVE(FOUNDATION_WITH_SAVE_COOKIES_WITH_COMPLETION_HANDLER)
- RefPtr<CallbackAggregator> callbackAggregator = CallbackAggregator::create(WTFMove(completionHander));
- forEachNetworkStorageSession([&] (auto& networkStorageSession) {
- saveCookies(networkStorageSession.nsCookieStorage(), [callbackAggregator] { });
- });
+ if (auto* networkStorageSession = storageSession(sessionID))
+ saveCookies(networkStorageSession->nsCookieStorage(), WTFMove(completionHandler));
+ else
+ completionHandler();
#else
+ ALLOW_DEPRECATED_DECLARATIONS_BEGIN
_CFHTTPCookieStorageFlushCookieStores();
- completionHander();
+ ALLOW_DEPRECATED_DECLARATIONS_END
+ completionHandler();
#endif
-
- ALLOW_DEPRECATED_DECLARATIONS_END
}
void NetworkProcess::platformProcessDidTransitionToBackground()
Modified: trunk/Source/WebKit/UIProcess/API/APIHTTPCookieStore.cpp (267041 => 267042)
--- trunk/Source/WebKit/UIProcess/API/APIHTTPCookieStore.cpp 2020-09-14 21:40:37 UTC (rev 267041)
+++ trunk/Source/WebKit/UIProcess/API/APIHTTPCookieStore.cpp 2020-09-14 21:50:38 UTC (rev 267042)
@@ -189,6 +189,11 @@
});
}
+void HTTPCookieStore::flushCookies(CompletionHandler<void()>&& completionHandler)
+{
+ m_owningDataStore->flushCookies(WTFMove(completionHandler));
+}
+
class APIWebCookieManagerProxyObserver : public WebCookieManagerProxy::Observer {
WTF_MAKE_FAST_ALLOCATED;
public:
Modified: trunk/Source/WebKit/UIProcess/API/APIHTTPCookieStore.h (267041 => 267042)
--- trunk/Source/WebKit/UIProcess/API/APIHTTPCookieStore.h 2020-09-14 21:40:37 UTC (rev 267041)
+++ trunk/Source/WebKit/UIProcess/API/APIHTTPCookieStore.h 2020-09-14 21:50:38 UTC (rev 267042)
@@ -64,6 +64,7 @@
void deleteAllCookies(CompletionHandler<void()>&&);
void setHTTPCookieAcceptPolicy(WebCore::HTTPCookieAcceptPolicy, CompletionHandler<void()>&&);
+ void flushCookies(CompletionHandler<void()>&&);
class Observer {
public:
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/WKHTTPCookieStore.mm (267041 => 267042)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/WKHTTPCookieStore.mm 2020-09-14 21:40:37 UTC (rev 267041)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WKHTTPCookieStore.mm 2020-09-14 21:50:38 UTC (rev 267042)
@@ -146,4 +146,11 @@
});
}
+- (void)_flushCookiesToDiskWithCompletionHandler:(void(^)(void))completionHandler
+{
+ _cookieStore->flushCookies([completionHandler = makeBlockPtr(completionHandler)]() {
+ completionHandler();
+ });
+}
+
@end
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/WKHTTPCookieStorePrivate.h (267041 => 267042)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/WKHTTPCookieStorePrivate.h 2020-09-14 21:40:37 UTC (rev 267041)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WKHTTPCookieStorePrivate.h 2020-09-14 21:50:38 UTC (rev 267042)
@@ -27,5 +27,6 @@
@interface WKHTTPCookieStore (WKPrivate)
- (void)_getCookiesForURL:(NSURL *)url completionHandler:(void (^)(NSArray<NSHTTPCookie *> *))completionHandler WK_API_AVAILABLE(macos(WK_MAC_TBA), ios(WK_IOS_TBA));
-- (void)_setCookieAcceptPolicy:(NSHTTPCookieAcceptPolicy)policy completionHandler:(void (^)())completionHandler WK_API_AVAILABLE(macos(WK_MAC_TBA), ios(WK_IOS_TBA));
+- (void)_setCookieAcceptPolicy:(NSHTTPCookieAcceptPolicy)policy completionHandler:(void (^)(void))completionHandler WK_API_AVAILABLE(macos(WK_MAC_TBA), ios(WK_IOS_TBA));
+- (void)_flushCookiesToDiskWithCompletionHandler:(void(^)(void))completionHandler WK_API_AVAILABLE(macos(WK_MAC_TBA), ios(WK_IOS_TBA));
@end
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/WKProcessPool.mm (267041 => 267042)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/WKProcessPool.mm 2020-09-14 21:40:37 UTC (rev 267041)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WKProcessPool.mm 2020-09-14 21:50:38 UTC (rev 267042)
@@ -451,7 +451,6 @@
- (void)_syncNetworkProcessCookies
{
- _processPool->syncNetworkProcessCookies();
}
- (void)_clearWebProcessCache
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/WKProcessPoolPrivate.h (267041 => 267042)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/WKProcessPoolPrivate.h 2020-09-14 21:40:37 UTC (rev 267041)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WKProcessPoolPrivate.h 2020-09-14 21:50:38 UTC (rev 267042)
@@ -104,7 +104,7 @@
- (size_t)_webProcessCountIgnoringPrewarmedAndCached WK_API_AVAILABLE(macos(10.14.4), ios(12.2));
- (size_t)_pluginProcessCount WK_API_AVAILABLE(macos(10.13.4), ios(11.3));
- (size_t)_serviceWorkerProcessCount WK_API_AVAILABLE(macos(10.14), ios(12.0));
-- (void)_syncNetworkProcessCookies WK_API_AVAILABLE(macos(10.13), ios(11.0));
+- (void)_syncNetworkProcessCookies WK_API_DEPRECATED_WITH_REPLACEMENT("WKHTTPCookieStore._flushCookiesToDiskWithCompletionHandler:", macos(10.13, WK_MAC_TBA), ios(11.0, WK_IOS_TBA));
- (void)_makeNextWebProcessLaunchFailForTesting WK_API_AVAILABLE(macos(10.14), ios(12.0));
- (void)_makeNextNetworkProcessLaunchFailForTesting WK_API_AVAILABLE(macos(10.14), ios(12.0));
- (NSUInteger)_maximumSuspendedPageCount WK_API_AVAILABLE(macos(10.14.4), ios(12.2));
Modified: trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp (267041 => 267042)
--- trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp 2020-09-14 21:40:37 UTC (rev 267041)
+++ trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp 2020-09-14 21:50:38 UTC (rev 267042)
@@ -283,9 +283,6 @@
#endif
m_activityForHoldingLockedFiles = nullptr;
-
- m_syncAllCookiesActivity = nullptr;
- m_syncAllCookiesCounter = 0;
m_uploadActivity = WTF::nullopt;
@@ -1250,29 +1247,11 @@
}
}
-void NetworkProcessProxy::syncAllCookies()
+void NetworkProcessProxy::flushCookies(const PAL::SessionID& sessionID, CompletionHandler<void()>&& completionHandler)
{
- send(Messages::NetworkProcess::SyncAllCookies(), 0);
-
- ++m_syncAllCookiesCounter;
- if (m_syncAllCookiesActivity)
- return;
-
- RELEASE_LOG(ProcessSuspension, "%p - NetworkProcessProxy is taking a background assertion because the Network process is syncing cookies", this);
- m_syncAllCookiesActivity = throttler().backgroundActivity("Syncing cookies"_s).moveToUniquePtr();
+ sendWithAsyncReply(Messages::NetworkProcess::FlushCookies(sessionID), WTFMove(completionHandler));
}
-
-void NetworkProcessProxy::didSyncAllCookies()
-{
- ASSERT(m_syncAllCookiesCounter);
- --m_syncAllCookiesCounter;
- if (!m_syncAllCookiesCounter) {
- RELEASE_LOG(ProcessSuspension, "%p - NetworkProcessProxy is releasing a background assertion because the Network process is done syncing cookies", this);
- m_syncAllCookiesActivity = nullptr;
- }
-}
-
void NetworkProcessProxy::addSession(Ref<WebsiteDataStore>&& store)
{
m_sessionIDs.add(store->sessionID());
Modified: trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxy.h (267041 => 267042)
--- trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxy.h 2020-09-14 21:40:37 UTC (rev 267041)
+++ trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxy.h 2020-09-14 21:50:38 UTC (rev 267042)
@@ -198,8 +198,7 @@
void setIsHoldingLockedFiles(bool);
- void syncAllCookies();
- void didSyncAllCookies();
+ void flushCookies(const PAL::SessionID&, CompletionHandler<void()>&&);
void testProcessIncomingSyncMessagesWhenWaitingForSyncReply(WebPageProxyIdentifier, Messages::NetworkProcessProxy::TestProcessIncomingSyncMessagesWhenWaitingForSyncReplyDelayedReply&&);
void terminateUnresponsiveServiceWorkerProcesses(WebCore::ProcessIdentifier);
@@ -325,10 +324,7 @@
#endif
ProcessThrottler m_throttler;
std::unique_ptr<ProcessThrottler::BackgroundActivity> m_activityForHoldingLockedFiles;
- std::unique_ptr<ProcessThrottler::BackgroundActivity> m_syncAllCookiesActivity;
ProcessThrottler::ActivityVariant m_activityFromWebProcesses;
-
- unsigned m_syncAllCookiesCounter { 0 };
#if ENABLE(CONTENT_EXTENSIONS)
HashSet<WebUserContentControllerProxy*> m_webUserContentControllerProxies;
Modified: trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxy.messages.in (267041 => 267042)
--- trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxy.messages.in 2020-09-14 21:40:37 UTC (rev 267041)
+++ trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxy.messages.in 2020-09-14 21:50:38 UTC (rev 267042)
@@ -29,8 +29,6 @@
DidDeleteWebsiteData(WebKit::CallbackID callbackID)
DidDeleteWebsiteDataForOrigins(WebKit::CallbackID callbackID)
- DidSyncAllCookies()
-
TestProcessIncomingSyncMessagesWhenWaitingForSyncReply(WebKit::WebPageProxyIdentifier pageID) -> (bool handled) Synchronous
TerminateUnresponsiveServiceWorkerProcesses(WebCore::ProcessIdentifier processIdentifier)
Modified: trunk/Source/WebKit/UIProcess/WebProcessPool.cpp (267041 => 267042)
--- trunk/Source/WebKit/UIProcess/WebProcessPool.cpp 2020-09-14 21:40:37 UTC (rev 267041)
+++ trunk/Source/WebKit/UIProcess/WebProcessPool.cpp 2020-09-14 21:50:38 UTC (rev 267042)
@@ -1833,9 +1833,9 @@
#endif
}
-void WebProcessPool::syncNetworkProcessCookies()
+void WebProcessPool::flushCookies(const PAL::SessionID& sessionID, CompletionHandler<void()>&& completionHandler)
{
- ensureNetworkProcess().syncAllCookies();
+ ensureNetworkProcess().flushCookies(sessionID, WTFMove(completionHandler));
}
void WebProcessPool::syncLocalStorage(CompletionHandler<void()>&& completionHandler)
Modified: trunk/Source/WebKit/UIProcess/WebProcessPool.h (267041 => 267042)
--- trunk/Source/WebKit/UIProcess/WebProcessPool.h 2020-09-14 21:40:37 UTC (rev 267041)
+++ trunk/Source/WebKit/UIProcess/WebProcessPool.h 2020-09-14 21:50:38 UTC (rev 267042)
@@ -328,7 +328,7 @@
void sendNetworkProcessDidResume();
void terminateServiceWorkers();
- void syncNetworkProcessCookies();
+ void flushCookies(const PAL::SessionID&, CompletionHandler<void()>&&);
void syncLocalStorage(CompletionHandler<void()>&& callback);
void clearLegacyPrivateBrowsingLocalStorage(CompletionHandler<void()>&& callback);
Modified: trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp (267041 => 267042)
--- trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp 2020-09-14 21:40:37 UTC (rev 267041)
+++ trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp 2020-09-14 21:50:38 UTC (rev 267042)
@@ -2254,6 +2254,13 @@
m_pendingCookies.clear();
}
+void WebsiteDataStore::flushCookies(CompletionHandler<void()>&& completionHandler)
+{
+ auto callbackAggregator = CallbackAggregator::create(WTFMove(completionHandler));
+ for (auto processPool : WebProcessPool::allProcessPools())
+ processPool->flushCookies(sessionID(), [callbackAggregator] { });
+}
+
void WebsiteDataStore::dispatchOnQueue(Function<void()>&& function)
{
m_queue->dispatch(WTFMove(function));
Modified: trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h (267041 => 267042)
--- trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h 2020-09-14 21:40:37 UTC (rev 267041)
+++ trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h 2020-09-14 21:50:38 UTC (rev 267042)
@@ -238,6 +238,7 @@
void addPendingCookie(const WebCore::Cookie&);
void removePendingCookie(const WebCore::Cookie&);
void clearPendingCookies();
+ void flushCookies(CompletionHandler<void()>&&);
void dispatchOnQueue(Function<void()>&&);
Modified: trunk/Tools/ChangeLog (267041 => 267042)
--- trunk/Tools/ChangeLog 2020-09-14 21:40:37 UTC (rev 267041)
+++ trunk/Tools/ChangeLog 2020-09-14 21:50:38 UTC (rev 267042)
@@ -1,3 +1,14 @@
+2020-09-14 Alex Christensen <[email protected]>
+
+ Move cookie flushing SPI from WKProcessPool to WKHTTPCookieStore
+ https://bugs.webkit.org/show_bug.cgi?id=216493
+
+ Reviewed by Chris Dumez.
+
+ * TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm:
+ (runWebsiteDataStoreCustomPaths):
+ (TEST):
+
2020-09-14 Jonathan Bedard <[email protected]>
[webkitcorepy] Disable AutoInstaller with environment variable (Follow-up fix)
Modified: trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm (267041 => 267042)
--- trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm 2020-09-14 21:40:37 UTC (rev 267041)
+++ trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm 2020-09-14 21:50:38 UTC (rev 267042)
@@ -32,6 +32,7 @@
#import "TestNavigationDelegate.h"
#import "TestWKWebView.h"
#import <_javascript_Core/JSCConfig.h>
+#import <WebKit/WKHTTPCookieStorePrivate.h>
#import <WebKit/WKPreferencesRef.h>
#import <WebKit/WKProcessPoolPrivate.h>
#import <WebKit/WKUserContentControllerPrivate.h>
@@ -148,7 +149,11 @@
EXPECT_STREQ([getNextMessage().body UTF8String], "Exception: QuotaExceededError: The quota has been exceeded.");
EXPECT_STREQ([getNextMessage().body UTF8String], "Success opening indexed database");
- [[[webView configuration] processPool] _syncNetworkProcessCookies];
+ __block bool flushed = false;
+ [configuration.get().websiteDataStore.httpCookieStore _flushCookiesToDiskWithCompletionHandler:^{
+ flushed = true;
+ }];
+ TestWebKitAPI::Util::run(&flushed);
// Forcibly shut down everything of WebKit that we can.
auto pid = [webView _webProcessIdentifier];
@@ -418,7 +423,11 @@
NSURLRequest *request = [NSURLRequest requestWithURL:[[NSBundle mainBundle] URLForResource:@"WebsiteDataStoreCustomPaths" withExtension:@"html" subdirectory:@"TestWebKitAPI.resources"]];
[webView loadRequest:request];
- [[[webView configuration] processPool] _syncNetworkProcessCookies];
+ __block bool flushed = false;
+ [configuration.get().websiteDataStore.httpCookieStore _flushCookiesToDiskWithCompletionHandler:^{
+ flushed = true;
+ }];
+ TestWebKitAPI::Util::run(&flushed);
// Forcibly shut down everything of WebKit that we can.
auto pid = [webView _webProcessIdentifier];
@@ -493,7 +502,11 @@
NSURLRequest *request = [NSURLRequest requestWithURL:[[NSBundle mainBundle] URLForResource:@"WebsiteDataStoreCustomPaths" withExtension:@"html" subdirectory:@"TestWebKitAPI.resources"]];
[webView loadRequest:request];
- [[[webView configuration] processPool] _syncNetworkProcessCookies];
+ __block bool flushed = false;
+ [configuration.get().websiteDataStore.httpCookieStore _flushCookiesToDiskWithCompletionHandler:^{
+ flushed = true;
+ }];
+ TestWebKitAPI::Util::run(&flushed);
// Forcibly shut down everything of WebKit that we can.
auto pid = [webView _webProcessIdentifier];