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 5d791afd600ccce243877f25f7ef5b1e75e95e43..c9feca211d24626a52109bdfe79c7f60308c2060 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( |
| + params.transaction_id, |
|
jsbell
2013/01/08 18:44:36
Doesn't this need to be parent_->HostTransactionId
|
| + 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,20 @@ 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(transaction_id, object_store_id); |
|
jsbell
2013/01/08 18:44:36
Ditto
|
| } |
| void IndexedDBDispatcherHost::DatabaseDispatcherHost::OnCreateTransaction( |
| @@ -650,6 +689,43 @@ 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( |
| + params.transaction_id, |
|
jsbell
2013/01/08 18:44:36
Ditto.
|
| + 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(transaction_id, object_store_id, index_id); |
|
jsbell
2013/01/08 18:44:36
Ditto.
|
| +} |
| + |
| + |
| ////////////////////////////////////////////////////////////////////// |
| // IndexedDBDispatcherHost::IndexDispatcherHost |
| // |