[SCM] WebKit Debian packaging branch, debian/experimental, updated. debian/1.3.8-1-1049-g2e11a8e

weinig at apple.com weinig at apple.com
Fri Jan 21 14:43:32 UTC 2011


The following commit has been merged in the debian/experimental branch:
commit 465ef96a92edf45faea35ad26fd5f60f44aed587
Author: weinig at apple.com <weinig at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Mon Dec 27 21:04:45 2010 +0000

    WebKit2: Add additional API for managing databases
    https://bugs.webkit.org/show_bug.cgi?id=51629
    
    Reviewed by Anders Carlsson.
    
    - Adds client for the database manager to get notifications
      of changes to databases.
    
    * UIProcess/API/C/WKDatabaseManager.cpp:
    (WKDatabaseManagerSetClient):
    * UIProcess/API/C/WKDatabaseManager.h:
    * UIProcess/WebDatabaseManagerProxy.cpp:
    (WebKit::WebDatabaseManagerProxy::initializeClient):
    (WebKit::WebDatabaseManagerProxy::didModifyOrigin):
    (WebKit::WebDatabaseManagerProxy::didModifyDatabase):
    * UIProcess/WebDatabaseManagerProxy.h:
    * UIProcess/WebDatabaseManagerProxy.messages.in:
    * UIProcess/WebDatabaseManagerProxyClient.cpp: Added.
    (WebKit::WebDatabaseManagerProxyClient::didModifyOrigin):
    (WebKit::WebDatabaseManagerProxyClient::didModifyDatabase):
    * UIProcess/WebDatabaseManagerProxyClient.h: Added.
    * WebKit2.pro:
    * WebKit2.xcodeproj/project.pbxproj:
    * WebProcess/WebCoreSupport/WebDatabaseManager.cpp:
    (WebKit::WebDatabaseManager::WebDatabaseManager):
    (WebKit::WebDatabaseManager::~WebDatabaseManager):
    (WebKit::WebDatabaseManager::dispatchDidModifyOrigin):
    (WebKit::WebDatabaseManager::dispatchDidModifyDatabase):
    * WebProcess/WebCoreSupport/WebDatabaseManager.h:
    * win/WebKit2.vcproj:
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@74693 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebKit2/ChangeLog b/WebKit2/ChangeLog
index 9d2757c..1168a6b 100644
--- a/WebKit2/ChangeLog
+++ b/WebKit2/ChangeLog
@@ -5,6 +5,39 @@
         WebKit2: Add additional API for managing databases
         https://bugs.webkit.org/show_bug.cgi?id=51629
 
+        - Adds client for the database manager to get notifications
+          of changes to databases.
+
+        * UIProcess/API/C/WKDatabaseManager.cpp:
+        (WKDatabaseManagerSetClient):
+        * UIProcess/API/C/WKDatabaseManager.h:
+        * UIProcess/WebDatabaseManagerProxy.cpp:
+        (WebKit::WebDatabaseManagerProxy::initializeClient):
+        (WebKit::WebDatabaseManagerProxy::didModifyOrigin):
+        (WebKit::WebDatabaseManagerProxy::didModifyDatabase):
+        * UIProcess/WebDatabaseManagerProxy.h:
+        * UIProcess/WebDatabaseManagerProxy.messages.in:
+        * UIProcess/WebDatabaseManagerProxyClient.cpp: Added.
+        (WebKit::WebDatabaseManagerProxyClient::didModifyOrigin):
+        (WebKit::WebDatabaseManagerProxyClient::didModifyDatabase):
+        * UIProcess/WebDatabaseManagerProxyClient.h: Added.
+        * WebKit2.pro:
+        * WebKit2.xcodeproj/project.pbxproj:
+        * WebProcess/WebCoreSupport/WebDatabaseManager.cpp:
+        (WebKit::WebDatabaseManager::WebDatabaseManager):
+        (WebKit::WebDatabaseManager::~WebDatabaseManager):
+        (WebKit::WebDatabaseManager::dispatchDidModifyOrigin):
+        (WebKit::WebDatabaseManager::dispatchDidModifyDatabase):
+        * WebProcess/WebCoreSupport/WebDatabaseManager.h:
+        * win/WebKit2.vcproj:
+
+2010-12-27  Sam Weinig  <sam at webkit.org>
+
+        Reviewed by Anders Carlsson.
+
+        WebKit2: Add additional API for managing databases
+        https://bugs.webkit.org/show_bug.cgi?id=51629
+
         - Adds WKDatabaseManagerGetDatabasesByOrigin, which asynchronously returns
           an array of dictionaries containing details about each origin using 
           databases and details about each database. Keys were added for accessing
