Diff
Modified: trunk/Source/WebKit2/ChangeLog (205208 => 205209)
--- trunk/Source/WebKit2/ChangeLog 2016-08-30 23:01:13 UTC (rev 205208)
+++ trunk/Source/WebKit2/ChangeLog 2016-08-31 00:11:33 UTC (rev 205209)
@@ -1,5 +1,29 @@
2016-08-30 Anders Carlsson <[email protected]>
+ Switch more messages over to Connection::sendWithReply
+ https://bugs.webkit.org/show_bug.cgi?id=161415
+
+ Reviewed by Tim Horton.
+
+ * UIProcess/WebProcessProxy.cpp:
+ (WebKit::WebProcessProxy::~WebProcessProxy):
+ (WebKit::WebProcessProxy::processWillShutDown):
+ (WebKit::WebProcessProxy::canTerminateChildProcess):
+ (WebKit::WebProcessProxy::deleteWebsiteData):
+ (WebKit::WebProcessProxy::deleteWebsiteDataForOrigins):
+ (WebKit::generateCallbackID): Deleted.
+ (WebKit::WebProcessProxy::didDeleteWebsiteData): Deleted.
+ (WebKit::WebProcessProxy::didDeleteWebsiteDataForOrigins): Deleted.
+ * UIProcess/WebProcessProxy.h:
+ * UIProcess/WebProcessProxy.messages.in:
+ * WebProcess/WebProcess.cpp:
+ (WebKit::WebProcess::deleteWebsiteData):
+ (WebKit::WebProcess::deleteWebsiteDataForOrigins):
+ * WebProcess/WebProcess.h:
+ * WebProcess/WebProcess.messages.in:
+
+2016-08-30 Anders Carlsson <[email protected]>
+
Add Connection::sendWithReply
https://bugs.webkit.org/show_bug.cgi?id=161399
Modified: trunk/Source/WebKit2/UIProcess/WebProcessProxy.cpp (205208 => 205209)
--- trunk/Source/WebKit2/UIProcess/WebProcessProxy.cpp 2016-08-30 23:01:13 UTC (rev 205208)
+++ trunk/Source/WebKit2/UIProcess/WebProcessProxy.cpp 2016-08-31 00:11:33 UTC (rev 205209)
@@ -80,13 +80,6 @@
return ++uniquePageID;
}
-static uint64_t generateCallbackID()
-{
- static uint64_t callbackID;
-
- return ++callbackID;
-}
-
static WebProcessProxy::WebPageProxyMap& globalPageMap()
{
ASSERT(RunLoop::isMain());
@@ -115,8 +108,6 @@
WebProcessProxy::~WebProcessProxy()
{
- ASSERT(m_pendingDeleteWebsiteDataCallbacks.isEmpty());
- ASSERT(m_pendingDeleteWebsiteDataForOriginsCallbacks.isEmpty());
ASSERT(m_pageURLRetainCountMap.isEmpty());
if (m_webConnection)
@@ -163,14 +154,6 @@
{
ASSERT_UNUSED(connection, this->connection() == &connection);
- for (const auto& callback : m_pendingDeleteWebsiteDataCallbacks.values())
- callback();
- m_pendingDeleteWebsiteDataCallbacks.clear();
-
- for (const auto& callback : m_pendingDeleteWebsiteDataForOriginsCallbacks.values())
- callback();
- m_pendingDeleteWebsiteDataForOriginsCallbacks.clear();
-
for (auto& page : m_pageMap.values())
page->webProcessWillShutDown();
@@ -683,9 +666,6 @@
if (!m_pageMap.isEmpty())
return false;
- if (!m_pendingDeleteWebsiteDataCallbacks.isEmpty())
- return false;
-
if (!m_processPool->shouldTerminate(this))
return false;
@@ -701,18 +681,6 @@
}
}
-void WebProcessProxy::didDeleteWebsiteData(uint64_t callbackID)
-{
- auto callback = m_pendingDeleteWebsiteDataCallbacks.take(callbackID);
- callback();
-}
-
-void WebProcessProxy::didDeleteWebsiteDataForOrigins(uint64_t callbackID)
-{
- auto callback = m_pendingDeleteWebsiteDataForOriginsCallbacks.take(callbackID);
- callback();
-}
-
void WebProcessProxy::updateTextCheckerState()
{
if (canSendMessage())
@@ -758,15 +726,13 @@
{
ASSERT(canSendMessage());
- uint64_t callbackID = generateCallbackID();
auto token = throttler().backgroundActivityToken();
RELEASE_LOG_IF(sessionID.isAlwaysOnLoggingAllowed(), "%p - WebProcessProxy is taking a background assertion because the Web process is deleting Website data", this);
- m_pendingDeleteWebsiteDataCallbacks.add(callbackID, [this, token, completionHandler, sessionID] {
+ connection()->sendWithReply(Messages::WebProcess::DeleteWebsiteData(sessionID, dataTypes, modifiedSince), 0, RunLoop::main(), [this, token, completionHandler = WTFMove(completionHandler), sessionID](auto reply) {
completionHandler();
RELEASE_LOG_IF(sessionID.isAlwaysOnLoggingAllowed(), "%p - WebProcessProxy is releasing a background assertion because the Web process is done deleting Website data", this);
});
- send(Messages::WebProcess::DeleteWebsiteData(sessionID, dataTypes, modifiedSince, callbackID), 0);
}
void WebProcessProxy::deleteWebsiteDataForOrigins(SessionID sessionID, OptionSet<WebsiteDataType> dataTypes, const Vector<RefPtr<WebCore::SecurityOrigin>>& origins, std::function<void ()> completionHandler)
@@ -773,20 +739,17 @@
{
ASSERT(canSendMessage());
- uint64_t callbackID = generateCallbackID();
auto token = throttler().backgroundActivityToken();
RELEASE_LOG_IF(sessionID.isAlwaysOnLoggingAllowed(), "%p - WebProcessProxy is taking a background assertion because the Web process is deleting Website data for several origins", this);
- m_pendingDeleteWebsiteDataForOriginsCallbacks.add(callbackID, [this, token, completionHandler, sessionID] {
- completionHandler();
- RELEASE_LOG_IF(sessionID.isAlwaysOnLoggingAllowed(), "%p - WebProcessProxy is releasing a background assertion because the Web process is done deleting Website data for several origins", this);
- });
-
Vector<SecurityOriginData> originData;
for (auto& origin : origins)
originData.append(SecurityOriginData::fromSecurityOrigin(*origin));
- send(Messages::WebProcess::DeleteWebsiteDataForOrigins(sessionID, dataTypes, originData, callbackID), 0);
+ connection()->sendWithReply(Messages::WebProcess::DeleteWebsiteDataForOrigins(sessionID, dataTypes, originData), 0, RunLoop::main(), [this, token, completionHandler, sessionID](auto reply) {
+ completionHandler();
+ RELEASE_LOG_IF(sessionID.isAlwaysOnLoggingAllowed(), "%p - WebProcessProxy is releasing a background assertion because the Web process is done deleting Website data for several origins", this);
+ });
}
void WebProcessProxy::requestTermination()
Modified: trunk/Source/WebKit2/UIProcess/WebProcessProxy.h (205208 => 205209)
--- trunk/Source/WebKit2/UIProcess/WebProcessProxy.h 2016-08-30 23:01:13 UTC (rev 205208)
+++ trunk/Source/WebKit2/UIProcess/WebProcessProxy.h 2016-08-31 00:11:33 UTC (rev 205209)
@@ -170,9 +170,6 @@
void shouldTerminate(bool& shouldTerminate);
- void didDeleteWebsiteData(uint64_t callbackID);
- void didDeleteWebsiteDataForOrigins(uint64_t callbackID);
-
// Plugins
#if ENABLE(NETSCAPE_PLUGIN_API)
void getPlugins(bool refresh, Vector<WebCore::PluginInfo>& plugins, Vector<WebCore::PluginInfo>& applicationPlugins);
@@ -238,9 +235,6 @@
CustomProtocolManagerProxy m_customProtocolManagerProxy;
- HashMap<uint64_t, std::function<void ()>> m_pendingDeleteWebsiteDataCallbacks;
- HashMap<uint64_t, std::function<void ()>> m_pendingDeleteWebsiteDataForOriginsCallbacks;
-
int m_numberOfTimesSuddenTerminationWasDisabled;
ProcessThrottler m_throttler;
ProcessThrottler::BackgroundActivityToken m_tokenForHoldingLockedFiles;
Modified: trunk/Source/WebKit2/UIProcess/WebProcessProxy.messages.in (205208 => 205209)
--- trunk/Source/WebKit2/UIProcess/WebProcessProxy.messages.in 2016-08-30 23:01:13 UTC (rev 205208)
+++ trunk/Source/WebKit2/UIProcess/WebProcessProxy.messages.in 2016-08-31 00:11:33 UTC (rev 205209)
@@ -31,9 +31,6 @@
EnableSuddenTermination()
DisableSuddenTermination()
- DidDeleteWebsiteData(uint64_t callbackID)
- DidDeleteWebsiteDataForOrigins(uint64_t callbackID)
-
# Plugin messages.
#if ENABLE(NETSCAPE_PLUGIN_API)
GetPlugins(bool refresh) -> (Vector<WebCore::PluginInfo> plugins, Vector<WebCore::PluginInfo> applicationPlugins)
Modified: trunk/Source/WebKit2/WebProcess/WebProcess.cpp (205208 => 205209)
--- trunk/Source/WebKit2/WebProcess/WebProcess.cpp 2016-08-30 23:01:13 UTC (rev 205208)
+++ trunk/Source/WebKit2/WebProcess/WebProcess.cpp 2016-08-31 00:11:33 UTC (rev 205209)
@@ -1207,7 +1207,7 @@
}
}
-void WebProcess::deleteWebsiteData(SessionID sessionID, OptionSet<WebsiteDataType> websiteDataTypes, std::chrono::system_clock::time_point modifiedSince, uint64_t callbackID)
+void WebProcess::deleteWebsiteData(SessionID sessionID, OptionSet<WebsiteDataType> websiteDataTypes, std::chrono::system_clock::time_point modifiedSince)
{
UNUSED_PARAM(modifiedSince);
@@ -1217,11 +1217,9 @@
CrossOriginPreflightResultCache::singleton().empty();
}
-
- parentProcessConnection()->send(Messages::WebProcessProxy::DidDeleteWebsiteData(callbackID), 0);
}
-void WebProcess::deleteWebsiteDataForOrigins(WebCore::SessionID sessionID, OptionSet<WebsiteDataType> websiteDataTypes, const Vector<WebCore::SecurityOriginData>& originDatas, uint64_t callbackID)
+void WebProcess::deleteWebsiteDataForOrigins(WebCore::SessionID sessionID, OptionSet<WebsiteDataType> websiteDataTypes, const Vector<WebCore::SecurityOriginData>& originDatas)
{
if (websiteDataTypes.contains(WebsiteDataType::MemoryCache)) {
HashSet<RefPtr<SecurityOrigin>> origins;
@@ -1230,8 +1228,6 @@
MemoryCache::singleton().removeResourcesWithOrigins(sessionID, origins);
}
-
- parentProcessConnection()->send(Messages::WebProcessProxy::DidDeleteWebsiteDataForOrigins(callbackID), 0);
}
void WebProcess::setHiddenPageTimerThrottlingIncreaseLimit(int milliseconds)
Modified: trunk/Source/WebKit2/WebProcess/WebProcess.h (205208 => 205209)
--- trunk/Source/WebKit2/WebProcess/WebProcess.h 2016-08-30 23:01:13 UTC (rev 205208)
+++ trunk/Source/WebKit2/WebProcess/WebProcess.h 2016-08-31 00:11:33 UTC (rev 205209)
@@ -288,8 +288,8 @@
void releasePageCache();
void fetchWebsiteData(WebCore::SessionID, OptionSet<WebsiteDataType>, WebsiteData&);
- void deleteWebsiteData(WebCore::SessionID, OptionSet<WebsiteDataType>, std::chrono::system_clock::time_point modifiedSince, uint64_t callbackID);
- void deleteWebsiteDataForOrigins(WebCore::SessionID, OptionSet<WebsiteDataType>, const Vector<WebCore::SecurityOriginData>& origins, uint64_t callbackID);
+ void deleteWebsiteData(WebCore::SessionID, OptionSet<WebsiteDataType>, std::chrono::system_clock::time_point modifiedSince);
+ void deleteWebsiteDataForOrigins(WebCore::SessionID, OptionSet<WebsiteDataType>, const Vector<WebCore::SecurityOriginData>& origins);
void setMemoryCacheDisabled(bool);
Modified: trunk/Source/WebKit2/WebProcess/WebProcess.messages.in (205208 => 205209)
--- trunk/Source/WebKit2/WebProcess/WebProcess.messages.in 2016-08-30 23:01:13 UTC (rev 205208)
+++ trunk/Source/WebKit2/WebProcess/WebProcess.messages.in 2016-08-31 00:11:33 UTC (rev 205209)
@@ -77,8 +77,8 @@
ReleasePageCache()
FetchWebsiteData(WebCore::SessionID sessionID, OptionSet<WebKit::WebsiteDataType> websiteDataTypes) -> (struct WebKit::WebsiteData websiteData)
- DeleteWebsiteData(WebCore::SessionID sessionID, OptionSet<WebKit::WebsiteDataType> websiteDataTypes, std::chrono::system_clock::time_point modifiedSince, uint64_t callbackID)
- DeleteWebsiteDataForOrigins(WebCore::SessionID sessionID, OptionSet<WebKit::WebsiteDataType> websiteDataTypes, Vector<WebCore::SecurityOriginData> origins, uint64_t callbackID)
+ DeleteWebsiteData(WebCore::SessionID sessionID, OptionSet<WebKit::WebsiteDataType> websiteDataTypes, std::chrono::system_clock::time_point modifiedSince) -> ()
+ DeleteWebsiteDataForOrigins(WebCore::SessionID sessionID, OptionSet<WebKit::WebsiteDataType> websiteDataTypes, Vector<WebCore::SecurityOriginData> origins) -> ()
SetHiddenPageTimerThrottlingIncreaseLimit(int milliseconds)
SetProcessSuppressionEnabled(bool flag)