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 338ca80eb802e723b527cd42fbd65ead346ef734..a4ec82d52528ac436577342885182675f248da76 100644 |
--- a/content/browser/in_process_webkit/indexed_db_dispatcher_host.cc |
+++ b/content/browser/in_process_webkit/indexed_db_dispatcher_host.cc |
@@ -353,10 +353,14 @@ bool IndexedDBDispatcherHost::DatabaseDispatcherHost::OnMessageReceived( |
IPC_BEGIN_MESSAGE_MAP_EX(IndexedDBDispatcherHost::DatabaseDispatcherHost, |
message, *msg_is_ok) |
IPC_MESSAGE_HANDLER(IndexedDBHostMsg_DatabaseMetadata, OnMetadata) |
+ IPC_MESSAGE_HANDLER(IndexedDBHostMsg_DatabaseCreateObjectStoreOld, |
+ OnCreateObjectStoreOld) |
IPC_MESSAGE_HANDLER(IndexedDBHostMsg_DatabaseCreateObjectStore, |
OnCreateObjectStore) |
IPC_MESSAGE_HANDLER(IndexedDBHostMsg_DatabaseDeleteObjectStore, |
OnDeleteObjectStore) |
+ IPC_MESSAGE_HANDLER(IndexedDBHostMsg_DatabaseDeleteObjectStoreOld, |
+ OnDeleteObjectStoreOld) |
IPC_MESSAGE_HANDLER(IndexedDBHostMsg_DatabaseCreateTransaction, |
OnCreateTransaction) |
IPC_MESSAGE_HANDLER(IndexedDBHostMsg_DatabaseClose, OnClose) |
@@ -371,6 +375,10 @@ bool IndexedDBDispatcherHost::DatabaseDispatcherHost::OnMessageReceived( |
IPC_MESSAGE_HANDLER(IndexedDBHostMsg_DatabaseCount, OnCount) |
IPC_MESSAGE_HANDLER(IndexedDBHostMsg_DatabaseDeleteRange, OnDeleteRange) |
IPC_MESSAGE_HANDLER(IndexedDBHostMsg_DatabaseClear, OnClear) |
+ IPC_MESSAGE_HANDLER(IndexedDBHostMsg_DatabaseCreateIndex, |
+ OnCreateIndex) |
+ IPC_MESSAGE_HANDLER(IndexedDBHostMsg_DatabaseDeleteIndex, |
+ OnDeleteIndex) |
IPC_MESSAGE_UNHANDLED(handled = false) |
IPC_END_MESSAGE_MAP() |
return handled; |
@@ -420,8 +428,8 @@ void IndexedDBDispatcherHost::DatabaseDispatcherHost::OnMetadata( |
} |
} |
-void IndexedDBDispatcherHost::DatabaseDispatcherHost::OnCreateObjectStore( |
- const IndexedDBHostMsg_DatabaseCreateObjectStore_Params& params, |
+void IndexedDBDispatcherHost::DatabaseDispatcherHost::OnCreateObjectStoreOld( |
+ const IndexedDBHostMsg_DatabaseCreateObjectStoreOld_Params& params, |
int32* object_store_id, WebKit::WebExceptionCode* ec) { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::WEBKIT_DEPRECATED)); |
WebIDBDatabase* idb_database = parent_->GetOrTerminateProcess( |
@@ -442,9 +450,27 @@ void IndexedDBDispatcherHost::DatabaseDispatcherHost::OnCreateObjectStore( |
} |
} |
-void IndexedDBDispatcherHost::DatabaseDispatcherHost::OnDeleteObjectStore( |
+void IndexedDBDispatcherHost::DatabaseDispatcherHost::OnCreateObjectStore( |
+ const IndexedDBHostMsg_DatabaseCreateObjectStore_Params& params) { |
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::WEBKIT_DEPRECATED)); |
+ WebIDBDatabase* database = parent_->GetOrTerminateProcess( |
+ &map_, params.ipc_database_id); |
+ if (!database) |
+ return; |
+ |
+ database->createObjectStore( |
+ parent_->HostTransactionId(params.transaction_id), |
+ params.object_store_id, |
+ params.name, params.key_path, params.auto_increment); |
+ if (parent_->Context()->IsOverQuota( |
+ database_url_map_[params.ipc_database_id])) { |
+ database->abort(params.transaction_id); |
+ } |
+} |
+ |
+void IndexedDBDispatcherHost::DatabaseDispatcherHost::OnDeleteObjectStoreOld( |
int32 ipc_database_id, |
- int64 index_id, |
+ int64 object_store_id, |
int32 ipc_transaction_id, |
WebKit::WebExceptionCode* ec) { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::WEBKIT_DEPRECATED)); |
@@ -456,7 +482,21 @@ void IndexedDBDispatcherHost::DatabaseDispatcherHost::OnDeleteObjectStore( |
return; |
*ec = 0; |
- idb_database->deleteObjectStore(index_id, *idb_transaction, *ec); |
+ idb_database->deleteObjectStore(object_store_id, *idb_transaction, *ec); |
+} |
+ |
+void IndexedDBDispatcherHost::DatabaseDispatcherHost::OnDeleteObjectStore( |
+ int32 ipc_database_id, |
+ int64 transaction_id, |
+ int64 object_store_id) { |
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::WEBKIT_DEPRECATED)); |
+ WebIDBDatabase* database = parent_->GetOrTerminateProcess( |
+ &map_, ipc_database_id); |
+ if (!database) |
+ return; |
+ |
+ database->deleteObjectStore(parent_->HostTransactionId(transaction_id), |
+ object_store_id); |
} |
void IndexedDBDispatcherHost::DatabaseDispatcherHost::OnCreateTransaction( |
@@ -650,6 +690,44 @@ void IndexedDBDispatcherHost::DatabaseDispatcherHost::OnClear( |
object_store_id, callbacks.release()); |
} |
+void IndexedDBDispatcherHost::DatabaseDispatcherHost::OnCreateIndex( |
+ const IndexedDBHostMsg_DatabaseCreateIndex_Params& params) { |
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::WEBKIT_DEPRECATED)); |
+ WebIDBDatabase* database = parent_->GetOrTerminateProcess( |
+ &map_, params.ipc_database_id); |
+ if (!database) |
+ return; |
+ |
+ database->createIndex( |
+ parent_->HostTransactionId(params.transaction_id), |
+ params.object_store_id, |
+ params.index_id, |
+ params.name, |
+ params.key_path, |
+ params.unique, |
+ params.multi_entry); |
+ if (parent_->Context()->IsOverQuota( |
+ database_url_map_[params.ipc_database_id])) { |
+ database->abort(params.transaction_id); |
+ } |
+} |
+ |
+void IndexedDBDispatcherHost::DatabaseDispatcherHost::OnDeleteIndex( |
+ int32 ipc_database_id, |
+ int64 transaction_id, |
+ int64 object_store_id, |
+ int64 index_id) { |
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::WEBKIT_DEPRECATED)); |
+ WebIDBDatabase* database = parent_->GetOrTerminateProcess( |
+ &map_, ipc_database_id); |
+ if (!database) |
+ return; |
+ |
+ database->deleteIndex(parent_->HostTransactionId(transaction_id), |
+ object_store_id, index_id); |
+} |
+ |
+ |
////////////////////////////////////////////////////////////////////// |
// IndexedDBDispatcherHost::IndexDispatcherHost |
// |