Chromium Code Reviews| Index: content/browser/in_process_webkit/indexed_db_dispatcher_host.cc |
| diff --git a/content/browser/in_process_webkit/indexed_db_dispatcher_host.cc b/content/browser/in_process_webkit/indexed_db_dispatcher_host.cc |
| index 1f5112509ef6803422e23de14ff2fd322e4095d8..e1d0d53104c3abb8035a9bd6ece273e8d807791c 100644 |
| --- a/content/browser/in_process_webkit/indexed_db_dispatcher_host.cc |
| +++ b/content/browser/in_process_webkit/indexed_db_dispatcher_host.cc |
| @@ -26,6 +26,7 @@ |
| #include "third_party/WebKit/Source/WebKit/chromium/public/WebIDBIndex.h" |
| #include "third_party/WebKit/Source/WebKit/chromium/public/WebIDBKeyPath.h" |
| #include "third_party/WebKit/Source/WebKit/chromium/public/WebIDBKeyRange.h" |
| +#include "third_party/WebKit/Source/WebKit/chromium/public/WebIDBMetadata.h" |
| #include "third_party/WebKit/Source/WebKit/chromium/public/WebIDBObjectStore.h" |
| #include "third_party/WebKit/Source/WebKit/chromium/public/WebIDBTransaction.h" |
| #include "third_party/WebKit/Source/WebKit/chromium/public/WebSecurityOrigin.h" |
| @@ -47,11 +48,14 @@ using WebKit::WebIDBCallbacks; |
| using WebKit::WebIDBCursor; |
| using WebKit::WebIDBDatabase; |
| using WebKit::WebIDBDatabaseError; |
| +using WebKit::WebIDBDatabaseMetadata; |
| using WebKit::WebIDBIndex; |
| +using WebKit::WebIDBIndexMetadata; |
| using WebKit::WebIDBKey; |
| using WebKit::WebIDBKeyPath; |
| using WebKit::WebIDBKeyRange; |
| using WebKit::WebIDBObjectStore; |
| +using WebKit::WebIDBObjectStoreMetadata; |
| using WebKit::WebIDBTransaction; |
| using WebKit::WebSecurityOrigin; |
| using WebKit::WebSerializedScriptValue; |
| @@ -324,6 +328,7 @@ bool IndexedDBDispatcherHost::DatabaseDispatcherHost::OnMessageReceived( |
| bool handled = true; |
| IPC_BEGIN_MESSAGE_MAP_EX(IndexedDBDispatcherHost::DatabaseDispatcherHost, |
| message, *msg_is_ok) |
| + IPC_MESSAGE_HANDLER(IndexedDBHostMsg_DatabaseMetadata, OnMetadata) |
| IPC_MESSAGE_HANDLER(IndexedDBHostMsg_DatabaseName, OnName) |
| IPC_MESSAGE_HANDLER(IndexedDBHostMsg_DatabaseVersion, OnVersion) |
| IPC_MESSAGE_HANDLER(IndexedDBHostMsg_DatabaseObjectStoreNames, |
| @@ -347,6 +352,42 @@ void IndexedDBDispatcherHost::DatabaseDispatcherHost::Send( |
| parent_->Send(message); |
| } |
| +void IndexedDBDispatcherHost::DatabaseDispatcherHost::OnMetadata( |
| + int32 idb_database_id, IndexedDBDatabaseMetadata* metadata) { |
| + WebIDBDatabase* idb_database = parent_->GetOrTerminateProcess( |
| + &map_, idb_database_id); |
| + if (!idb_database) |
| + return; |
| + |
| + WebIDBDatabaseMetadata web_db_metadata = idb_database->metadata(); |
| + metadata->name = web_db_metadata.name; |
| + metadata->version = web_db_metadata.version; |
| + for (size_t i = 0; i < web_db_metadata.objectStores.size(); ++i) { |
| + |
|
jam
2012/06/12 00:44:33
nit: blank line
|
| + const WebIDBObjectStoreMetadata& web_store_metadata = |
| + web_db_metadata.objectStores[i]; |
| + IndexedDBObjectStoreMetadata idb_store_metadata; |
| + idb_store_metadata.name = web_store_metadata.name; |
| + idb_store_metadata.keyPath = IndexedDBKeyPath(web_store_metadata.keyPath); |
| + idb_store_metadata.autoIncrement = web_store_metadata.autoIncrement; |
| + |
| + for (size_t j = 0; j < web_store_metadata.indexes.size(); ++j) { |
| + |
|
jam
2012/06/12 00:44:33
ditto
|
| + const WebIDBIndexMetadata& web_index_metadata = |
| + web_store_metadata.indexes[j]; |
| + IndexedDBIndexMetadata idb_index_metadata; |
| + idb_index_metadata.name = web_index_metadata.name; |
| + idb_index_metadata.keyPath = IndexedDBKeyPath(web_index_metadata.keyPath); |
| + idb_index_metadata.unique = web_index_metadata.unique; |
| + idb_index_metadata.multiEntry = web_index_metadata.multiEntry; |
| + |
| + idb_store_metadata.indexes.push_back(idb_index_metadata); |
| + } |
| + |
| + metadata->object_stores.push_back(idb_store_metadata); |
| + } |
| +} |
| + |
| void IndexedDBDispatcherHost::DatabaseDispatcherHost::OnName( |
| int32 object_id, string16* name) { |
| parent_->SyncGetter<string16>(&map_, object_id, name, &WebIDBDatabase::name); |