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 00d8514e49780be7a1c50d0389b076c98cdca79a..2875a43bbb7c3d28c628044518a7f17c365db4d8 100644 |
--- a/content/browser/in_process_webkit/indexed_db_dispatcher_host.cc |
+++ b/content/browser/in_process_webkit/indexed_db_dispatcher_host.cc |
@@ -706,6 +706,7 @@ bool IndexedDBDispatcherHost::ObjectStoreDispatcherHost::OnMessageReceived( |
IPC_MESSAGE_HANDLER(IndexedDBHostMsg_ObjectStoreGet, OnGet) |
IPC_MESSAGE_HANDLER(IndexedDBHostMsg_ObjectStorePut, OnPut) |
IPC_MESSAGE_HANDLER(IndexedDBHostMsg_ObjectStoreDelete, OnDelete) |
+ IPC_MESSAGE_HANDLER(IndexedDBHostMsg_ObjectStoreDeleteRange, OnDeleteRange) |
IPC_MESSAGE_HANDLER(IndexedDBHostMsg_ObjectStoreClear, OnClear) |
IPC_MESSAGE_HANDLER(IndexedDBHostMsg_ObjectStoreCreateIndex, OnCreateIndex) |
IPC_MESSAGE_HANDLER(IndexedDBHostMsg_ObjectStoreIndex, OnIndex) |
@@ -818,6 +819,29 @@ void IndexedDBDispatcherHost::ObjectStoreDispatcherHost::OnDelete( |
key, callbacks.release(), *idb_transaction, *ec); |
} |
+void IndexedDBDispatcherHost::ObjectStoreDispatcherHost::OnDeleteRange( |
+ 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->deleteFunction( |
+ key_range, callbacks.release(), *idb_transaction, *ec); |
+} |
+ |
void IndexedDBDispatcherHost::ObjectStoreDispatcherHost::OnClear( |
int idb_object_store_id, |
int32 thread_id, |