Title: [171622] trunk/Source/WebKit2
Revision
171622
Author
[email protected]
Date
2014-07-25 15:34:21 -0700 (Fri, 25 Jul 2014)

Log Message

Clean up WKOriginDataManager and get it messaging to the DatabaseProcess
https://bugs.webkit.org/show_bug.cgi?id=135035

Reviewed by Sam Weinig.

* DatabaseProcess/DatabaseProcess.cpp:
(WebKit::DatabaseProcess::DatabaseProcess): Instantiate the WebOriginDataManager, installing its message handler.
(WebKit::DatabaseProcess::didReceiveMessage): Try the message receiver map, which will try the WebOriginDataManager.
* DatabaseProcess/DatabaseProcess.h:
* DatabaseProcess/DatabaseProcess.messages.in:

* UIProcess/API/C/WKOriginDataManager.cpp:
(WKOriginDataManagerDeleteEntriesForOrigin): Updated to also take a callback.
(WKOriginDataManagerDeleteEntriesModifiedBetweenDates): Added.
(WKOriginDataManagerDeleteAllEntries): Updated to also take a callback.
(WKOriginDataManagerStartObservingChanges): Deleted.
(WKOriginDataManagerStopObservingChanges): Deleted.
(WKOriginDataManagerSetChangeClient): Deleted.
* UIProcess/API/C/WKOriginDataManager.h:

* UIProcess/Databases/DatabaseProcessProxy.cpp:
(WebKit::DatabaseProcessProxy::didReceiveMessage): Send messages to the WebOriginDataManagerProxy supplement if appropriate.
* UIProcess/Databases/DatabaseProcessProxy.h:
* UIProcess/Databases/DatabaseProcessProxy.messages.in:

* UIProcess/WebContext.cpp:
(WebKit::WebContext::WebContext): Instantiate the WebOriginDataManagerProxy supplement.
* UIProcess/WebContext.h:
(WebKit::WebContext::sendToDatabaseProcessRelaunchingIfNecessary):

* UIProcess/WebOriginDataManagerProxy.cpp:
(WebKit::WebOriginDataManagerProxy::contextDestroyed):
(WebKit::WebOriginDataManagerProxy::processDidClose):
(WebKit::WebOriginDataManagerProxy::getOrigins):
(WebKit::WebOriginDataManagerProxy::deleteEntriesForOrigin): Setup a callback with the message.
(WebKit::WebOriginDataManagerProxy::deleteEntriesModifiedBetweenDates): Added
(WebKit::WebOriginDataManagerProxy::didDeleteEntries): Call the callback.
(WebKit::WebOriginDataManagerProxy::deleteAllEntries): Setup a callback with the message.
(WebKit::WebOriginDataManagerProxy::didDeleteAllEntries): Call the callback.
(WebKit::WebOriginDataManagerProxy::startObservingChanges): Deleted.
(WebKit::WebOriginDataManagerProxy::stopObservingChanges): Deleted.
(WebKit::WebOriginDataManagerProxy::setChangeClient): Deleted.
(WebKit::WebOriginDataManagerProxy::didChange): Deleted.
* UIProcess/WebOriginDataManagerProxy.h:
* UIProcess/WebOriginDataManagerProxy.messages.in:

* UIProcess/WebOriginDataManagerProxyChangeClient.cpp: Removed.
* UIProcess/WebOriginDataManagerProxyChangeClient.h: Removed.

* WebKit2.xcodeproj/project.pbxproj:

* WebProcess/OriginData/WebOriginDataManager.cpp:
(WebKit::WebOriginDataManager::deleteEntriesForOrigin): Send the callback reply.
(WebKit::WebOriginDataManager::deleteEntriesModifiedBetweenDates): Added.
(WebKit::WebOriginDataManager::deleteAllEntries): Send the callback reply.
(WebKit::WebOriginDataManager::startObservingChanges): Deleted.
(WebKit::WebOriginDataManager::stopObservingChanges): Deleted.
* WebProcess/OriginData/WebOriginDataManager.h:
* WebProcess/OriginData/WebOriginDataManager.messages.in:

Modified Paths

Removed Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (171621 => 171622)


--- trunk/Source/WebKit2/ChangeLog	2014-07-25 22:08:28 UTC (rev 171621)
+++ trunk/Source/WebKit2/ChangeLog	2014-07-25 22:34:21 UTC (rev 171622)
@@ -1,3 +1,65 @@
+2014-07-25  Brady Eidson  <[email protected]>
+
+        Clean up WKOriginDataManager and get it messaging to the DatabaseProcess
+        https://bugs.webkit.org/show_bug.cgi?id=135035
+
+        Reviewed by Sam Weinig.
+
+        * DatabaseProcess/DatabaseProcess.cpp:
+        (WebKit::DatabaseProcess::DatabaseProcess): Instantiate the WebOriginDataManager, installing its message handler.
+        (WebKit::DatabaseProcess::didReceiveMessage): Try the message receiver map, which will try the WebOriginDataManager.
+        * DatabaseProcess/DatabaseProcess.h:
+        * DatabaseProcess/DatabaseProcess.messages.in:
+
+        * UIProcess/API/C/WKOriginDataManager.cpp:
+        (WKOriginDataManagerDeleteEntriesForOrigin): Updated to also take a callback.
+        (WKOriginDataManagerDeleteEntriesModifiedBetweenDates): Added.
+        (WKOriginDataManagerDeleteAllEntries): Updated to also take a callback.
+        (WKOriginDataManagerStartObservingChanges): Deleted.
+        (WKOriginDataManagerStopObservingChanges): Deleted.
+        (WKOriginDataManagerSetChangeClient): Deleted.
+        * UIProcess/API/C/WKOriginDataManager.h:
+
+        * UIProcess/Databases/DatabaseProcessProxy.cpp:
+        (WebKit::DatabaseProcessProxy::didReceiveMessage): Send messages to the WebOriginDataManagerProxy supplement if appropriate.
+        * UIProcess/Databases/DatabaseProcessProxy.h:
+        * UIProcess/Databases/DatabaseProcessProxy.messages.in:
+
+        * UIProcess/WebContext.cpp:
+        (WebKit::WebContext::WebContext): Instantiate the WebOriginDataManagerProxy supplement.
+        * UIProcess/WebContext.h:
+        (WebKit::WebContext::sendToDatabaseProcessRelaunchingIfNecessary):
+
+        * UIProcess/WebOriginDataManagerProxy.cpp:
+        (WebKit::WebOriginDataManagerProxy::contextDestroyed):
+        (WebKit::WebOriginDataManagerProxy::processDidClose):
+        (WebKit::WebOriginDataManagerProxy::getOrigins):
+        (WebKit::WebOriginDataManagerProxy::deleteEntriesForOrigin): Setup a callback with the message.
+        (WebKit::WebOriginDataManagerProxy::deleteEntriesModifiedBetweenDates): Added
+        (WebKit::WebOriginDataManagerProxy::didDeleteEntries): Call the callback.
+        (WebKit::WebOriginDataManagerProxy::deleteAllEntries): Setup a callback with the message.
+        (WebKit::WebOriginDataManagerProxy::didDeleteAllEntries): Call the callback.
+        (WebKit::WebOriginDataManagerProxy::startObservingChanges): Deleted.
+        (WebKit::WebOriginDataManagerProxy::stopObservingChanges): Deleted.
+        (WebKit::WebOriginDataManagerProxy::setChangeClient): Deleted.
+        (WebKit::WebOriginDataManagerProxy::didChange): Deleted.
+        * UIProcess/WebOriginDataManagerProxy.h:
+        * UIProcess/WebOriginDataManagerProxy.messages.in:
+
+        * UIProcess/WebOriginDataManagerProxyChangeClient.cpp: Removed.
+        * UIProcess/WebOriginDataManagerProxyChangeClient.h: Removed.
+
+        * WebKit2.xcodeproj/project.pbxproj:
+
+        * WebProcess/OriginData/WebOriginDataManager.cpp:
+        (WebKit::WebOriginDataManager::deleteEntriesForOrigin): Send the callback reply.
+        (WebKit::WebOriginDataManager::deleteEntriesModifiedBetweenDates): Added.
+        (WebKit::WebOriginDataManager::deleteAllEntries): Send the callback reply.
+        (WebKit::WebOriginDataManager::startObservingChanges): Deleted.
+        (WebKit::WebOriginDataManager::stopObservingChanges): Deleted.
+        * WebProcess/OriginData/WebOriginDataManager.h:
+        * WebProcess/OriginData/WebOriginDataManager.messages.in:
+
 2014-07-25  Gavin Barraclough  <[email protected]>
 
         Yosemite version number is 101000

