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 c5549c8699dfa35d3ad78cbaecd9caa2e2290b74..3f8190bd447f08e93739a9a6a11b210f095f3d52 100644 |
| --- a/content/browser/in_process_webkit/indexed_db_dispatcher_host.cc |
| +++ b/content/browser/in_process_webkit/indexed_db_dispatcher_host.cc |
| @@ -21,6 +21,7 @@ |
| #include "content/public/common/content_switches.h" |
| #include "content/public/common/result_codes.h" |
| #include "googleurl/src/gurl.h" |
| +#include "third_party/WebKit/Source/Platform/chromium/public/WebData.h" |
| #include "third_party/WebKit/Source/Platform/chromium/public/WebVector.h" |
| #include "third_party/WebKit/Source/WebKit/chromium/public/WebDOMStringList.h" |
| #include "third_party/WebKit/Source/WebKit/chromium/public/WebIDBCursor.h" |
| @@ -342,6 +343,7 @@ bool IndexedDBDispatcherHost::DatabaseDispatcherHost::OnMessageReceived( |
| IPC_MESSAGE_HANDLER(IndexedDBHostMsg_DatabaseClose, OnClose) |
| IPC_MESSAGE_HANDLER(IndexedDBHostMsg_DatabaseDestroyed, OnDestroyed) |
| IPC_MESSAGE_HANDLER(IndexedDBHostMsg_DatabaseGet, OnGet) |
| + IPC_MESSAGE_HANDLER(IndexedDBHostMsg_DatabasePutOld, OnPutOld) |
| IPC_MESSAGE_HANDLER(IndexedDBHostMsg_DatabasePut, OnPut) |
| IPC_MESSAGE_HANDLER(IndexedDBHostMsg_DatabaseSetIndexKeys, |
| OnSetIndexKeys) |
| @@ -460,8 +462,8 @@ void IndexedDBDispatcherHost::DatabaseDispatcherHost::OnGet( |
| params.key_range, params.key_only, callbacks.release()); |
| } |
| -void IndexedDBDispatcherHost::DatabaseDispatcherHost::OnPut( |
| - const IndexedDBHostMsg_DatabasePut_Params& params) { |
| +void IndexedDBDispatcherHost::DatabaseDispatcherHost::OnPutOld( |
| + const IndexedDBHostMsg_DatabasePutOld_Params& params) { |
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::WEBKIT_DEPRECATED)); |
| WebIDBDatabase* database = parent_->GetOrTerminateProcess( |
| @@ -487,6 +489,33 @@ void IndexedDBDispatcherHost::DatabaseDispatcherHost::OnPut( |
| (*map)[host_transaction_id] += params.value.size(); |
| } |
| +void IndexedDBDispatcherHost::DatabaseDispatcherHost::OnPut( |
| + const IndexedDBHostMsg_DatabasePut_Params& params) { |
| + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::WEBKIT_DEPRECATED)); |
| + |
| + WebIDBDatabase* database = parent_->GetOrTerminateProcess( |
| + &map_, params.ipc_database_id); |
| + if (!database) |
| + return; |
| + scoped_ptr<WebIDBCallbacks> callbacks( |
| + new IndexedDBCallbacks<WebIDBKey>(parent_, params.ipc_thread_id, |
| + params.ipc_response_id)); |
| + |
| + WebKit::WebData value(params.value); |
|
jsbell
2013/02/07 00:06:07
In .cc files we typically add a "using" line near
|
| + int64 host_transaction_id = parent_->HostTransactionId(params.transaction_id); |
| + database->put(host_transaction_id, |
| + params.object_store_id, |
| + value, params.key, |
| + params.put_mode, callbacks.release(), |
| + params.index_ids, |
| + params.index_keys); |
| + WebIDBTransactionIDToSizeMap* map = |
| + &parent_->database_dispatcher_host_->transaction_size_map_; |
| + // Size can't be big enough to overflow because it represents the |
| + // actual bytes passed through IPC. |
| + (*map)[host_transaction_id] += params.value.size(); |
| +} |
| + |
| void IndexedDBDispatcherHost::DatabaseDispatcherHost::OnSetIndexKeys( |
| const IndexedDBHostMsg_DatabaseSetIndexKeys_Params& params) { |
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::WEBKIT_DEPRECATED)); |