Diff
Modified: trunk/Source/WebKit2/ChangeLog (180631 => 180632)
--- trunk/Source/WebKit2/ChangeLog 2015-02-25 18:42:04 UTC (rev 180631)
+++ trunk/Source/WebKit2/ChangeLog 2015-02-25 18:56:48 UTC (rev 180632)
@@ -1,3 +1,39 @@
+2015-02-25 Anders Carlsson <[email protected]>
+
+ Add (unused for now) code to delete website data for a set of origins
+ https://bugs.webkit.org/show_bug.cgi?id=142019
+
+ Reviewed by Beth Dakin.
+
+ * UIProcess/WebProcessProxy.cpp:
+ (WebKit::WebProcessProxy::~WebProcessProxy):
+ Assert that there are no pending callbacks.
+
+ (WebKit::WebProcessProxy::connectionDidClose):
+ Invoke all the didDeleteWebsiteDataForOrigins callbacks.
+
+ (WebKit::WebProcessProxy::didDeleteWebsiteDataForOrigins):
+ Grab the didDeleteWebsiteDataForOrigins and invoke it.
+
+ (WebKit::WebProcessProxy::deleteWebsiteDataForOrigins):
+ Add the pending callback and send a DeleteWebsiteDataForOrigins to the web process.
+
+ * UIProcess/WebProcessProxy.h:
+ Add new members.
+
+ * UIProcess/WebProcessProxy.messages.in:
+ Add a DidDeleteWebsiteDataForOrigins message.
+
+ * WebProcess/WebProcess.cpp:
+ (WebKit::WebProcess::deleteWebsiteDataForOrigins):
+ For now, just send back a DidDeleteWebsiteDataForOrigins message.
+
+ * WebProcess/WebProcess.h:
+ Add new members.
+
+ * WebProcess/WebProcess.messages.in:
+ Add a DeleteWebsiteDataForOrigins message.
+
2015-02-25 Shivakumar JM <[email protected]>
Fix build warning in WebKit2/UIProcess module.
Modified: trunk/Source/WebKit2/UIProcess/WebProcessProxy.cpp (180631 => 180632)
--- trunk/Source/WebKit2/UIProcess/WebProcessProxy.cpp 2015-02-25 18:42:04 UTC (rev 180631)
+++ trunk/Source/WebKit2/UIProcess/WebProcessProxy.cpp 2015-02-25 18:56:48 UTC (rev 180632)
@@ -116,6 +116,7 @@
{
ASSERT(m_pendingFetchWebsiteDataCallbacks.isEmpty());
ASSERT(m_pendingDeleteWebsiteDataCallbacks.isEmpty());
+ ASSERT(m_pendingDeleteWebsiteDataForOriginsCallbacks.isEmpty());
if (m_webConnection)
m_webConnection->invalidate();
@@ -156,6 +157,10 @@
callback();
m_pendingDeleteWebsiteDataCallbacks.clear();
+ for (const auto& callback : m_pendingDeleteWebsiteDataForOriginsCallbacks.values())
+ callback();
+ m_pendingDeleteWebsiteDataForOriginsCallbacks.clear();
+
for (auto& page : m_pageMap.values())
page->connectionDidClose(connection);
}
@@ -615,6 +620,12 @@
callback();
}
+void WebProcessProxy::didDeleteWebsiteDataForOrigins(uint64_t callbackID)
+{
+ auto callback = m_pendingDeleteWebsiteDataForOriginsCallbacks.take(callbackID);
+ callback();
+}
+
void WebProcessProxy::updateTextCheckerState()
{
if (canSendMessage())
@@ -670,6 +681,20 @@
send(Messages::WebProcess::DeleteWebsiteData(sessionID, dataTypes, modifiedSince, callbackID), 0);
}
+void WebProcessProxy::deleteWebsiteDataForOrigins(SessionID sessionID, WebsiteDataTypes dataTypes, const Vector<RefPtr<WebCore::SecurityOrigin>>& origins, std::function<void ()> completionHandler)
+{
+ ASSERT(canSendMessage());
+
+ uint64_t callbackID = generateCallbackID();
+ m_pendingDeleteWebsiteDataForOriginsCallbacks.add(callbackID, WTF::move(completionHandler));
+
+ Vector<SecurityOriginData> originData;
+ for (auto& origin : origins)
+ originData.append(SecurityOriginData::fromSecurityOrigin(*origin));
+
+ send(Messages::WebProcess::DeleteWebsiteDataForOrigins(sessionID, dataTypes, originData, callbackID), 0);
+}
+
void WebProcessProxy::requestTermination()
{
if (state() != State::Running)
Modified: trunk/Source/WebKit2/UIProcess/WebProcessProxy.h (180631 => 180632)
--- trunk/Source/WebKit2/UIProcess/WebProcessProxy.h 2015-02-25 18:42:04 UTC (rev 180631)
+++ trunk/Source/WebKit2/UIProcess/WebProcessProxy.h 2015-02-25 18:56:48 UTC (rev 180632)
@@ -124,6 +124,7 @@
void fetchWebsiteData(WebCore::SessionID, WebsiteDataTypes, std::function<void (WebsiteData)> completionHandler);
void deleteWebsiteData(WebCore::SessionID, WebsiteDataTypes, std::chrono::system_clock::time_point modifiedSince, std::function<void ()> completionHandler);
+ void deleteWebsiteDataForOrigins(WebCore::SessionID, WebsiteDataTypes, const Vector<RefPtr<WebCore::SecurityOrigin>>& origins, std::function<void ()> completionHandler);
void enableSuddenTermination();
void disableSuddenTermination();
@@ -171,6 +172,7 @@
void didFetchWebsiteData(uint64_t callbackID, const WebsiteData&);
void didDeleteWebsiteData(uint64_t callbackID);
+ void didDeleteWebsiteDataForOrigins(uint64_t callbackID);
// Plugins
#if ENABLE(NETSCAPE_PLUGIN_API)
@@ -229,6 +231,7 @@
HashMap<uint64_t, std::function<void (WebsiteData)>> m_pendingFetchWebsiteDataCallbacks;
HashMap<uint64_t, std::function<void ()>> m_pendingDeleteWebsiteDataCallbacks;
+ HashMap<uint64_t, std::function<void ()>> m_pendingDeleteWebsiteDataForOriginsCallbacks;
int m_numberOfTimesSuddenTerminationWasDisabled;
std::unique_ptr<ProcessThrottler> m_throttler;
Modified: trunk/Source/WebKit2/UIProcess/WebProcessProxy.messages.in (180631 => 180632)
--- trunk/Source/WebKit2/UIProcess/WebProcessProxy.messages.in 2015-02-25 18:42:04 UTC (rev 180631)
+++ trunk/Source/WebKit2/UIProcess/WebProcessProxy.messages.in 2015-02-25 18:56:48 UTC (rev 180632)
@@ -31,6 +31,7 @@
DidFetchWebsiteData(uint64_t callbackID, struct WebKit::WebsiteData websiteData)
DidDeleteWebsiteData(uint64_t callbackID)
+ DidDeleteWebsiteDataForOrigins(uint64_t callbackID)
# Plugin messages.
#if ENABLE(NETSCAPE_PLUGIN_API)
Modified: trunk/Source/WebKit2/WebProcess/WebProcess.cpp (180631 => 180632)
--- trunk/Source/WebKit2/WebProcess/WebProcess.cpp 2015-02-25 18:42:04 UTC (rev 180631)
+++ trunk/Source/WebKit2/WebProcess/WebProcess.cpp 2015-02-25 18:56:48 UTC (rev 180632)
@@ -1160,6 +1160,13 @@
parentProcessConnection()->send(Messages::WebProcessProxy::DidDeleteWebsiteData(callbackID), 0);
}
+void WebProcess::deleteWebsiteDataForOrigins(WebCore::SessionID sessionID, uint64_t websiteDataTypes, const Vector<WebKit::SecurityOriginData>& origins, uint64_t callbackID)
+{
+ // FIXME: Actually delete something here.
+
+ parentProcessConnection()->send(Messages::WebProcessProxy::DidDeleteWebsiteDataForOrigins(callbackID), 0);
+}
+
#if !PLATFORM(COCOA)
void WebProcess::initializeProcessName(const ChildProcessInitializationParameters&)
{
Modified: trunk/Source/WebKit2/WebProcess/WebProcess.h (180631 => 180632)
--- trunk/Source/WebKit2/WebProcess/WebProcess.h 2015-02-25 18:42:04 UTC (rev 180631)
+++ trunk/Source/WebKit2/WebProcess/WebProcess.h 2015-02-25 18:56:48 UTC (rev 180632)
@@ -261,6 +261,7 @@
void fetchWebsiteData(WebCore::SessionID, uint64_t websiteDataTypes, uint64_t callbackID);
void deleteWebsiteData(WebCore::SessionID, uint64_t websiteDataTypes, std::chrono::system_clock::time_point modifiedSince, uint64_t callbackID);
+ void deleteWebsiteDataForOrigins(WebCore::SessionID, uint64_t websiteDataTypes, const Vector<WebKit::SecurityOriginData>& origins, uint64_t callbackID);
#if USE(SOUP)
void setIgnoreTLSErrors(bool);
Modified: trunk/Source/WebKit2/WebProcess/WebProcess.messages.in (180631 => 180632)
--- trunk/Source/WebKit2/WebProcess/WebProcess.messages.in 2015-02-25 18:42:04 UTC (rev 180631)
+++ trunk/Source/WebKit2/WebProcess/WebProcess.messages.in 2015-02-25 18:56:48 UTC (rev 180632)
@@ -81,6 +81,7 @@
FetchWebsiteData(WebCore::SessionID sessionID, uint64_t websiteDataTypes, uint64_t callbackID)
DeleteWebsiteData(WebCore::SessionID sessionID, uint64_t websiteDataTypes, std::chrono::system_clock::time_point modifiedSince, uint64_t callbackID)
+ DeleteWebsiteDataForOrigins(WebCore::SessionID sessionID, uint64_t websiteDataTypes, Vector<WebKit::SecurityOriginData> origins, uint64_t callbackID)
SetProcessSuppressionEnabled(bool flag)
#if PLATFORM(COCOA)