Modified: trunk/Source/WebKit2/DatabaseProcess/DatabaseProcess.cpp (171621 => 171622)


--- trunk/Source/WebKit2/DatabaseProcess/DatabaseProcess.cpp	2014-07-25 22:08:28 UTC (rev 171621)
+++ trunk/Source/WebKit2/DatabaseProcess/DatabaseProcess.cpp	2014-07-25 22:34:21 UTC (rev 171622)
@@ -30,9 +30,12 @@
 
 #include "AsyncTask.h"
 #include "DatabaseProcessCreationParameters.h"
+#include "DatabaseProcessMessages.h"
 #include "DatabaseProcessProxyMessages.h"
 #include "DatabaseToWebProcessConnection.h"
 #include "UniqueIDBDatabase.h"
+#include "WebOriginDataManager.h"
+#include "WebOriginDataManagerMessages.h"
 #include <WebCore/FileSystem.h>
 #include <wtf/MainThread.h>
 
@@ -48,6 +51,7 @@
 
 DatabaseProcess::DatabaseProcess()
     : m_queue(adoptRef(*WorkQueue::create("com.apple.WebKit.DatabaseProcess").leakRef()))
+    , m_webOriginDataManager(std::make_unique<WebOriginDataManager>(this))
 {
 }
 
@@ -70,6 +74,17 @@
     RunLoop::current().stop();
 }
 
+void DatabaseProcess::didReceiveMessage(IPC::Connection* connection, IPC::MessageDecoder& decoder)
+{
+    if (messageReceiverMap().dispatchMessage(connection, decoder))
+        return;
+
+    if (decoder.messageReceiverName() == Messages::DatabaseProcess::messageReceiverName()) {
+        didReceiveDatabaseProcessMessage(connection, decoder);
+        return;
+    }
+}
+
 void DatabaseProcess::didReceiveInvalidMessage(IPC::Connection*, IPC::StringReference, IPC::StringReference)
 {
     RunLoop::current().stop();

Modified: trunk/Source/WebKit2/DatabaseProcess/DatabaseProcess.h (171621 => 171622)


--- trunk/Source/WebKit2/DatabaseProcess/DatabaseProcess.h	2014-07-25 22:08:28 UTC (rev 171621)
+++ trunk/Source/WebKit2/DatabaseProcess/DatabaseProcess.h	2014-07-25 22:34:21 UTC (rev 171622)
@@ -39,6 +39,7 @@
 class AsyncTask;
 class DatabaseToWebProcessConnection;
 class UniqueIDBDatabase;
+class WebOriginDataManager;
 
 struct DatabaseProcessCreationParameters;
 
@@ -47,6 +48,7 @@
     friend class NeverDestroyed<DatabaseProcess>;
 public:
     static DatabaseProcess& shared();
+    ~DatabaseProcess();
 
     const String& indexedDatabaseDirectory() const { return m_indexedDatabaseDirectory; }
 
@@ -58,8 +60,6 @@
 
     WorkQueue& queue() { return m_queue.get(); }
 
-    ~DatabaseProcess();
-
 private:
     DatabaseProcess();
 
@@ -74,6 +74,7 @@
     virtual void didReceiveMessage(IPC::Connection*, IPC::MessageDecoder&) override;
     virtual void didClose(IPC::Connection*) override;
     virtual void didReceiveInvalidMessage(IPC::Connection*, IPC::StringReference messageReceiverName, IPC::StringReference messageName) override;
+    void didReceiveDatabaseProcessMessage(IPC::Connection*, IPC::MessageDecoder&);
 
     // Message Handlers
     void initializeDatabaseProcess(const DatabaseProcessCreationParameters&);
@@ -95,6 +96,8 @@
 
     Deque<std::unique_ptr<AsyncTask>> m_databaseTasks;
     Mutex m_databaseTaskMutex;
+
+    std::unique_ptr<WebOriginDataManager> m_webOriginDataManager;
 };
 
 } // namespace WebKit

Modified: trunk/Source/WebKit2/DatabaseProcess/DatabaseProcess.messages.in (171621 => 171622)


--- trunk/Source/WebKit2/DatabaseProcess/DatabaseProcess.messages.in	2014-07-25 22:08:28 UTC (rev 171621)
+++ trunk/Source/WebKit2/DatabaseProcess/DatabaseProcess.messages.in	2014-07-25 22:34:21 UTC (rev 171622)
@@ -22,7 +22,7 @@
 
 #if ENABLE(DATABASE_PROCESS)
 