diff --git a/WebKit2/UIProcess/API/C/WKDatabaseManager.cpp b/WebKit2/UIProcess/API/C/WKDatabaseManager.cpp
index 52aa5be..226ef8c 100644
--- a/WebKit2/UIProcess/API/C/WKDatabaseManager.cpp
+++ b/WebKit2/UIProcess/API/C/WKDatabaseManager.cpp
@@ -87,6 +87,13 @@ WKStringRef WKDatabaseManagerGetDatabaseDetailsCurrentUsageKey()
     return toAPI(key);
 }
 
+void WKDatabaseManagerSetClient(WKDatabaseManagerRef databaseManagerRef, const WKDatabaseManagerClient* wkClient)
+{
+    if (wkClient && wkClient->version)
+        return;
+    toImpl(databaseManagerRef)->initializeClient(wkClient);
+}
+
 void WKDatabaseManagerGetDatabasesByOrigin(WKDatabaseManagerRef databaseManagerRef, void* context, WKDatabaseManagerGetDatabasesByOriginFunction callback)
 {
     toImpl(databaseManagerRef)->getDatabasesByOrigin(ArrayCallback::create(context, callback));
diff --git a/WebKit2/UIProcess/API/C/WKDatabaseManager.h b/WebKit2/UIProcess/API/C/WKDatabaseManager.h
index a4c97a6..0a5eff6 100644
--- a/WebKit2/UIProcess/API/C/WKDatabaseManager.h
+++ b/WebKit2/UIProcess/API/C/WKDatabaseManager.h
@@ -32,8 +32,6 @@
 extern "C" {
 #endif
 
-WK_EXPORT WKTypeID WKDatabaseManagerGetTypeID();
-
 /* Value type: WKSecurityOriginRef */
 WK_EXPORT WKStringRef WKDatabaseManagerGetOriginKey();
 
@@ -63,8 +61,26 @@ WK_EXPORT WKStringRef WKDatabaseManagerGetDatabaseDetailsExpectedUsageKey();
 /* Value type: WKUInt64Ref */
 WK_EXPORT WKStringRef WKDatabaseManagerGetDatabaseDetailsCurrentUsageKey();
 
+
+// Database Manager Client
+typedef void (*WKDatabaseManagerDidModifyOriginCallback)(WKDatabaseManagerRef databaseManager, WKSecurityOriginRef origin, const void *clientInfo);
+typedef void (*WKDatabaseManagerDidModifyDatabaseCallback)(WKDatabaseManagerRef databaseManager, WKSecurityOriginRef origin, WKStringRef databaseIdentifier, const void *clientInfo);
+
+struct WKDatabaseManagerClient {
+    int                                                                 version;
+    const void *                                                        clientInfo;
+    WKDatabaseManagerDidModifyOriginCallback                            didModifyOrigin;
+    WKDatabaseManagerDidModifyDatabaseCallback                          didModifyDatabase;
+};
+typedef struct WKDatabaseManagerClient WKDatabaseManagerClient;
+
+
+WK_EXPORT WKTypeID WKDatabaseManagerGetTypeID();
+
+WK_EXPORT void WKDatabaseManagerSetClient(WKDatabaseManagerRef databaseManager, const WKDatabaseManagerClient* client);
+
 typedef void (*WKDatabaseManagerGetDatabasesByOriginFunction)(WKArrayRef, WKErrorRef, void*);
-WK_EXPORT void WKDatabaseManagerGetDatabasesByOrigin(WKDatabaseManagerRef contextRef, void* context, WKDatabaseManagerGetDatabasesByOriginFunction function);
+WK_EXPORT void WKDatabaseManagerGetDatabasesByOrigin(WKDatabaseManagerRef databaseManager, void* context, WKDatabaseManagerGetDatabasesByOriginFunction function);
 #ifdef __BLOCKS__
 typedef void (^WKDatabaseManagerGetDatabasesByOriginBlock)(WKArrayRef, WKErrorRef);
 WK_EXPORT void WKDatabaseManagerGetDatabasesByOrigin_b(WKDatabaseManagerRef databaseManager, WKDatabaseManagerGetDatabasesByOriginBlock block);
diff --git a/WebKit2/UIProcess/WebDatabaseManagerProxy.cpp b/WebKit2/UIProcess/WebDatabaseManagerProxy.cpp
index eccb16b..6f382b7 100644
--- a/WebKit2/UIProcess/WebDatabaseManagerProxy.cpp
+++ b/WebKit2/UIProcess/WebDatabaseManagerProxy.cpp
@@ -104,6 +104,11 @@ void WebDatabaseManagerProxy::invalidate()
     m_webContext = 0;
 }
 
+void WebDatabaseManagerProxy::initializeClient(const WKDatabaseManagerClient* client)
+{
+    m_client.initialize(client);
+}
+
 void WebDatabaseManagerProxy::getDatabasesByOrigin(PassRefPtr<ArrayCallback> prpCallback)
 {
     RefPtr<ArrayCallback> callback = prpCallback;
@@ -201,5 +206,17 @@ void WebDatabaseManagerProxy::setQuotaForOrigin(WebSecurityOrigin* origin, uint6
     m_webContext->process()->send(Messages::WebDatabaseManager::SetQuotaForOrigin(origin->databaseIdentifier(), quota), 0);
 }
 
+void WebDatabaseManagerProxy::didModifyOrigin(const String& originIdentifier)
+{
+    RefPtr<WebSecurityOrigin> origin = WebSecurityOrigin::create(originIdentifier);
+    m_client.didModifyOrigin(this, origin.get());
+}
+
+void WebDatabaseManagerProxy::didModifyDatabase(const String& originIdentifier, const String& databaseIdentifier)
+{
+    RefPtr<WebSecurityOrigin> origin = WebSecurityOrigin::create(originIdentifier);
+    m_client.didModifyDatabase(this, origin.get(), databaseIdentifier);
+}
+
 } // namespace WebKit
 
diff --git a/WebKit2/UIProcess/WebDatabaseManagerProxy.h b/WebKit2/UIProcess/WebDatabaseManagerProxy.h
index 2734ad1..9878232 100644
--- a/WebKit2/UIProcess/WebDatabaseManagerProxy.h
+++ b/WebKit2/UIProcess/WebDatabaseManagerProxy.h
@@ -30,7 +30,7 @@
 #include "Arguments.h"
 #include "GenericCallback.h"
 #include "OriginAndDatabases.h"
-#include "WKBase.h"
+#include "WebDatabaseManagerProxyClient.h"
 #include <wtf/HashMap.h>
 #include <wtf/PassRefPtr.h>
 
@@ -56,6 +56,8 @@ public:
 
     void invalidate();
 
+    void initializeClient(const WKDatabaseManagerClient*);
+
     void getDatabasesByOrigin(PassRefPtr<ArrayCallback>);
     void getDatabaseOrigins(PassRefPtr<ArrayCallback>);
     void deleteDatabaseWithNameForOrigin(const String& databaseIdentifier, WebSecurityOrigin*);
@@ -82,9 +84,13 @@ private:
     // Message handlers.
     void didGetDatabasesByOrigin(const Vector<OriginAndDatabases>& originAndDatabases, uint64_t callbackID);
     void didGetDatabaseOrigins(const Vector<String>& originIdentifiers, uint64_t callbackID);
+    void didModifyOrigin(const String& originIdentifier);
+    void didModifyDatabase(const String& originIdentifier, const String& databaseIdentifier);
 
     WebContext* m_webContext;
     HashMap<uint64_t, RefPtr<ArrayCallback> > m_arrayCallbacks;
+
+    WebDatabaseManagerProxyClient m_client;
 };
 
 } // namespace WebKit
