Index: content/browser/indexed_db/indexed_db_dispatcher_host.cc |
diff --git a/content/browser/indexed_db/indexed_db_dispatcher_host.cc b/content/browser/indexed_db/indexed_db_dispatcher_host.cc |
index 9119c511e6154930d8517ba82c7e9dd6cd8a40e4..5284af054ff881d22e3f58d6e3d8b95f280a7d8a 100644 |
--- a/content/browser/indexed_db/indexed_db_dispatcher_host.cc |
+++ b/content/browser/indexed_db/indexed_db_dispatcher_host.cc |
@@ -508,6 +508,7 @@ bool IndexedDBDispatcherHost::DatabaseDispatcherHost::OnMessageReceived( |
OnVersionChangeIgnored) |
IPC_MESSAGE_HANDLER(IndexedDBHostMsg_DatabaseDestroyed, OnDestroyed) |
IPC_MESSAGE_HANDLER(IndexedDBHostMsg_DatabaseGet, OnGet) |
+ IPC_MESSAGE_HANDLER(IndexedDBHostMsg_DatabaseGetAll, OnGetAll) |
IPC_MESSAGE_HANDLER(IndexedDBHostMsg_DatabasePut, OnPutWrapper) |
IPC_MESSAGE_HANDLER(IndexedDBHostMsg_DatabaseSetIndexKeys, OnSetIndexKeys) |
IPC_MESSAGE_HANDLER(IndexedDBHostMsg_DatabaseSetIndexesReady, |
@@ -646,6 +647,23 @@ void IndexedDBDispatcherHost::DatabaseDispatcherHost::OnGet( |
callbacks); |
} |
+void IndexedDBDispatcherHost::DatabaseDispatcherHost::OnGetAll( |
+ const IndexedDBHostMsg_DatabaseGetAll_Params& params) { |
+ DCHECK( |
+ parent_->indexed_db_context_->TaskRunner()->RunsTasksOnCurrentThread()); |
+ IndexedDBConnection* connection = |
+ parent_->GetOrTerminateProcess(&map_, params.ipc_database_id); |
+ if (!connection || !connection->IsConnected()) |
+ return; |
+ |
+ scoped_refptr<IndexedDBCallbacks> callbacks(new IndexedDBCallbacks( |
+ parent_, params.ipc_thread_id, params.ipc_callbacks_id)); |
+ connection->database()->GetAll( |
+ parent_->HostTransactionId(params.transaction_id), params.object_store_id, |
+ make_scoped_ptr(new IndexedDBKeyRange(params.key_range)), |
+ params.max_count, callbacks); |
+} |
+ |
void IndexedDBDispatcherHost::DatabaseDispatcherHost::OnPutWrapper( |
const IndexedDBHostMsg_DatabasePut_Params& params) { |
std::vector<storage::BlobDataHandle*> handles; |