-messages -> DatabaseProcess {
+messages -> DatabaseProcess LegacyReceiver {
     # Initializes the DatabaseProcess with the correct parameters
     InitializeDatabaseProcess(WebKit::DatabaseProcessCreationParameters processCreationParameters)
 

Modified: trunk/Source/WebKit2/UIProcess/API/C/WKOriginDataManager.cpp (171621 => 171622)


--- trunk/Source/WebKit2/UIProcess/API/C/WKOriginDataManager.cpp	2014-07-25 22:08:28 UTC (rev 171621)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKOriginDataManager.cpp	2014-07-25 22:34:21 UTC (rev 171622)
@@ -41,27 +41,23 @@
     toImpl(originDataManagerRef)->getOrigins(types, toGenericCallbackFunction(context, callback));
 }
 
-void WKOriginDataManagerDeleteEntriesForOrigin(WKOriginDataManagerRef originDataManagerRef, WKOriginDataTypes types, WKSecurityOriginRef originRef)
+void WKOriginDataManagerDeleteEntriesForOrigin(WKOriginDataManagerRef originDataManagerRef, WKOriginDataTypes types, WKSecurityOriginRef originRef, void* context, WKOriginDataManagerDeleteEntriesCallbackFunction callback)
 {
-    toImpl(originDataManagerRef)->deleteEntriesForOrigin(types, toImpl(originRef));
+    toImpl(originDataManagerRef)->deleteEntriesForOrigin(types, toImpl(originRef), [context, callback](CallbackBase::Error error) {
+        callback(error != CallbackBase::Error::None ? toAPI(API::Error::create().get()) : 0, context);
+    });
 }
 
-void WKOriginDataManagerDeleteAllEntries(WKOriginDataManagerRef originDataManagerRef, WKOriginDataTypes types)
+void WKOriginDataManagerDeleteEntriesModifiedBetweenDates(WKOriginDataManagerRef originDataManagerRef, WKOriginDataTypes types, double startDate, double endDate, void* context, WKOriginDataManagerDeleteEntriesCallbackFunction callback)
 {
-    toImpl(originDataManagerRef)->deleteAllEntries(types);
+    toImpl(originDataManagerRef)->deleteEntriesModifiedBetweenDates(types, startDate, endDate, [context, callback](CallbackBase::Error error) {
+        callback(error != CallbackBase::Error::None ? toAPI(API::Error::create().get()) : 0, context);
+    });
 }
 
-void WKOriginDataManagerStartObservingChanges(WKOriginDataManagerRef originDataManagerRef, WKOriginDataTypes types)
+void WKOriginDataManagerDeleteAllEntries(WKOriginDataManagerRef originDataManagerRef, WKOriginDataTypes types, void* context, WKOriginDataManagerDeleteEntriesCallbackFunction callback)
 {
-    toImpl(originDataManagerRef)->startObservingChanges(types);
+    toImpl(originDataManagerRef)->deleteAllEntries(types, [context, callback](CallbackBase::Error error) {
+        callback(error != CallbackBase::Error::None ? toAPI(API::Error::create().get()) : 0, context);
+    });
 }
-
-void WKOriginDataManagerStopObservingChanges(WKOriginDataManagerRef originDataManagerRef, WKOriginDataTypes types)
-{
-    toImpl(originDataManagerRef)->stopObservingChanges(types);
-}
-
-void WKOriginDataManagerSetChangeClient(WKOriginDataManagerRef originDataManagerRef, const WKOriginDataManagerChangeClientBase *client)
-{
-    toImpl(originDataManagerRef)->setChangeClient(client);
-}

Modified: trunk/Source/WebKit2/UIProcess/API/C/WKOriginDataManager.h (171621 => 171622)


--- trunk/Source/WebKit2/UIProcess/API/C/WKOriginDataManager.h	2014-07-25 22:08:28 UTC (rev 171621)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKOriginDataManager.h	2014-07-25 22:34:21 UTC (rev 171622)
@@ -35,13 +35,14 @@
 enum {
     kWKApplicationCacheOriginData = 1 << 0,
     kWKCookieOriginData = 1 << 1,
-    kWKDatabaseOriginData = 1 << 2,
+    kWKIndexedDatabaseData = 1 << 2,
     kWKKeyValueStorageOriginData = 1 << 3,
     kWKMediaCacheOriginData = 1 << 4,
     kWKPluginDataOriginData = 1 << 5,
     kWKResourceCacheOriginData = 1 << 6,
+    kWKWebSQLDatabaseOriginData = 1 << 7,
 
-    kWKAllOriginData = (1 << 7) - 1
+    kWKAllOriginData = 0xFFFFFFFF
 };
 typedef uint32_t WKOriginDataTypes;
 
@@ -50,36 +51,11 @@
 typedef void (*WKOriginDataManagerGetOriginsFunction)(WKArrayRef, WKErrorRef, void*);
 WK_EXPORT void WKOriginDataManagerGetOrigins(WKOriginDataManagerRef originDataManager, WKOriginDataTypes types, void* context, WKOriginDataManagerGetOriginsFunction function);
 
-WK_EXPORT void WKOriginDataManagerDeleteEntriesForOrigin(WKOriginDataManagerRef originDataManager, WKOriginDataTypes types, WKSecurityOriginRef origin);
-WK_EXPORT void WKOriginDataManagerDeleteAllEntries(WKOriginDataManagerRef originDataManager, WKOriginDataTypes types);
+typedef void (*WKOriginDataManagerDeleteEntriesCallbackFunction)(WKErrorRef, void*);
+WK_EXPORT void WKOriginDataManagerDeleteEntriesForOrigin(WKOriginDataManagerRef originDataManager, WKOriginDataTypes types, WKSecurityOriginRef origin, void* context, WKOriginDataManagerDeleteEntriesCallbackFunction function);
+WK_EXPORT void WKOriginDataManagerDeleteEntriesModifiedBetweenDates(WKOriginDataManagerRef originDataManager, WKOriginDataTypes types, double startDate, double endDate, void* context, WKOriginDataManagerDeleteEntriesCallbackFunction function);
+WK_EXPORT void WKOriginDataManagerDeleteAllEntries(WKOriginDataManagerRef originDataManager, WKOriginDataTypes types, void* context, WKOriginDataManagerDeleteEntriesCallbackFunction function);
 
-// OriginDataManager Client
-typedef void (*WKOriginDataManagerChangeCallback)(WKOriginDataManagerRef originDataManager, const void *clientInfo);
-
-typedef struct WKOriginDataManagerChangeClientBase {
-    const void *                                                        clientInfo;
-    int                                                                 version;
-} WKOriginDataManagerChangeClientBase;
-
-typedef struct WKOriginDataManagerChangeClientV0 {
-    WKOriginDataManagerChangeClientBase                                 base;
-
-    // Version 0.
-    WKOriginDataManagerChangeCallback                                   didChange;
-} WKOriginDataManagerChangeClientV0;
-
-enum { kWKOriginDataManagerChangeClientVersion = 0 };
-typedef struct WKOriginDataManagerChangeClient {
-    int                                                                 version;
-    const void *                                                        clientInfo;
-
-    // Version 0.
-    WKOriginDataManagerChangeCallback                                   didChange;
-} WKOriginDataManagerChangeClient WK_DEPRECATED("Use an explicit versioned struct instead");
-
-WK_EXPORT void WKOriginDataManagerStartObservingChanges(WKOriginDataManagerRef originDataManager, WKOriginDataTypes types);
-WK_EXPORT void WKOriginDataManagerStopObservingChanges(WKOriginDataManagerRef originDataManager, WKOriginDataTypes types);
-WK_EXPORT void WKOriginDataManagerSetChangeClient(WKOriginDataManagerRef originDataManger, const WKOriginDataManagerChangeClientBase* client);
 #ifdef __cplusplus
 }
 #endif