diff --git a/WebKit2/UIProcess/WebDatabaseManagerProxy.messages.in b/WebKit2/UIProcess/WebDatabaseManagerProxy.messages.in
index b1fa68a..37a9b89 100644
--- a/WebKit2/UIProcess/WebDatabaseManagerProxy.messages.in
+++ b/WebKit2/UIProcess/WebDatabaseManagerProxy.messages.in
@@ -23,4 +23,6 @@
 messages -> WebDatabaseManagerProxy {
     DidGetDatabasesByOrigin(Vector<WebKit::OriginAndDatabases> originAndDatabases, uint64_t callbackID);
     DidGetDatabaseOrigins(Vector<WTF::String> originIdentifiers, uint64_t callbackID)
+    DidModifyOrigin(WTF::String originIdentifier)
+    DidModifyDatabase(WTF::String originIdentifier, WTF::String databaseIdentifier)
 }
diff --git a/WebKit2/UIProcess/WebDatabaseManagerProxyClient.cpp b/WebKit2/UIProcess/WebDatabaseManagerProxyClient.cpp
new file mode 100644
index 0000000..8ba3a0e
--- /dev/null
+++ b/WebKit2/UIProcess/WebDatabaseManagerProxyClient.cpp
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2010 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 "WebDatabaseManagerProxyClient.h"
+
+#include "WKAPICast.h"
+
+namespace WebKit {
+
+void WebDatabaseManagerProxyClient::didModifyOrigin(WebDatabaseManagerProxy* databaseManager, WebSecurityOrigin* origin)
+{
+    if (!m_client.didModifyOrigin)
+        return;
+
+    m_client.didModifyOrigin(toAPI(databaseManager), toAPI(origin), m_client.clientInfo);
+}
+
+void WebDatabaseManagerProxyClient::didModifyDatabase(WebDatabaseManagerProxy* databaseManager, WebSecurityOrigin* origin, const String& databaseIdentifier)
+{
+    if (!m_client.didModifyDatabase)
+        return;
+
+    m_client.didModifyDatabase(toAPI(databaseManager), toAPI(origin), toAPI(databaseIdentifier.impl()), m_client.clientInfo);
+}
+
+} // namespace WebKit
diff --git a/WebKit2/UIProcess/WebDatabaseManagerProxyClient.h b/WebKit2/UIProcess/WebDatabaseManagerProxyClient.h
new file mode 100644
index 0000000..f02c130
--- /dev/null
+++ b/WebKit2/UIProcess/WebDatabaseManagerProxyClient.h
@@ -0,0 +1,46 @@
+/*
+ * Copyright (C) 2010 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 WebDatabaseManagerProxyClient_h
+#define WebDatabaseManagerProxyClient_h
+
+#include "APIClient.h"
+#include "WKDatabaseManager.h"
+#include <wtf/Forward.h>
+
+namespace WebKit {
+
+class WebDatabaseManagerProxy;
+class WebSecurityOrigin;
+
+class WebDatabaseManagerProxyClient : public APIClient<WKDatabaseManagerClient> {
+public:
+    void didModifyOrigin(WebDatabaseManagerProxy*, WebSecurityOrigin*);
+    void didModifyDatabase(WebDatabaseManagerProxy*, WebSecurityOrigin*, const String& databaseIdentifier);
+};
+
+} // namespace WebKit
+
+#endif // WebDatabaseManagerProxyClient_h
diff --git a/WebKit2/WebKit2.pro b/WebKit2/WebKit2.pro
index 5882a0a..3bda5e6 100644
--- a/WebKit2/WebKit2.pro
+++ b/WebKit2/WebKit2.pro
@@ -335,6 +335,7 @@ HEADERS += \
     UIProcess/WebContextMenuProxy.h \
     UIProcess/WebContextUserMessageCoders.h \
     UIProcess/WebDatabaseManagerProxy.h \
+    UIProcess/WebDatabaseManagerProxyClient.h \
     UIProcess/WebDownloadClient.h \
     UIProcess/WebEditCommandProxy.h \
     UIProcess/WebFindClient.h \
@@ -533,6 +534,7 @@ SOURCES += \
     UIProcess/WebContextInjectedBundleClient.cpp \
     UIProcess/WebContextMenuProxy.cpp \
     UIProcess/WebDatabaseManagerProxy.cpp \
+    UIProcess/WebDatabaseManagerProxyClient.cpp \
     UIProcess/WebDownloadClient.cpp \
     UIProcess/WebEditCommandProxy.cpp \
     UIProcess/WebFindClient.cpp \
diff --git a/WebKit2/WebKit2.xcodeproj/project.pbxproj b/WebKit2/WebKit2.xcodeproj/project.pbxproj
index c0c1872..5643410 100644
--- a/WebKit2/WebKit2.xcodeproj/project.pbxproj
+++ b/WebKit2/WebKit2.xcodeproj/project.pbxproj
@@ -484,6 +484,8 @@
 		BCA8C6A911E3BA5F00812FB7 /* InjectedBundlePageLoaderClient.h in Headers */ = {isa = PBXBuildFile; fileRef = BCA8C6A711E3BA5F00812FB7 /* InjectedBundlePageLoaderClient.h */; };
 		BCA8C6AF11E3C08700812FB7 /* InjectedBundlePageUIClient.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCA8C6AD11E3C08700812FB7 /* InjectedBundlePageUIClient.cpp */; };
 		BCA8C6B011E3C08700812FB7 /* InjectedBundlePageUIClient.h in Headers */ = {isa = PBXBuildFile; fileRef = BCA8C6AE11E3C08700812FB7 /* InjectedBundlePageUIClient.h */; };
