Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(513)

Unified Diff: content/browser/in_process_webkit/indexed_db_dispatcher_host.cc

Issue 11791009: IPC implementation for create/delete ObjectStore/Index (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Created 7 years, 12 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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
//

Powered by Google App Engine
This is Rietveld 408576698