Modified: trunk/Source/WebKit2/UIProcess/Databases/DatabaseProcessProxy.cpp (171621 => 171622)


--- trunk/Source/WebKit2/UIProcess/Databases/DatabaseProcessProxy.cpp	2014-07-25 22:08:28 UTC (rev 171621)
+++ trunk/Source/WebKit2/UIProcess/Databases/DatabaseProcessProxy.cpp	2014-07-25 22:34:21 UTC (rev 171622)
@@ -27,7 +27,10 @@
 #include "DatabaseProcessProxy.h"
 
 #include "DatabaseProcessMessages.h"
+#include "DatabaseProcessProxyMessages.h"
 #include "WebContext.h"
+#include "WebOriginDataManagerProxy.h"
+#include "WebOriginDataManagerProxyMessages.h"
 
 #if ENABLE(DATABASE_PROCESS)
 
@@ -66,6 +69,19 @@
 {
 }
 
+void DatabaseProcessProxy::didReceiveMessage(IPC::Connection* connection, IPC::MessageDecoder& decoder)
+{
+    if (decoder.messageReceiverName() == Messages::DatabaseProcessProxy::messageReceiverName()) {
+        didReceiveDatabaseProcessProxyMessage(connection, decoder);
+        return;
+    }
+
+    if (decoder.messageReceiverName() == Messages::WebOriginDataManagerProxy::messageReceiverName()) {
+        m_webContext->supplement<WebOriginDataManagerProxy>()->didReceiveMessage(connection, decoder);
+        return;
+    }
+}
+
 void DatabaseProcessProxy::getDatabaseProcessConnection(PassRefPtr<Messages::WebProcessProxy::GetDatabaseProcessConnection::DelayedReply> reply)
 {
     m_pendingConnectionReplies.append(reply);

Modified: trunk/Source/WebKit2/UIProcess/Databases/DatabaseProcessProxy.h (171621 => 171622)


--- trunk/Source/WebKit2/UIProcess/Databases/DatabaseProcessProxy.h	2014-07-25 22:08:28 UTC (rev 171621)
+++ trunk/Source/WebKit2/UIProcess/Databases/DatabaseProcessProxy.h	2014-07-25 22:34:21 UTC (rev 171622)
@@ -57,6 +57,8 @@
     virtual void didClose(IPC::Connection*) override;
     virtual void didReceiveInvalidMessage(IPC::Connection*, IPC::StringReference messageReceiverName, IPC::StringReference messageName) override;
 
+    void didReceiveDatabaseProcessProxyMessage(IPC::Connection*, IPC::MessageDecoder&);
+
     // Message handlers
     void didCreateDatabaseToWebProcessConnection(const IPC::Attachment&);
 

Modified: trunk/Source/WebKit2/UIProcess/Databases/DatabaseProcessProxy.messages.in (171621 => 171622)


--- trunk/Source/WebKit2/UIProcess/Databases/DatabaseProcessProxy.messages.in	2014-07-25 22:08:28 UTC (rev 171621)
+++ trunk/Source/WebKit2/UIProcess/Databases/DatabaseProcessProxy.messages.in	2014-07-25 22:34:21 UTC (rev 171622)
@@ -22,7 +22,7 @@
 
 #if ENABLE(DATABASE_PROCESS)
 
-messages -> DatabaseProcessProxy {
+messages -> DatabaseProcessProxy LegacyReceiver {
     DidCreateDatabaseToWebProcessConnection(IPC::Attachment connectionIdentifier)
 }
 

Modified: trunk/Source/WebKit2/UIProcess/WebContext.cpp (171621 => 171622)


--- trunk/Source/WebKit2/UIProcess/WebContext.cpp	2014-07-25 22:08:28 UTC (rev 171621)
+++ trunk/Source/WebKit2/UIProcess/WebContext.cpp	2014-07-25 22:34:21 UTC (rev 171622)
@@ -78,6 +78,7 @@
 #if ENABLE(DATABASE_PROCESS)
 #include "DatabaseProcessCreationParameters.h"
 #include "DatabaseProcessMessages.h"
+#include "WebOriginDataManagerProxy.h"
 #endif
 
 #if ENABLE(NETWORK_PROCESS)
@@ -217,6 +218,9 @@
 #if ENABLE(BATTERY_STATUS)
     addSupplement<WebBatteryManagerProxy>();
 #endif
+#if ENABLE(DATABASE_PROCESS)
+    addSupplement<WebOriginDataManagerProxy>();
+#endif
 
     contexts().append(this);
 

Modified: trunk/Source/WebKit2/UIProcess/WebContext.h (171621 => 171622)


--- trunk/Source/WebKit2/UIProcess/WebContext.h	2014-07-25 22:08:28 UTC (rev 171621)
+++ trunk/Source/WebKit2/UIProcess/WebContext.h	2014-07-25 22:34:21 UTC (rev 171622)
@@ -303,6 +303,7 @@
     void ensureDatabaseProcess();
     void getDatabaseProcessConnection(PassRefPtr<Messages::WebProcessProxy::GetDatabaseProcessConnection::DelayedReply>);
     void databaseProcessCrashed(DatabaseProcessProxy*);
+    template<typename T> void sendToDatabaseProcessRelaunchingIfNecessary(T&& message);
 #endif
 
 #if PLATFORM(COCOA)
@@ -615,7 +616,16 @@
     ASSERT_NOT_REACHED();
 }
 
+#if ENABLE(DATABASE_PROCESS)
 template<typename T>
+void WebContext::sendToDatabaseProcessRelaunchingIfNecessary(T&& message)
+{
+    ensureDatabaseProcess();
+    m_databaseProcess->send(std::forward<T>(message), 0);
+}
+#endif
+
+template<typename T>
 void WebContext::sendToAllProcesses(const T& message)
 {
     size_t processCount = m_processes.size();

Modified: trunk/Source/WebKit2/UIProcess/WebOriginDataManagerProxy.cpp (171621 => 171622)


--- trunk/Source/WebKit2/UIProcess/WebOriginDataManagerProxy.cpp	2014-07-25 22:08:28 UTC (rev 171621)
+++ trunk/Source/WebKit2/UIProcess/WebOriginDataManagerProxy.cpp	2014-07-25 22:34:21 UTC (rev 171622)
@@ -102,53 +102,87 @@
     performAPICallbackWithSecurityOriginDataVector(originDatas, callback.get());
 }
 
-void WebOriginDataManagerProxy::deleteEntriesForOrigin(WKOriginDataTypes types, WebSecurityOrigin* origin)
+void WebOriginDataManagerProxy::deleteEntriesForOrigin(WKOriginDataTypes types, WebSecurityOrigin* origin, std::function<void (CallbackBase::Error)> callbackFunction)
 {
-    if (!context())
+    if (!(types & kWKIndexedDatabaseData))
         return;
 
+    // FIXME: Right now we only support IndexedDatabase data so we know that we're only sending this request to the DatabaseProcess.
+    // That's why having one single callback works.
+    // In the future when we message N-processes we'll have to wait for all N replies before responding to the client.
+
+    RefPtr<VoidCallback> callback = VoidCallback::create(WTF::move(callbackFunction));
+
+    if (!context()) {
+        callback->invalidate();
+        return;
+    }
+
+    uint64_t callbackID = callback->callbackID();
+    m_voidCallbacks.set(callbackID, callback.release());
+
     SecurityOriginData securityOriginData;
     securityOriginData.protocol = origin->securityOrigin().protocol();
     securityOriginData.host = origin->securityOrigin().host();
     securityOriginData.port = origin->securityOrigin().port();
 
-    // FIXME (Multi-WebProcess): <rdar://problem/12239765> Make manipulating cache information work with per-tab WebProcess.
-    context()->sendToAllProcessesRelaunchingThemIfNecessary(Messages::WebOriginDataManager::DeleteEntriesForOrigin(types, securityOriginData));
+    context()->sendToDatabaseProcessRelaunchingIfNecessary(Messages::WebOriginDataManager::DeleteEntriesForOrigin(types, securityOriginData, callbackID));
 }
 
-void WebOriginDataManagerProxy::deleteAllEntries(WKOriginDataTypes types)
+void WebOriginDataManagerProxy::deleteEntriesModifiedBetweenDates(WKOriginDataTypes types, double startDate, double endDate, std::function<void (CallbackBase::Error)> callbackFunction)
 {
-    if (!context())
+    if (!(types & kWKIndexedDatabaseData))
         return;
 
-    // FIXME (Multi-WebProcess): <rdar://problem/12239765> Make manipulating cache information work with per-tab WebProcess.
-    context()->sendToAllProcessesRelaunchingThemIfNecessary(Messages::WebOriginDataManager::DeleteAllEntries(types));
-}
+    // FIXME: Right now we only support IndexedDatabase data so we know that we're only sending this request to the DatabaseProcess.
+    // That's why having one single callback works.
+    // In the future when we message N-processes we'll have to wait for all N replies before responding to the client.
 
-void WebOriginDataManagerProxy::startObservingChanges(WKOriginDataTypes types)
-{
-    if (!context())
+    RefPtr<VoidCallback> callback = VoidCallback::create(WTF::move(callbackFunction));
+
+    if (!context()) {
+        callback->invalidate();
         return;
+    }
 
-    context()->sendToAllProcessesRelaunchingThemIfNecessary(Messages::WebOriginDataManager::StartObservingChanges(types));
+    uint64_t callbackID = callback->callbackID();
+    m_voidCallbacks.set(callbackID, callback.release());
+
+    context()->sendToDatabaseProcessRelaunchingIfNecessary(Messages::WebOriginDataManager::DeleteEntriesModifiedBetweenDates(types, startDate, endDate, callbackID));
 }
 
-void WebOriginDataManagerProxy::stopObservingChanges(WKOriginDataTypes types)
+void WebOriginDataManagerProxy::didDeleteEntries(uint64_t callbackID)
 {
-    if (!context())
+    RefPtr<VoidCallback> callback = m_voidCallbacks.take(callbackID);
+    callback->performCallback();
+}
+
+void WebOriginDataManagerProxy::deleteAllEntries(WKOriginDataTypes types, std::function<void (CallbackBase::Error)> callbackFunction)
+{
+    if (!(types & kWKIndexedDatabaseData))
         return;
 
-    context()->sendToAllProcessesRelaunchingThemIfNecessary(Messages::WebOriginDataManager::StartObservingChanges(types));
-}
+    // FIXME: Right now we only support IndexedDatabase data so we know that we're only sending this request to the DatabaseProcess.
+    // That's why having one single callback works.
+    // In the future when we message N-processes we'll have to wait for all N replies before responding to the client.
 
-void WebOriginDataManagerProxy::setChangeClient(const WKOriginDataManagerChangeClientBase *client)
-{
-    m_client.initialize(client);
+    RefPtr<VoidCallback> callback = VoidCallback::create(WTF::move(callbackFunction));
+
+    if (!context()) {
+        callback->invalidate();
+        return;
+    }
+
+    uint64_t callbackID = callback->callbackID();
+    m_voidCallbacks.set(callbackID, callback.release());
+
+    context()->sendToDatabaseProcessRelaunchingIfNecessary(Messages::WebOriginDataManager::DeleteAllEntries(types, callbackID));
 }
 
-void WebOriginDataManagerProxy::didChange()
+void WebOriginDataManagerProxy::didDeleteAllEntries(uint64_t callbackID)
 {
-    m_client.didChange(this);
+    RefPtr<VoidCallback> callback = m_voidCallbacks.take(callbackID);
+    callback->performCallback();
 }
 
 } // namespace WebKit