+		BCAC111F12C92C1F00B08EEE /* WebDatabaseManagerProxyClient.h in Headers */ = {isa = PBXBuildFile; fileRef = BCAC111D12C92C1F00B08EEE /* WebDatabaseManagerProxyClient.h */; };
+		BCAC112012C92C1F00B08EEE /* WebDatabaseManagerProxyClient.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCAC111E12C92C1F00B08EEE /* WebDatabaseManagerProxyClient.cpp */; };
 		BCB0AD33122F285800B1341E /* MutableArray.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCC8049D122F0D6B00103529 /* MutableArray.cpp */; };
 		BCB0AD34122F285800B1341E /* MutableArray.h in Headers */ = {isa = PBXBuildFile; fileRef = BCC8049E122F0D6B00103529 /* MutableArray.h */; };
 		BCB0AEE9122F53E300B1341E /* MutableDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = BCB0AEE7122F53E300B1341E /* MutableDictionary.h */; };
@@ -1153,6 +1155,8 @@
 		BCA8C6A711E3BA5F00812FB7 /* InjectedBundlePageLoaderClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InjectedBundlePageLoaderClient.h; sourceTree = "<group>"; };
 		BCA8C6AD11E3C08700812FB7 /* InjectedBundlePageUIClient.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InjectedBundlePageUIClient.cpp; sourceTree = "<group>"; };
 		BCA8C6AE11E3C08700812FB7 /* InjectedBundlePageUIClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InjectedBundlePageUIClient.h; sourceTree = "<group>"; };
+		BCAC111D12C92C1F00B08EEE /* WebDatabaseManagerProxyClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebDatabaseManagerProxyClient.h; sourceTree = "<group>"; };
+		BCAC111E12C92C1F00B08EEE /* WebDatabaseManagerProxyClient.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebDatabaseManagerProxyClient.cpp; sourceTree = "<group>"; };
 		BCB0AEE7122F53E300B1341E /* MutableDictionary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MutableDictionary.h; sourceTree = "<group>"; };
 		BCB0AEE8122F53E300B1341E /* MutableDictionary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MutableDictionary.cpp; sourceTree = "<group>"; };
 		BCB0B0DB12305A2500B1341E /* WebContextUserMessageCoders.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebContextUserMessageCoders.h; sourceTree = "<group>"; };
@@ -1929,6 +1933,8 @@
 				BCDE059A11CDA8AE00E41AF1 /* WebContextInjectedBundleClient.cpp */,
 				BCDE059911CDA8AE00E41AF1 /* WebContextInjectedBundleClient.h */,
 				BCB0B0DB12305A2500B1341E /* WebContextUserMessageCoders.h */,
