Title: [121117] trunk/Source/WebCore
Revision
121117
Author
[email protected]
Date
2012-06-24 08:06:53 -0700 (Sun, 24 Jun 2012)

Log Message

Web Inspector: Simplify InspectorIndexedDBAgent to use IDB metadata API
https://bugs.webkit.org/show_bug.cgi?id=89495

Reviewed by Vsevolod Vlasov.

No new tests - no functional changes.

* inspector/InspectorIndexedDBAgent.cpp:
(WebCore):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (121116 => 121117)


--- trunk/Source/WebCore/ChangeLog	2012-06-24 15:02:59 UTC (rev 121116)
+++ trunk/Source/WebCore/ChangeLog	2012-06-24 15:06:53 UTC (rev 121117)
@@ -1,3 +1,15 @@
+2012-06-24  Joshua Bell  <[email protected]>
+
+        Web Inspector: Simplify InspectorIndexedDBAgent to use IDB metadata API
+        https://bugs.webkit.org/show_bug.cgi?id=89495
+
+        Reviewed by Vsevolod Vlasov.
+
+        No new tests - no functional changes.
+
+        * inspector/InspectorIndexedDBAgent.cpp:
+        (WebCore):
+
 2012-06-24  Pavel Feldman  <[email protected]>
 
         Web Inspector: speed up Timeline and Elements panel rendering

Modified: trunk/Source/WebCore/inspector/InspectorIndexedDBAgent.cpp (121116 => 121117)


--- trunk/Source/WebCore/inspector/InspectorIndexedDBAgent.cpp	2012-06-24 15:02:59 UTC (rev 121116)
+++ trunk/Source/WebCore/inspector/InspectorIndexedDBAgent.cpp	2012-06-24 15:06:53 UTC (rev 121117)
@@ -49,6 +49,7 @@
 #include "IDBKey.h"
 #include "IDBKeyPath.h"
 #include "IDBKeyRange.h"
+#include "IDBMetadata.h"
 #include "IDBObjectStoreBackendInterface.h"
 #include "IDBPendingTransactionMonitor.h"
 #include "IDBTransaction.h"
@@ -309,42 +310,35 @@
         if (!m_frontendProvider->frontend())
             return;
 
+        const IDBDatabaseMetadata databaseMetadata = idbDatabase->metadata();
+
         RefPtr<TypeBuilder::Array<TypeBuilder::IndexedDB::ObjectStore> > objectStores = TypeBuilder::Array<TypeBuilder::IndexedDB::ObjectStore>::create();
 
-        RefPtr<DOMStringList> objectStoreNamesList = idbDatabase->objectStoreNames();
-        for (size_t i = 0; i < objectStoreNamesList->length(); ++i) {
-            String objectStoreName = objectStoreNamesList->item(i);
-            RefPtr<IDBTransactionBackendInterface> idbTransaction = transactionForDatabase(idbDatabase.get(), objectStoreName);
-            if (!idbTransaction)
-                continue;
-            RefPtr<IDBObjectStoreBackendInterface> idbObjectStore = objectStoreForTransaction(idbTransaction.get(), objectStoreName);
-            if (!idbObjectStore)
-                continue;
+        for (IDBDatabaseMetadata::ObjectStoreMap::const_iterator it = databaseMetadata.objectStores.begin(); it != databaseMetadata.objectStores.end(); ++it) {
+            const IDBObjectStoreMetadata& objectStoreMetadata = it->second;
 
             RefPtr<TypeBuilder::Array<TypeBuilder::IndexedDB::ObjectStoreIndex> > indexes = TypeBuilder::Array<TypeBuilder::IndexedDB::ObjectStoreIndex>::create();
-            RefPtr<DOMStringList> indexNamesList = idbObjectStore->indexNames();
-            for (size_t j = 0; j < indexNamesList->length(); ++j) {
-                RefPtr<IDBIndexBackendInterface> idbIndex = indexForObjectStore(idbObjectStore.get(), indexNamesList->item(j));
-                if (!idbIndex)
-                    continue;
 
+            for (IDBObjectStoreMetadata::IndexMap::const_iterator it = objectStoreMetadata.indexes.begin(); it != objectStoreMetadata.indexes.end(); ++it) {
+                const IDBIndexMetadata& indexMetadata = it->second;
+
                 RefPtr<ObjectStoreIndex> objectStoreIndex = ObjectStoreIndex::create()
-                    .setName(idbIndex->name())
-                    .setKeyPath(keyPathFromIDBKeyPath(idbIndex->keyPath()))
-                    .setUnique(idbIndex->unique())
-                    .setMultiEntry(idbIndex->multiEntry());
+                    .setName(indexMetadata.name)
+                    .setKeyPath(keyPathFromIDBKeyPath(indexMetadata.keyPath))
+                    .setUnique(indexMetadata.unique)
+                    .setMultiEntry(indexMetadata.multiEntry);
                 indexes->addItem(objectStoreIndex);
             }
-
+            // FIXME: add objectStoreMetadata.autoIncrement property http://webkit.org/b/89701
             RefPtr<ObjectStore> objectStore = ObjectStore::create()
-                .setName(idbObjectStore->name())
-                .setKeyPath(keyPathFromIDBKeyPath(idbObjectStore->keyPath()))
+                .setName(objectStoreMetadata.name)
+                .setKeyPath(keyPathFromIDBKeyPath(objectStoreMetadata.keyPath))
                 .setIndexes(indexes);
             objectStores->addItem(objectStore);
         }
         RefPtr<DatabaseWithObjectStores> result = DatabaseWithObjectStores::create()
-            .setName(idbDatabase->name())
-            .setVersion(idbDatabase->version())
+            .setName(databaseMetadata.name)
+            .setVersion(databaseMetadata.version)
             .setObjectStores(objectStores);
 
         m_frontendProvider->frontend()->databaseLoaded(m_requestId, result);
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to