Modified: trunk/Source/WebKit2/UIProcess/WebOriginDataManagerProxy.h (171621 => 171622)


--- trunk/Source/WebKit2/UIProcess/WebOriginDataManagerProxy.h	2014-07-25 22:08:28 UTC (rev 171621)
+++ trunk/Source/WebKit2/UIProcess/WebOriginDataManagerProxy.h	2014-07-25 22:34:21 UTC (rev 171622)
@@ -31,7 +31,6 @@
 #include "MessageReceiver.h"
 #include "WKOriginDataManager.h"
 #include "WebContextSupplement.h"
-#include "WebOriginDataManagerProxyChangeClient.h"
 #include <wtf/PassRefPtr.h>
 #include <wtf/RefPtr.h>
 #include <wtf/Vector.h>
@@ -55,21 +54,22 @@
     virtual ~WebOriginDataManagerProxy();
 
     void getOrigins(WKOriginDataTypes, std::function<void (API::Array*, CallbackBase::Error)>);
-    void deleteEntriesForOrigin(WKOriginDataTypes, WebSecurityOrigin*);
-    void deleteAllEntries(WKOriginDataTypes);
+    void deleteEntriesForOrigin(WKOriginDataTypes, WebSecurityOrigin*, std::function<void (CallbackBase::Error)>);
+    void deleteEntriesModifiedBetweenDates(WKOriginDataTypes, double startDate, double endDate, std::function<void (CallbackBase::Error)>);
+    void deleteAllEntries(WKOriginDataTypes, std::function<void (CallbackBase::Error)>);
 
