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 38f94fa714fe58301fa3bf6b9e8dff83c893b2a2..4c5bee6ac0c998aaffb48139a5cb87d8c3cfaf2c 100644 |
--- a/content/browser/in_process_webkit/indexed_db_dispatcher_host.cc |
+++ b/content/browser/in_process_webkit/indexed_db_dispatcher_host.cc |
@@ -506,7 +506,10 @@ bool IndexedDBDispatcherHost::IndexDispatcherHost::OnMessageReceived( |
IPC_MESSAGE_HANDLER(IndexedDBHostMsg_IndexOpenKeyCursor, OnOpenKeyCursor) |
IPC_MESSAGE_HANDLER(IndexedDBHostMsg_IndexCount, OnCount) |
IPC_MESSAGE_HANDLER(IndexedDBHostMsg_IndexGetObject, OnGetObject) |
+ IPC_MESSAGE_HANDLER(IndexedDBHostMsg_IndexGetObjectByRange, |
+ OnGetObjectByRange) |
IPC_MESSAGE_HANDLER(IndexedDBHostMsg_IndexGetKey, OnGetKey) |
+ IPC_MESSAGE_HANDLER(IndexedDBHostMsg_IndexGetKeyByRange, OnGetKeyByRange) |
IPC_MESSAGE_HANDLER(IndexedDBHostMsg_IndexDestroyed, OnDestroyed) |
IPC_MESSAGE_UNHANDLED(handled = false) |
IPC_END_MESSAGE_MAP() |
@@ -632,6 +635,28 @@ void IndexedDBDispatcherHost::IndexDispatcherHost::OnGetObject( |
idb_index->getObject(key, callbacks.release(), *idb_transaction, *ec); |
} |
+void IndexedDBDispatcherHost::IndexDispatcherHost::OnGetObjectByRange( |
+ int idb_index_id, |
+ int32 thread_id, |
+ int32 response_id, |
+ const IndexedDBKeyRange& key_range, |
+ int32 transaction_id, |
+ WebKit::WebExceptionCode* ec) { |
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::WEBKIT_DEPRECATED)); |
+ WebIDBIndex* idb_index = parent_->GetOrTerminateProcess( |
+ &map_, idb_index_id); |
+ WebIDBTransaction* idb_transaction = parent_->GetOrTerminateProcess( |
+ &parent_->transaction_dispatcher_host_->map_, transaction_id); |
+ if (!idb_transaction || !idb_index) |
+ return; |
+ |
+ *ec = 0; |
+ scoped_ptr<WebIDBCallbacks> callbacks( |
+ new IndexedDBCallbacks<WebSerializedScriptValue>(parent_, thread_id, |
+ response_id)); |
+ idb_index->getObject(key_range, callbacks.release(), *idb_transaction, *ec); |
+} |
+ |
void IndexedDBDispatcherHost::IndexDispatcherHost::OnGetKey( |
int idb_index_id, |
int32 thread_id, |
@@ -653,6 +678,27 @@ void IndexedDBDispatcherHost::IndexDispatcherHost::OnGetKey( |
idb_index->getKey(key, callbacks.release(), *idb_transaction, *ec); |
} |
+void IndexedDBDispatcherHost::IndexDispatcherHost::OnGetKeyByRange( |
+ int idb_index_id, |
+ int32 thread_id, |
+ int32 response_id, |
+ const IndexedDBKeyRange& key_range, |
+ int32 transaction_id, |
+ WebKit::WebExceptionCode* ec) { |
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::WEBKIT_DEPRECATED)); |
+ WebIDBIndex* idb_index = parent_->GetOrTerminateProcess( |
+ &map_, idb_index_id); |
+ WebIDBTransaction* idb_transaction = parent_->GetOrTerminateProcess( |
+ &parent_->transaction_dispatcher_host_->map_, transaction_id); |
+ if (!idb_transaction || !idb_index) |
+ return; |
+ |
+ *ec = 0; |
+ scoped_ptr<WebIDBCallbacks> callbacks( |
+ new IndexedDBCallbacks<WebIDBKey>(parent_, thread_id, response_id)); |
+ idb_index->getKey(key_range, callbacks.release(), *idb_transaction, *ec); |
+} |
+ |
void IndexedDBDispatcherHost::IndexDispatcherHost::OnDestroyed( |
int32 object_id) { |
parent_->DestroyObject(&map_, object_id); |
@@ -681,6 +727,7 @@ bool IndexedDBDispatcherHost::ObjectStoreDispatcherHost::OnMessageReceived( |
IPC_MESSAGE_HANDLER(IndexedDBHostMsg_ObjectStoreKeyPath, OnKeyPath) |
IPC_MESSAGE_HANDLER(IndexedDBHostMsg_ObjectStoreIndexNames, OnIndexNames) |
IPC_MESSAGE_HANDLER(IndexedDBHostMsg_ObjectStoreGet, OnGet) |
+ IPC_MESSAGE_HANDLER(IndexedDBHostMsg_ObjectStoreGetByRange, OnGetByRange) |
IPC_MESSAGE_HANDLER(IndexedDBHostMsg_ObjectStorePut, OnPut) |
IPC_MESSAGE_HANDLER(IndexedDBHostMsg_ObjectStoreDelete, OnDelete) |
IPC_MESSAGE_HANDLER(IndexedDBHostMsg_ObjectStoreDeleteRange, OnDeleteRange) |
@@ -748,6 +795,28 @@ void IndexedDBDispatcherHost::ObjectStoreDispatcherHost::OnGet( |
idb_object_store->get(key, callbacks.release(), *idb_transaction, *ec); |
} |
+void IndexedDBDispatcherHost::ObjectStoreDispatcherHost::OnGetByRange( |
+ int idb_object_store_id, |
+ int32 thread_id, |
+ int32 response_id, |
+ const IndexedDBKeyRange& key_range, |
+ int32 transaction_id, |
+ WebKit::WebExceptionCode* ec) { |
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::WEBKIT_DEPRECATED)); |
+ WebIDBObjectStore* idb_object_store = parent_->GetOrTerminateProcess( |
+ &map_, idb_object_store_id); |
+ WebIDBTransaction* idb_transaction = parent_->GetOrTerminateProcess( |
+ &parent_->transaction_dispatcher_host_->map_, transaction_id); |
+ if (!idb_transaction || !idb_object_store) |
+ return; |
+ |
+ *ec = 0; |
+ scoped_ptr<WebIDBCallbacks> callbacks( |
+ new IndexedDBCallbacks<WebSerializedScriptValue>(parent_, thread_id, |
+ response_id)); |
+ idb_object_store->get(key_range, callbacks.release(), *idb_transaction, *ec); |
+} |
+ |
void IndexedDBDispatcherHost::ObjectStoreDispatcherHost::OnPut( |
const IndexedDBHostMsg_ObjectStorePut_Params& params, |
WebKit::WebExceptionCode* ec) { |