+				BCAC111E12C92C1F00B08EEE /* WebDatabaseManagerProxyClient.cpp */,
+				BCAC111D12C92C1F00B08EEE /* WebDatabaseManagerProxyClient.h */,
 				F62A765912B1ABC30005F1B6 /* WebDatabaseManagerProxy.cpp */,
 				F62A765A12B1ABC30005F1B6 /* WebDatabaseManagerProxy.h */,
 				F62A765B12B1ABC30005F1B6 /* WebDatabaseManagerProxy.messages.in */,
@@ -2781,6 +2787,7 @@
 				1AA417CB12C00CCA002BE67B /* TextChecker.h in Headers */,
 				1AA41AB512C02EC4002BE67B /* SelectionState.h in Headers */,
 				BCCF672D12C7EDF7008F9C35 /* OriginAndDatabases.h in Headers */,
+				BCAC111F12C92C1F00B08EEE /* WebDatabaseManagerProxyClient.h in Headers */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -3206,6 +3213,7 @@
 				BC858A2112C0357B00EDEB2E /* WebResourceLoadClient.cpp in Sources */,
 				1AA417EF12C00D87002BE67B /* TextCheckerMac.mm in Sources */,
 				BCCF673312C7F15C008F9C35 /* OriginAndDatabases.cpp in Sources */,