-    void startObservingChanges(WKOriginDataTypes);
-    void stopObservingChanges(WKOriginDataTypes);
-    void setChangeClient(const WKOriginDataManagerChangeClientBase*);
-
     using API::Object::ref;
     using API::Object::deref;
 
+    // IPC::MessageReceiver
+    virtual void didReceiveMessage(IPC::Connection*, IPC::MessageDecoder&) override;
+
 private:
     explicit WebOriginDataManagerProxy(WebContext*);
 
     void didGetOrigins(const Vector<SecurityOriginData>&, uint64_t callbackID);
-    void didChange();
+    void didDeleteEntries(uint64_t callbackID);
+    void didDeleteAllEntries(uint64_t callbackID);
 
     // WebContextSupplement
     virtual void contextDestroyed() override;
@@ -78,12 +78,8 @@
     virtual void refWebContextSupplement() override;
     virtual void derefWebContextSupplement() override;
 
-    // IPC::MessageReceiver
-    virtual void didReceiveMessage(IPC::Connection*, IPC::MessageDecoder&) override;
-
     HashMap<uint64_t, RefPtr<ArrayCallback>> m_arrayCallbacks;
-
-    WebOriginDataManagerProxyChangeClient m_client;
+    HashMap<uint64_t, RefPtr<VoidCallback>> m_voidCallbacks;
 };
 
 } // namespace WebKit

Modified: trunk/Source/WebKit2/UIProcess/WebOriginDataManagerProxy.messages.in (171621 => 171622)


--- trunk/Source/WebKit2/UIProcess/WebOriginDataManagerProxy.messages.in	2014-07-25 22:08:28 UTC (rev 171621)
+++ trunk/Source/WebKit2/UIProcess/WebOriginDataManagerProxy.messages.in	2014-07-25 22:34:21 UTC (rev 171622)
@@ -1,4 +1,4 @@
-# Copyright (C) 2011 Apple Inc. All rights reserved.
+# Copyright (C) 2011, 2014 Apple Inc. All rights reserved.
 #
 # Redistribution and use in source and binary forms, with or without
 # modification, are permitted provided that the following conditions
@@ -22,5 +22,6 @@
 
 messages -> WebOriginDataManagerProxy {
     DidGetOrigins(Vector<WebKit::SecurityOriginData> originIdentifiers, uint64_t callbackID);
-    DidChange()
+    DidDeleteEntries(uint64_t callbackID);
+    DidDeleteAllEntries(uint64_t callbackID);
 }

Deleted: trunk/Source/WebKit2/UIProcess/WebOriginDataManagerProxyChangeClient.cpp (171621 => 171622)


--- trunk/Source/WebKit2/UIProcess/WebOriginDataManagerProxyChangeClient.cpp	2014-07-25 22:08:28 UTC (rev 171621)
+++ trunk/Source/WebKit2/UIProcess/WebOriginDataManagerProxyChangeClient.cpp	2014-07-25 22:34:21 UTC (rev 171622)
@@ -1,41 +0,0 @@
-/*
- * Copyright (C) 2013 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "WebOriginDataManagerProxyChangeClient.h"
-
-#include "WKAPICast.h"
-
-namespace WebKit {
-
-void WebOriginDataManagerProxyChangeClient::didChange(WebOriginDataManagerProxy* originDataManager)
-{
-    if (!m_client.didChange)
-        return;
-
-    m_client.didChange(toAPI(originDataManager), m_client.base.clientInfo);
-}
-
-} // namespace WebKit

Deleted: trunk/Source/WebKit2/UIProcess/WebOriginDataManagerProxyChangeClient.h (171621 => 171622)


--- trunk/Source/WebKit2/UIProcess/WebOriginDataManagerProxyChangeClient.h	2014-07-25 22:08:28 UTC (rev 171621)
+++ trunk/Source/WebKit2/UIProcess/WebOriginDataManagerProxyChangeClient.h	2014-07-25 22:34:21 UTC (rev 171622)
@@ -1,50 +0,0 @@
-/*
- * Copyright (C) 2013 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef WebOriginDataManagerProxyChangeClient_h
-#define WebOriginDataManagerProxyChangeClient_h
-
-#include "APIClient.h"
-#include "WKOriginDataManager.h"
-#include <wtf/Forward.h>
-
-namespace API {
-template<> struct ClientTraits<WKOriginDataManagerChangeClientBase> {
-    typedef std::tuple<WKOriginDataManagerChangeClientV0> Versions;
-};
-}
-
-namespace WebKit {
-
-class WebOriginDataManagerProxy;
-
-class WebOriginDataManagerProxyChangeClient : public API::Client<WKOriginDataManagerChangeClientBase> {
-public:
-    void didChange(WebOriginDataManagerProxy*);
-};
-
-} // namespace WebKit
-
-#endif // WebOriginDataManagerProxyChangeClient_h

Modified: trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj (171621 => 171622)


--- trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj	2014-07-25 22:08:28 UTC (rev 171621)
+++ trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj	2014-07-25 22:34:21 UTC (rev 171622)
@@ -789,6 +789,7 @@
 		3F889D171887859300FEADAF /* WebVideoFullscreenManager.mm in Sources */ = {isa = PBXBuildFile; fileRef = 3F889D0D1887699C00FEADAF /* WebVideoFullscreenManager.mm */; };
 		4F601432155C5AA2001FBDE0 /* BlockingResponseMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F601430155C5A32001FBDE0 /* BlockingResponseMap.h */; };
 		51021E9C12B16788005C033C /* WebContextMenuClientMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 51021E9B12B16788005C033C /* WebContextMenuClientMac.mm */; };
