Title: [159563] trunk/Source
Revision
159563
Author
beid...@apple.com
Date
2013-11-20 08:00:11 -0800 (Wed, 20 Nov 2013)

Log Message

Cleanup getOrEstablishIDBDatabaseMetadata and stub it out in WK2
https://bugs.webkit.org/show_bug.cgi?id=124635

Reviewed by Tim Horton.

Source/WebCore:

getOrEstablishIDBDatabaseMetadata() should not have to take a database name parameter because the
server connection should already know what database name it represents.

* Modules/indexeddb/IDBDatabaseBackend.cpp:
(WebCore::IDBDatabaseBackend::openInternalAsync):

* Modules/indexeddb/IDBServerConnection.h:
* Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.cpp:
(WebCore::IDBServerConnectionLevelDB::IDBServerConnectionLevelDB):
(WebCore::IDBServerConnectionLevelDB::getOrEstablishIDBDatabaseMetadata):
* Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.h:

* Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.cpp:
(WebCore::IDBFactoryBackendLevelDB::deleteDatabase):
(WebCore::IDBFactoryBackendLevelDB::open):

Source/WebKit2:

Stub out the message for getOrEstablishIDBDatabaseMetadata in the DatabaseProcess.

* DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp:
(WebKit::DatabaseProcessIDBConnection::establishConnection):
(WebKit::DatabaseProcessIDBConnection::getOrEstablishIDBDatabaseMetadata):
* DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.h:
* DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.messages.in:

* Shared/SecurityOriginData.cpp:
(WebKit::SecurityOriginData::fromSecurityOrigin):
* Shared/SecurityOriginData.h:

* WebProcess/Databases/IndexedDB/WebIDBServerConnection.cpp:
(WebKit::WebIDBServerConnection::WebIDBServerConnection):
(WebKit::WebIDBServerConnection::deleteDatabase):
(WebKit::WebIDBServerConnection::getOrEstablishIDBDatabaseMetadata):
* WebProcess/Databases/IndexedDB/WebIDBServerConnection.h:

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (159562 => 159563)


--- trunk/Source/WebCore/ChangeLog	2013-11-20 15:49:15 UTC (rev 159562)
+++ trunk/Source/WebCore/ChangeLog	2013-11-20 16:00:11 UTC (rev 159563)
@@ -1,3 +1,26 @@
+2013-11-20  Brady Eidson  <beid...@apple.com>
+
+        Cleanup getOrEstablishIDBDatabaseMetadata and stub it out in WK2
+        https://bugs.webkit.org/show_bug.cgi?id=124635
+
+        Reviewed by Tim Horton.
+
+        getOrEstablishIDBDatabaseMetadata() should not have to take a database name parameter because the 
+        server connection should already know what database name it represents.
+
+        * Modules/indexeddb/IDBDatabaseBackend.cpp:
+        (WebCore::IDBDatabaseBackend::openInternalAsync):
+
+        * Modules/indexeddb/IDBServerConnection.h:
+        * Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.cpp:
+        (WebCore::IDBServerConnectionLevelDB::IDBServerConnectionLevelDB):
+        (WebCore::IDBServerConnectionLevelDB::getOrEstablishIDBDatabaseMetadata):
+        * Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.h:
+
+        * Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.cpp:
+        (WebCore::IDBFactoryBackendLevelDB::deleteDatabase):
+        (WebCore::IDBFactoryBackendLevelDB::open):
+
 2013-11-20  Andrzej Badowski  <a.badow...@samsung.com>
 
         [EFL] <video> and <audio> should be accessible.

Modified: trunk/Source/WebCore/Modules/indexeddb/IDBDatabaseBackend.cpp (159562 => 159563)


