WebsiteDataStore operations need to grab background assertions
https://bugs.webkit.org/show_bug.cgi?id=147015
rdar://problem/21799011
Reviewed by Sam Weinig.
* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::fetchWebsiteData):
(WebKit::NetworkProcessProxy::deleteWebsiteData):
(WebKit::NetworkProcessProxy::deleteWebsiteDataForOrigins):
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::fetchWebsiteData):
(WebKit::WebProcessProxy::deleteWebsiteData):
(WebKit::WebProcessProxy::deleteWebsiteDataForOrigins):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@187023 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/Source/WebKit2/UIProcess/Network/NetworkProcessProxy.cpp b/Source/WebKit2/UIProcess/Network/NetworkProcessProxy.cpp
index 08d1e51..ff965076 100644
--- a/Source/WebKit2/UIProcess/Network/NetworkProcessProxy.cpp
+++ b/Source/WebKit2/UIProcess/Network/NetworkProcessProxy.cpp
@@ -125,7 +125,11 @@
ASSERT(canSendMessage());
uint64_t callbackID = generateCallbackID();
- m_pendingFetchWebsiteDataCallbacks.add(callbackID, WTF::move(completionHandler));
+ auto token = throttler().backgroundActivityToken();
+
+ m_pendingFetchWebsiteDataCallbacks.add(callbackID, [token, completionHandler](WebsiteData websiteData) {
+ completionHandler(WTF::move(websiteData));
+ });
send(Messages::WebProcess::FetchWebsiteData(sessionID, dataTypes, callbackID), 0);
}
@@ -133,8 +137,11 @@
void NetworkProcessProxy::deleteWebsiteData(WebCore::SessionID sessionID, WebsiteDataTypes dataTypes, std::chrono::system_clock::time_point modifiedSince, std::function<void ()> completionHandler)
{
auto callbackID = generateCallbackID();
+ auto token = throttler().backgroundActivityToken();
- m_pendingDeleteWebsiteDataCallbacks.add(callbackID, WTF::move(completionHandler));
+ m_pendingDeleteWebsiteDataCallbacks.add(callbackID, [token, completionHandler] {
+ completionHandler();
+ });
send(Messages::NetworkProcess::DeleteWebsiteData(sessionID, dataTypes, modifiedSince, callbackID), 0);
}
@@ -143,7 +150,11 @@
ASSERT(canSendMessage());
uint64_t callbackID = generateCallbackID();
- m_pendingDeleteWebsiteDataForOriginsCallbacks.add(callbackID, WTF::move(completionHandler));
+ auto token = throttler().backgroundActivityToken();
+
+ m_pendingDeleteWebsiteDataForOriginsCallbacks.add(callbackID, [token, completionHandler] {
+ completionHandler();
+ });
Vector<SecurityOriginData> originData;
for (auto& origin : origins)