+		510274321981AF8E008165ED /* WKOriginDataManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 755422BA18062B9C0046F6A8 /* WKOriginDataManager.h */; settings = {ATTRIBUTES = (Private, ); }; };
 		51032F18180F73BB00961BB7 /* WebToDatabaseProcessConnection.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51032F16180F73BB00961BB7 /* WebToDatabaseProcessConnection.cpp */; };
 		51032F19180F73BB00961BB7 /* WebToDatabaseProcessConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 51032F17180F73BB00961BB7 /* WebToDatabaseProcessConnection.h */; };
 		51032F1D180F791700961BB7 /* DatabaseToWebProcessConnectionMessageReceiver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51032F1B180F791700961BB7 /* DatabaseToWebProcessConnectionMessageReceiver.cpp */; };
@@ -1018,8 +1019,6 @@
 		755422C418062BF90046F6A8 /* WebOriginDataManagerProxy.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 755422BE18062BE40046F6A8 /* WebOriginDataManagerProxy.cpp */; };
 		755422CB180650020046F6A8 /* WebOriginDataManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 755422C618064FFC0046F6A8 /* WebOriginDataManager.cpp */; };
 		755422CC180773CE0046F6A8 /* WebOriginDataManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 755422C718064FFC0046F6A8 /* WebOriginDataManager.h */; };
-		759CCD581808F1640078E8A8 /* WebOriginDataManagerProxyChangeClient.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 759CCD541808F1600078E8A8 /* WebOriginDataManagerProxyChangeClient.cpp */; };
-		759CCD591808F1690078E8A8 /* WebOriginDataManagerProxyChangeClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 759CCD551808F1600078E8A8 /* WebOriginDataManagerProxyChangeClient.h */; };
 		759CCD5A1808F6160078E8A8 /* WebOriginDataManagerProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = 755422BF18062BE40046F6A8 /* WebOriginDataManagerProxy.h */; };
 		75A8D2C8187CCFAB00C39C9E /* _WKWebsiteDataStore.h in Headers */ = {isa = PBXBuildFile; fileRef = 75A8D2C4187CCF9F00C39C9E /* _WKWebsiteDataStore.h */; settings = {ATTRIBUTES = (Private, ); }; };
 		75A8D2C9187CCFAF00C39C9E /* _WKWebsiteDataStore.mm in Sources */ = {isa = PBXBuildFile; fileRef = 75A8D2C5187CCF9F00C39C9E /* _WKWebsiteDataStore.mm */; };
@@ -3069,8 +3068,6 @@
 		755422C618064FFC0046F6A8 /* WebOriginDataManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = WebOriginDataManager.cpp; path = OriginData/WebOriginDataManager.cpp; sourceTree = "<group>"; };
 		755422C718064FFC0046F6A8 /* WebOriginDataManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WebOriginDataManager.h; path = OriginData/WebOriginDataManager.h; sourceTree = "<group>"; };
 		755422C818064FFC0046F6A8 /* WebOriginDataManager.messages.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = WebOriginDataManager.messages.in; path = OriginData/WebOriginDataManager.messages.in; sourceTree = "<group>"; };
-		759CCD541808F1600078E8A8 /* WebOriginDataManagerProxyChangeClient.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebOriginDataManagerProxyChangeClient.cpp; sourceTree = "<group>"; };
-		759CCD551808F1600078E8A8 /* WebOriginDataManagerProxyChangeClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebOriginDataManagerProxyChangeClient.h; sourceTree = "<group>"; };
 		75A8D2C4187CCF9F00C39C9E /* _WKWebsiteDataStore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = _WKWebsiteDataStore.h; sourceTree = "<group>"; };
 		75A8D2C5187CCF9F00C39C9E /* _WKWebsiteDataStore.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = _WKWebsiteDataStore.mm; sourceTree = "<group>"; };
 		75A8D2D0187D17BF00C39C9E /* WKSessionRef.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WKSessionRef.cpp; sourceTree = "<group>"; };
@@ -5888,8 +5885,6 @@
 				755422BF18062BE40046F6A8 /* WebOriginDataManagerProxy.h */,
 				755422BE18062BE40046F6A8 /* WebOriginDataManagerProxy.cpp */,
 				755422C018062BE40046F6A8 /* WebOriginDataManagerProxy.messages.in */,
-				759CCD541808F1600078E8A8 /* WebOriginDataManagerProxyChangeClient.cpp */,
-				759CCD551808F1600078E8A8 /* WebOriginDataManagerProxyChangeClient.h */,
 				5153569A1291B1D2000749DC /* WebPageContextMenuClient.cpp */,
 				5153569B1291B1D2000749DC /* WebPageContextMenuClient.h */,
 				BC7B6205129A0A6700D174A4 /* WebPageGroup.cpp */,
@@ -7369,6 +7364,7 @@
 				1A6420E512DCE2FF00CAAE2C /* ShareableBitmap.h in Headers */,
 				51217461164C20E30037A5C1 /* ShareableResource.h in Headers */,
 				1A24BED5120894D100FBB059 /* SharedMemory.h in Headers */,
+				510274321981AF8E008165ED /* WKOriginDataManager.h in Headers */,
 				5272B28B1406985D0096A5D0 /* StatisticsData.h in Headers */,
 				514BDED316C98EDD00E4E25E /* StatisticsRequest.h in Headers */,
 				1AD3306F16B1D991004F60E7 /* StorageAreaImpl.h in Headers */,
@@ -7803,7 +7799,6 @@
 				373CEAD81859553F008C363D /* WKPagePolicyClientInternal.h in Headers */,
 				1A66BF8F18A052ED002071B4 /* WKWebViewInternal.h in Headers */,
 				BC40761A124FF0370068F20A /* WKStringCF.h in Headers */,
-				759CCD591808F1690078E8A8 /* WebOriginDataManagerProxyChangeClient.h in Headers */,
 				BC9099801256A98200083756 /* WKStringPrivate.h in Headers */,
 				5175095A1897249700408FAC /* IDBIdentifier.h in Headers */,
 				1A3C888018A5ABAE00C4C962 /* WKPreferencesInternal.h in Headers */,