+				BCAC112012C92C1F00B08EEE /* WebDatabaseManagerProxyClient.cpp in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
diff --git a/WebKit2/WebProcess/WebCoreSupport/WebDatabaseManager.cpp b/WebKit2/WebProcess/WebCoreSupport/WebDatabaseManager.cpp
index fab0ae1..cc61b04 100644
--- a/WebKit2/WebProcess/WebCoreSupport/WebDatabaseManager.cpp
+++ b/WebKit2/WebProcess/WebCoreSupport/WebDatabaseManager.cpp
@@ -48,6 +48,11 @@ WebDatabaseManager& WebDatabaseManager::shared()
 WebDatabaseManager::WebDatabaseManager()
 {
     DatabaseTracker::initializeTracker(databaseDirectory());
+    DatabaseTracker::tracker().setClient(this);
+}
+
+WebDatabaseManager::~WebDatabaseManager()
+{
 }
 
 void WebDatabaseManager::didReceiveMessage(CoreIPC::Connection* connection, CoreIPC::MessageID messageID, CoreIPC::ArgumentDecoder* arguments)
@@ -146,4 +151,16 @@ void WebDatabaseManager::setQuotaForOrigin(const String& originIdentifier, unsig
     DatabaseTracker::tracker().setQuota(origin.get(), quota);
 }
 
+void WebDatabaseManager::dispatchDidModifyOrigin(SecurityOrigin* origin)
+{
+    // NOTE: This may be called on a non-main thread.
+    WebProcess::shared().connection()->send(Messages::WebDatabaseManagerProxy::DidModifyOrigin(origin->databaseIdentifier()), 0);
+}
+
+void WebDatabaseManager::dispatchDidModifyDatabase(WebCore::SecurityOrigin* origin, const String& databaseIdentifier)
+{
+    // NOTE: This may be called on a non-main thread.
+    WebProcess::shared().connection()->send(Messages::WebDatabaseManagerProxy::DidModifyDatabase(origin->databaseIdentifier(), databaseIdentifier), 0);
+}
+
 } // namespace WebKit
diff --git a/WebKit2/WebProcess/WebCoreSupport/WebDatabaseManager.h b/WebKit2/WebProcess/WebCoreSupport/WebDatabaseManager.h
index 686892a..4701645 100644
--- a/WebKit2/WebProcess/WebCoreSupport/WebDatabaseManager.h
+++ b/WebKit2/WebProcess/WebCoreSupport/WebDatabaseManager.h
@@ -27,6 +27,7 @@
 #define WebDatabaseManager_h
 
 #include "Arguments.h"
+#include <WebCore/DatabaseTrackerClient.h>
 #include <wtf/Noncopyable.h>
 #include <wtf/text/WTFString.h>
 
@@ -38,7 +39,7 @@ class MessageID;
 
 namespace WebKit {
 
-class WebDatabaseManager {
+class WebDatabaseManager : public WebCore::DatabaseTrackerClient {
     WTF_MAKE_NONCOPYABLE(WebDatabaseManager);
 public:
     static WebDatabaseManager& shared();
@@ -47,6 +48,7 @@ public:
 
 private:
     WebDatabaseManager();
+    virtual ~WebDatabaseManager();
 
     // Implemented in generated WebDatabaseManagerMessageReceiver.cpp
     void didReceiveWebDatabaseManagerMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*);
@@ -58,6 +60,10 @@ private:
     void deleteAllDatabases() const;
     void setQuotaForOrigin(const String& originIdentifier, unsigned long long quota) const;
 
+    // WebCore::DatabaseTrackerClient
+    virtual void dispatchDidModifyOrigin(WebCore::SecurityOrigin*);
+    virtual void dispatchDidModifyDatabase(WebCore::SecurityOrigin*, const String& databaseIdentifier);
+
     String databaseDirectory() const;
 };
 
diff --git a/WebKit2/win/WebKit2.vcproj b/WebKit2/win/WebKit2.vcproj
index 2e325dd..0c88c52 100755
--- a/WebKit2/win/WebKit2.vcproj
+++ b/WebKit2/win/WebKit2.vcproj
@@ -2007,6 +2007,14 @@
 				>
 			</File>
 			<File
+				RelativePath="..\UIProcess\WebDatabaseManagerProxyClient.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\UIProcess\WebDatabaseManagerProxyClient.h"
+				>
+			</File>
+			<File
 				RelativePath="..\UIProcess\WebDatabaseManagerProxy.messages.in"
 				>
 			</File>

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list