--- trunk/Source/WebCore/Modules/indexeddb/IDBDatabaseBackend.cpp	2013-11-20 15:49:15 UTC (rev 159562)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBDatabaseBackend.cpp	2013-11-20 16:00:11 UTC (rev 159563)
@@ -105,7 +105,7 @@
 void IDBDatabaseBackend::openInternalAsync()
 {
     RefPtr<IDBDatabaseBackend> self = this;
-    m_serverConnection->getOrEstablishIDBDatabaseMetadata(m_metadata.name, [self](const IDBDatabaseMetadata& metadata, bool success) {
+    m_serverConnection->getOrEstablishIDBDatabaseMetadata([self](const IDBDatabaseMetadata& metadata, bool success) {
         self->didOpenInternalAsync(metadata, success);
     });
 }

Modified: trunk/Source/WebCore/Modules/indexeddb/IDBServerConnection.h (159562 => 159563)


--- trunk/Source/WebCore/Modules/indexeddb/IDBServerConnection.h	2013-11-20 15:49:15 UTC (rev 159562)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBServerConnection.h	2013-11-20 16:00:11 UTC (rev 159563)
@@ -57,10 +57,12 @@
 
     typedef std::function<void (bool success)> BoolCallbackFunction;
 
+    // Factory-level operations
+    virtual void deleteDatabase(const String& name, BoolCallbackFunction successCallback) = 0;
+
     // Database-level operations
     typedef std::function<void (const IDBDatabaseMetadata&, bool success)> GetIDBDatabaseMetadataFunction;
-    virtual void getOrEstablishIDBDatabaseMetadata(const String& name, GetIDBDatabaseMetadataFunction) = 0;
-    virtual void deleteDatabase(const String& name, BoolCallbackFunction successCallback) = 0;
+    virtual void getOrEstablishIDBDatabaseMetadata(GetIDBDatabaseMetadataFunction) = 0;
     virtual void close() = 0;
 
     // Transaction-level operations

Modified: trunk/Source/WebCore/Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.cpp (159562 => 159563)


--- trunk/Source/WebCore/Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.cpp	2013-11-20 15:49:15 UTC (rev 159562)
+++ trunk/Source/WebCore/Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.cpp	2013-11-20 16:00:11 UTC (rev 159563)
@@ -123,7 +123,7 @@
         return;
     }
 
-    RefPtr<IDBServerConnection> serverConnection = IDBServerConnectionLevelDB::create(backingStore.get());
+    RefPtr<IDBServerConnection> serverConnection = IDBServerConnectionLevelDB::create(name, backingStore.get());
     RefPtr<IDBDatabaseBackend> databaseBackend = IDBDatabaseBackend::create(name, uniqueIdentifier, this, *serverConnection);
     if (databaseBackend) {
         m_databaseBackendMap.set(uniqueIdentifier, databaseBackend.get());
@@ -178,7 +178,7 @@
             return;
         }
 
-        RefPtr<IDBServerConnection> serverConnection = IDBServerConnectionLevelDB::create(backingStore.get());
+        RefPtr<IDBServerConnection> serverConnection = IDBServerConnectionLevelDB::create(name, backingStore.get());
         databaseBackend = IDBDatabaseBackend::create(name, uniqueIdentifier, this, *serverConnection);
         if (databaseBackend)
             m_databaseBackendMap.set(uniqueIdentifier, databaseBackend.get());

Modified: trunk/Source/WebCore/Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.cpp (159562 => 159563)


--- trunk/Source/WebCore/Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.cpp	2013-11-20 15:49:15 UTC (rev 159562)
+++ trunk/Source/WebCore/Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.cpp	2013-11-20 16:00:11 UTC (rev 159563)
@@ -55,10 +55,11 @@
 
 namespace WebCore {
 
-IDBServerConnectionLevelDB::IDBServerConnectionLevelDB(IDBBackingStoreLevelDB* backingStore)
+IDBServerConnectionLevelDB::IDBServerConnectionLevelDB(const String& databaseName, IDBBackingStoreLevelDB* backingStore)
     : m_backingStore(backingStore)
     , m_nextCursorID(1)
     , m_closed(false)
+    , m_databaseName(databaseName)
 {
 }
 
@@ -71,10 +72,10 @@
     return m_closed;
 }
 
-void IDBServerConnectionLevelDB::getOrEstablishIDBDatabaseMetadata(const String& name, GetIDBDatabaseMetadataFunction callback)
+void IDBServerConnectionLevelDB::getOrEstablishIDBDatabaseMetadata(GetIDBDatabaseMetadataFunction callback)
 {
     RefPtr<IDBServerConnection> self(this);
-    m_backingStore->getOrEstablishIDBDatabaseMetadata(name, [self, this, callback](const IDBDatabaseMetadata& metadata, bool success) {
+    m_backingStore->getOrEstablishIDBDatabaseMetadata(m_databaseName, [self, this, callback](const IDBDatabaseMetadata& metadata, bool success) {
         callback(metadata, success);
     });
 }

Modified: trunk/Source/WebCore/Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.h (159562 => 159563)


--- trunk/Source/WebCore/Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.h	2013-11-20 15:49:15 UTC (rev 159562)
+++ trunk/Source/WebCore/Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.h	2013-11-20 16:00:11 UTC (rev 159563)
@@ -39,18 +39,20 @@
 
 class IDBServerConnectionLevelDB FINAL : public IDBServerConnection {
 public:
-    static PassRefPtr<IDBServerConnection> create(IDBBackingStoreLevelDB* backingStore)
+    static PassRefPtr<IDBServerConnection> create(const String& databaseName, IDBBackingStoreLevelDB* backingStore)
     {
-        return adoptRef(new IDBServerConnectionLevelDB(backingStore));
+        return adoptRef(new IDBServerConnectionLevelDB(databaseName, backingStore));
     }
 
     virtual ~IDBServerConnectionLevelDB();
 
     virtual bool isClosed() OVERRIDE;
 
+    // Factory-level operations
+    virtual void deleteDatabase(const String& name, BoolCallbackFunction successCallback) OVERRIDE;
+
     // Database-level operations
-    virtual void getOrEstablishIDBDatabaseMetadata(const String& name, GetIDBDatabaseMetadataFunction) OVERRIDE;
-    virtual void deleteDatabase(const String& name, BoolCallbackFunction successCallback) OVERRIDE;
+    virtual void getOrEstablishIDBDatabaseMetadata(GetIDBDatabaseMetadataFunction) OVERRIDE;
     virtual void close() OVERRIDE;
 
     // Transaction-level operations
@@ -80,7 +82,7 @@
     virtual void cursorPrefetchReset(IDBCursorBackend&, int usedPrefetches) OVERRIDE;
 
 private:
-    IDBServerConnectionLevelDB(IDBBackingStoreLevelDB*);
+    IDBServerConnectionLevelDB(const String& databaseName, IDBBackingStoreLevelDB*);
 
     RefPtr<IDBBackingStoreLevelDB> m_backingStore;
     HashMap<int64_t, RefPtr<IDBBackingStoreTransactionLevelDB>> m_backingStoreTransactions;
@@ -89,6 +91,8 @@
     int64_t m_nextCursorID;
 
     bool m_closed;
+
+    String m_databaseName;
 };
 
 } // namespace WebCore

Modified: trunk/Source/WebKit2/ChangeLog (159562 => 159563)


--- trunk/Source/WebKit2/ChangeLog	2013-11-20 15:49:15 UTC (rev 159562)
+++ trunk/Source/WebKit2/ChangeLog	2013-11-20 16:00:11 UTC (rev 159563)
@@ -1,3 +1,28 @@
+2013-11-20  Brady Eidson  <beid...@apple.com>
+
+        Cleanup getOrEstablishIDBDatabaseMetadata and stub it out in WK2
+        https://bugs.webkit.org/show_bug.cgi?id=124635
+
+        Reviewed by Tim Horton.
+
+        Stub out the message for getOrEstablishIDBDatabaseMetadata in the DatabaseProcess.
+
+        * DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp:
+        (WebKit::DatabaseProcessIDBConnection::establishConnection):
+        (WebKit::DatabaseProcessIDBConnection::getOrEstablishIDBDatabaseMetadata):
+        * DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.h:
+        * DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.messages.in:
+
+        * Shared/SecurityOriginData.cpp:
+        (WebKit::SecurityOriginData::fromSecurityOrigin):
+        * Shared/SecurityOriginData.h:
+
+        * WebProcess/Databases/IndexedDB/WebIDBServerConnection.cpp:
+        (WebKit::WebIDBServerConnection::WebIDBServerConnection):
+        (WebKit::WebIDBServerConnection::deleteDatabase):
+        (WebKit::WebIDBServerConnection::getOrEstablishIDBDatabaseMetadata):
+        * WebProcess/Databases/IndexedDB/WebIDBServerConnection.h:
+
 2013-11-20  Carlos Garcia Campos  <cgar...@igalia.com>
 
         [GTK] Do not use deprecated callbacks in WebKitPolicyClient

Modified: trunk/Source/WebKit2/DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp (159562 => 159563)


--- trunk/Source/WebKit2/DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp	2013-11-20 15:49:15 UTC (rev 159562)
+++ trunk/Source/WebKit2/DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp	2013-11-20 16:00:11 UTC (rev 159563)
@@ -41,12 +41,18 @@
 {
 }
 
-void DatabaseProcessIDBConnection::establishConnection()
+void DatabaseProcessIDBConnection::establishConnection(const String& databaseName, const SecurityOriginData& openingOrigin, const SecurityOriginData& mainFrameOrigin)
 {
     // FIXME: This method is successfully called by messaging from the WebProcess.
     // Now implement it.
 }
 
+void DatabaseProcessIDBConnection::getOrEstablishIDBDatabaseMetadata()
+{
+    // FIXME: This method is successfully called by messaging from the WebProcess.
+    // Now implement it.
+}
+
 CoreIPC::Connection* DatabaseProcessIDBConnection::messageSenderConnection()
 {
     return m_connection->connection();

Modified: trunk/Source/WebKit2/DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.h (159562 => 159563)


--- trunk/Source/WebKit2/DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.h	2013-11-20 15:49:15 UTC (rev 159562)
+++ trunk/Source/WebKit2/DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.h	2013-11-20 16:00:11 UTC (rev 159563)
@@ -34,6 +34,8 @@
 
 class DatabaseToWebProcessConnection;
 
+struct SecurityOriginData;
+
 class DatabaseProcessIDBConnection : public RefCounted<DatabaseProcessIDBConnection>, public CoreIPC::MessageSender {
 public:
     static RefPtr<DatabaseProcessIDBConnection> create(uint64_t backendIdentifier)
@@ -54,7 +56,8 @@
     virtual uint64_t messageSenderDestinationID() OVERRIDE { return m_backendIdentifier; }
 
     // Message handlers.
-    void establishConnection();
+    void establishConnection(const String& databaseName, const SecurityOriginData& openingOrigin, const SecurityOriginData& mainFrameOrigin);
+    void getOrEstablishIDBDatabaseMetadata();
 
     RefPtr<DatabaseToWebProcessConnection> m_connection;
     uint64_t m_backendIdentifier;

Modified: trunk/Source/WebKit2/DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.messages.in (159562 => 159563)


--- trunk/Source/WebKit2/DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.messages.in	2013-11-20 15:49:15 UTC (rev 159562)
+++ trunk/Source/WebKit2/DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.messages.in	2013-11-20 16:00:11 UTC (rev 159563)
@@ -23,7 +23,8 @@
 #if ENABLE(INDEXED_DATABASE) && ENABLE(DATABASE_PROCESS)
 
 messages -> DatabaseProcessIDBConnection LegacyReceiver {
-    EstablishConnection()
+    EstablishConnection(WTF::String databaseName, WebKit::SecurityOriginData openingOrigin, WebKit::SecurityOriginData mainFrameOrigin)
+    GetOrEstablishIDBDatabaseMetadata()
 }
 
 #endif // ENABLE(INDEXED_DATABASE) && ENABLE(DATABASE_PROCESS)

Modified: trunk/Source/WebKit2/Shared/SecurityOriginData.cpp (159562 => 159563)


--- trunk/Source/WebKit2/Shared/SecurityOriginData.cpp	2013-11-20 15:49:15 UTC (rev 159562)
+++ trunk/Source/WebKit2/Shared/SecurityOriginData.cpp	2013-11-20 16:00:11 UTC (rev 159563)
@@ -34,7 +34,7 @@
 
 namespace WebKit {
 
-SecurityOriginData SecurityOriginData::fromSecurityOrigin(SecurityOrigin* securityOrigin)
+SecurityOriginData SecurityOriginData::fromSecurityOrigin(const SecurityOrigin* securityOrigin)
 {
     SecurityOriginData securityOriginData;
 

Modified: trunk/Source/WebKit2/Shared/SecurityOriginData.h (159562 => 159563)


--- trunk/Source/WebKit2/Shared/SecurityOriginData.h	2013-11-20 15:49:15 UTC (rev 159562)
+++ trunk/Source/WebKit2/Shared/SecurityOriginData.h	2013-11-20 16:00:11 UTC (rev 159563)
@@ -40,7 +40,7 @@
 typedef GenericCallback<WKArrayRef> ArrayCallback;
 
 struct SecurityOriginData {
-    static SecurityOriginData fromSecurityOrigin(WebCore::SecurityOrigin*);
+    static SecurityOriginData fromSecurityOrigin(const WebCore::SecurityOrigin*);
     PassRefPtr<WebCore::SecurityOrigin> securityOrigin() const;
 
     void encode(CoreIPC::ArgumentEncoder&) const;

Modified: trunk/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBServerConnection.cpp (159562 => 159563)


--- trunk/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBServerConnection.cpp	2013-11-20 15:49:15 UTC (rev 159562)
+++ trunk/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBServerConnection.cpp	2013-11-20 16:00:11 UTC (rev 159563)
@@ -31,9 +31,12 @@
 
 #include "DatabaseProcessIDBConnectionMessages.h"
 #include "DatabaseToWebProcessConnectionMessages.h"
+#include "SecurityOriginData.h"
 #include "WebProcess.h"
 #include "WebToDatabaseProcessConnection.h"
 
+#include <WebCore/SecurityOrigin.h>
+
 namespace WebKit {
 
 static uint64_t generateBackendIdentifier()
@@ -45,9 +48,12 @@
 
 WebIDBServerConnection::WebIDBServerConnection(const String& databaseName, const WebCore::SecurityOrigin& openingOrigin, const WebCore::SecurityOrigin& mainFrameOrigin)
     : m_backendIdentifier(generateBackendIdentifier())
+    , m_databaseName(databaseName)
+    , m_openingOrigin(*openingOrigin.isolatedCopy())
+    , m_mainFrameOrigin(*mainFrameOrigin.isolatedCopy())
 {
     send(Messages::DatabaseToWebProcessConnection::EstablishIDBConnection(m_backendIdentifier));
-    send(Messages::DatabaseProcessIDBConnection::EstablishConnection());
+    send(Messages::DatabaseProcessIDBConnection::EstablishConnection(databaseName, SecurityOriginData::fromSecurityOrigin(&openingOrigin), SecurityOriginData::fromSecurityOrigin(&mainFrameOrigin)));
 }
 
 WebIDBServerConnection::~WebIDBServerConnection()
@@ -59,12 +65,13 @@
     return true;
 }
 
-void WebIDBServerConnection::getOrEstablishIDBDatabaseMetadata(const String& name, GetIDBDatabaseMetadataFunction)
+void WebIDBServerConnection::deleteDatabase(const String& name, BoolCallbackFunction successCallback)
 {
 }
 
-void WebIDBServerConnection::deleteDatabase(const String& name, BoolCallbackFunction successCallback)
+void WebIDBServerConnection::getOrEstablishIDBDatabaseMetadata(GetIDBDatabaseMetadataFunction completionCallback)
 {
+    send(Messages::DatabaseProcessIDBConnection::GetOrEstablishIDBDatabaseMetadata());
 }
 
 void WebIDBServerConnection::close()

Modified: trunk/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBServerConnection.h (159562 => 159563)


--- trunk/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBServerConnection.h	2013-11-20 15:49:15 UTC (rev 159562)
+++ trunk/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBServerConnection.h	2013-11-20 16:00:11 UTC (rev 159563)
@@ -47,10 +47,11 @@
 
     typedef std::function<void (bool success)> BoolCallbackFunction;
 
+    // Factory-level operations
+    virtual void deleteDatabase(const String& name, BoolCallbackFunction successCallback) OVERRIDE;
+
     // Database-level operations
-    typedef std::function<void (const WebCore::IDBDatabaseMetadata&, bool success)> GetIDBDatabaseMetadataFunction;
-    virtual void getOrEstablishIDBDatabaseMetadata(const String& name, GetIDBDatabaseMetadataFunction) OVERRIDE;
-    virtual void deleteDatabase(const String& name, BoolCallbackFunction successCallback) OVERRIDE;
+    virtual void getOrEstablishIDBDatabaseMetadata(GetIDBDatabaseMetadataFunction) OVERRIDE;
     virtual void close() OVERRIDE;
 
     // Transaction-level operations
@@ -88,6 +89,10 @@
     virtual uint64_t messageSenderDestinationID() OVERRIDE { return m_backendIdentifier; }
 
     uint64_t m_backendIdentifier;
+
+    String m_databaseName;
+    Ref<WebCore::SecurityOrigin> m_openingOrigin;
+    Ref<WebCore::SecurityOrigin> m_mainFrameOrigin;
 };
 
 } // namespace WebKit
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to