@@ -9376,7 +9371,6 @@
 				1AE52F9119201DA700A1FA37 /* APIContextConfiguration.cpp in Sources */,
 				3309345A1315B9980097A7BC /* WKCookieManager.cpp in Sources */,
 				512F58F912A88A5400629530 /* WKCredential.cpp in Sources */,
-				759CCD581808F1640078E8A8 /* WebOriginDataManagerProxyChangeClient.cpp in Sources */,
 				1A5B1C501898606F004FCF9B /* WKNavigation.mm in Sources */,
 				BC4075F7124FF0270068F20A /* WKData.cpp in Sources */,
 				F62A766112B1ABED0005F1B6 /* WKDatabaseManager.cpp in Sources */,

Modified: trunk/Source/WebKit2/WebProcess/OriginData/WebOriginDataManager.cpp (171621 => 171622)


--- trunk/Source/WebKit2/WebProcess/OriginData/WebOriginDataManager.cpp	2014-07-25 22:08:28 UTC (rev 171621)
+++ trunk/Source/WebKit2/WebProcess/OriginData/WebOriginDataManager.cpp	2014-07-25 22:34:21 UTC (rev 171622)
@@ -76,28 +76,24 @@
     m_childProcess->send(Messages::WebOriginDataManagerProxy::DidGetOrigins(identifiers, callbackID), 0);
 }
 
-void WebOriginDataManager::deleteEntriesForOrigin(WKOriginDataTypes, const SecurityOriginData& originData)
+void WebOriginDataManager::deleteEntriesForOrigin(WKOriginDataTypes, const SecurityOriginData& origindata, uint64_t callbackID)
 {
-    RefPtr<SecurityOrigin> origin = SecurityOrigin::create(originData.protocol, originData.host, originData.port);
-    if (!origin)
-        return;
-
     // FIXME: delete entries for origin
+    m_childProcess->send(Messages::WebOriginDataManagerProxy::DidDeleteEntries(callbackID), 0);
 }
 
-void WebOriginDataManager::deleteAllEntries(WKOriginDataTypes)
+void WebOriginDataManager::deleteEntriesModifiedBetweenDates(WKOriginDataTypes, double, double, uint64_t callbackID)
 {
-    // FIXME: delete entries
-}
+    // FIXME: delete entries modified between the start and end date
 
-void WebOriginDataManager::startObservingChanges(WKOriginDataTypes)
-{
-    // FIXME: start observing changes
+    m_childProcess->send(Messages::WebOriginDataManagerProxy::DidDeleteEntries(callbackID), 0);
 }
 
-void WebOriginDataManager::stopObservingChanges(WKOriginDataTypes)
+void WebOriginDataManager::deleteAllEntries(WKOriginDataTypes, uint64_t callbackID)
 {
-    // FIXME: stop observing changes
+    // FIXME: delete entries
+
+    m_childProcess->send(Messages::WebOriginDataManagerProxy::DidDeleteAllEntries(callbackID), 0);
 }
 
 } // namespace WebKit

Modified: trunk/Source/WebKit2/WebProcess/OriginData/WebOriginDataManager.h (171621 => 171622)


--- trunk/Source/WebKit2/WebProcess/OriginData/WebOriginDataManager.h	2014-07-25 22:08:28 UTC (rev 171621)
+++ trunk/Source/WebKit2/WebProcess/OriginData/WebOriginDataManager.h	2014-07-25 22:34:21 UTC (rev 171622)
@@ -26,9 +26,9 @@
 #ifndef WebOriginDataManager_h
 #define WebOriginDataManager_h
 
+#include "ChildProcessSupplement.h"
 #include "MessageReceiver.h"
 #include "WKOriginDataManager.h"
-#include "WebProcessSupplement.h"
 #include <wtf/Noncopyable.h>
 #include <wtf/text/WTFString.h>
 
@@ -37,20 +37,18 @@
 class ChildProcess;
 struct SecurityOriginData;
 
-class WebOriginDataManager : public WebProcessSupplement, public IPC::MessageReceiver {
+class WebOriginDataManager : public ChildProcessSupplement, public IPC::MessageReceiver {
     WTF_MAKE_NONCOPYABLE(WebOriginDataManager);
 public:
     WebOriginDataManager(ChildProcess*);
 
     static const char* supplementName();
 
-    void deleteAllEntries(WKOriginDataTypes);
-
 private:
-    void getOrigins(WKOriginDataTypes, uint64_t);
-    void deleteEntriesForOrigin(WKOriginDataTypes, const SecurityOriginData&);
-    void startObservingChanges(WKOriginDataTypes);
-    void stopObservingChanges(WKOriginDataTypes);
+    void getOrigins(WKOriginDataTypes, uint64_t callbackID);
+    void deleteEntriesForOrigin(WKOriginDataTypes, const SecurityOriginData&, uint64_t callbackID);
+    void deleteEntriesModifiedBetweenDates(WKOriginDataTypes, double startDate, double endDate, uint64_t callbackID);
+    void deleteAllEntries(WKOriginDataTypes, uint64_t callbackID);
 
     // IPC::MessageReceiver
     virtual void didReceiveMessage(IPC::Connection*, IPC::MessageDecoder&) override;

Modified: trunk/Source/WebKit2/WebProcess/OriginData/WebOriginDataManager.messages.in (171621 => 171622)


--- trunk/Source/WebKit2/WebProcess/OriginData/WebOriginDataManager.messages.in	2014-07-25 22:08:28 UTC (rev 171621)
+++ trunk/Source/WebKit2/WebProcess/OriginData/WebOriginDataManager.messages.in	2014-07-25 22:34:21 UTC (rev 171622)
@@ -22,8 +22,7 @@
 
 messages -> WebOriginDataManager {
     void GetOrigins(uint32_t types, uint64_t callbackID)
-    void DeleteEntriesForOrigin(uint32_t types, WebKit::SecurityOriginData originIdentifier)
-    void DeleteAllEntries(uint32_t types)
-    void StartObservingChanges(uint32_t types)
-    void StopObservingChanges(uint32_t types)
+    void DeleteEntriesForOrigin(uint32_t types, WebKit::SecurityOriginData originIdentifier, uint64_t callbackID)
+    void DeleteEntriesModifiedBetweenDates(uint32_t types, double startDate, double endDate, uint64_t callbackID)
+    void DeleteAllEntries(uint32_t types, uint64_t callbackID)
 }
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to