Title: [180632] trunk/Source/WebKit2
Revision
180632
Author
[email protected]
Date
2015-02-25 10:56:48 -0800 (Wed, 25 Feb 2015)

Log Message

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.

Modified Paths

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)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to