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

Side by Side Diff: content/browser/indexed_db/indexed_db_callbacks.cc

Issue 227693008: New IPC message parameters for IDB/Blob support. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Roll in Chris's feedback Created 6 years, 8 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | content/child/indexed_db/indexed_db_dispatcher.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/indexed_db/indexed_db_callbacks.h" 5 #include "content/browser/indexed_db/indexed_db_callbacks.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "content/browser/indexed_db/indexed_db_connection.h" 9 #include "content/browser/indexed_db/indexed_db_connection.h"
10 #include "content/browser/indexed_db/indexed_db_cursor.h" 10 #include "content/browser/indexed_db/indexed_db_cursor.h"
(...skipping 259 matching lines...) Expand 10 before | Expand all | Expand 10 after
270 const IndexedDBKey& key, 270 const IndexedDBKey& key,
271 const IndexedDBKeyPath& key_path) { 271 const IndexedDBKeyPath& key_path) {
272 DCHECK(dispatcher_host_.get()); 272 DCHECK(dispatcher_host_.get());
273 273
274 DCHECK_EQ(kNoCursor, ipc_cursor_id_); 274 DCHECK_EQ(kNoCursor, ipc_cursor_id_);
275 DCHECK_EQ(kNoTransaction, host_transaction_id_); 275 DCHECK_EQ(kNoTransaction, host_transaction_id_);
276 DCHECK_EQ(kNoDatabase, ipc_database_id_); 276 DCHECK_EQ(kNoDatabase, ipc_database_id_);
277 DCHECK_EQ(kNoDatabaseCallbacks, ipc_database_callbacks_id_); 277 DCHECK_EQ(kNoDatabaseCallbacks, ipc_database_callbacks_id_);
278 DCHECK_EQ(blink::WebIDBDataLossNone, data_loss_); 278 DCHECK_EQ(blink::WebIDBDataLossNone, data_loss_);
279 279
280 std::string value_copy; 280 IndexedDBMsg_CallbacksSuccessValueWithKey_Params params;
281 params.ipc_thread_id = ipc_thread_id_;
282 params.ipc_callbacks_id = ipc_callbacks_id_;
283 params.primary_key = key;
284 params.key_path = key_path;
281 if (value && !value->empty()) 285 if (value && !value->empty())
282 std::swap(value_copy, value->bits); 286 std::swap(params.value, value->bits);
283 287
284 dispatcher_host_->Send(new IndexedDBMsg_CallbacksSuccessValueWithKey( 288 dispatcher_host_->Send(new IndexedDBMsg_CallbacksSuccessValueWithKey(params));
285 ipc_thread_id_,
286 ipc_callbacks_id_,
287 // TODO(alecflett): Avoid a copy here.
288 value_copy,
289 key,
290 key_path));
291 dispatcher_host_ = NULL; 289 dispatcher_host_ = NULL;
292 } 290 }
293 291
294 void IndexedDBCallbacks::OnSuccess(IndexedDBValue* value) { 292 void IndexedDBCallbacks::OnSuccess(IndexedDBValue* value) {
295 DCHECK(dispatcher_host_.get()); 293 DCHECK(dispatcher_host_.get());
296 294
297 DCHECK(kNoCursor == ipc_cursor_id_ || value == NULL); 295 DCHECK(kNoCursor == ipc_cursor_id_ || value == NULL);
298 DCHECK_EQ(kNoTransaction, host_transaction_id_); 296 DCHECK_EQ(kNoTransaction, host_transaction_id_);
299 DCHECK_EQ(kNoDatabase, ipc_database_id_); 297 DCHECK_EQ(kNoDatabase, ipc_database_id_);
300 DCHECK_EQ(kNoDatabaseCallbacks, ipc_database_callbacks_id_); 298 DCHECK_EQ(kNoDatabaseCallbacks, ipc_database_callbacks_id_);
301 DCHECK_EQ(blink::WebIDBDataLossNone, data_loss_); 299 DCHECK_EQ(blink::WebIDBDataLossNone, data_loss_);
302 300
303 std::string value_copy; 301 IndexedDBMsg_CallbacksSuccessValue_Params params;
302 params.ipc_thread_id = ipc_thread_id_;
303 params.ipc_callbacks_id = ipc_callbacks_id_;
304 if (value && !value->empty()) 304 if (value && !value->empty())
305 std::swap(value_copy, value->bits); 305 std::swap(params.value, value->bits);
306 306
307 dispatcher_host_->Send(new IndexedDBMsg_CallbacksSuccessValue( 307 dispatcher_host_->Send(new IndexedDBMsg_CallbacksSuccessValue(params));
308 ipc_thread_id_,
309 ipc_callbacks_id_,
310 // TODO(alecflett): avoid a copy here.
311 value_copy));
312 dispatcher_host_ = NULL; 308 dispatcher_host_ = NULL;
313 } 309 }
314 310
315 void IndexedDBCallbacks::OnSuccess(const IndexedDBKey& value) { 311 void IndexedDBCallbacks::OnSuccess(const IndexedDBKey& value) {
316 DCHECK(dispatcher_host_.get()); 312 DCHECK(dispatcher_host_.get());
317 313
318 DCHECK_EQ(kNoCursor, ipc_cursor_id_); 314 DCHECK_EQ(kNoCursor, ipc_cursor_id_);
319 DCHECK_EQ(kNoTransaction, host_transaction_id_); 315 DCHECK_EQ(kNoTransaction, host_transaction_id_);
320 DCHECK_EQ(kNoDatabase, ipc_database_id_); 316 DCHECK_EQ(kNoDatabase, ipc_database_id_);
321 DCHECK_EQ(kNoDatabaseCallbacks, ipc_database_callbacks_id_); 317 DCHECK_EQ(kNoDatabaseCallbacks, ipc_database_callbacks_id_);
(...skipping 26 matching lines...) Expand all
348 DCHECK_EQ(kNoDatabase, ipc_database_id_); 344 DCHECK_EQ(kNoDatabase, ipc_database_id_);
349 DCHECK_EQ(kNoDatabaseCallbacks, ipc_database_callbacks_id_); 345 DCHECK_EQ(kNoDatabaseCallbacks, ipc_database_callbacks_id_);
350 DCHECK_EQ(blink::WebIDBDataLossNone, data_loss_); 346 DCHECK_EQ(blink::WebIDBDataLossNone, data_loss_);
351 347
352 dispatcher_host_->Send(new IndexedDBMsg_CallbacksSuccessUndefined( 348 dispatcher_host_->Send(new IndexedDBMsg_CallbacksSuccessUndefined(
353 ipc_thread_id_, ipc_callbacks_id_)); 349 ipc_thread_id_, ipc_callbacks_id_));
354 dispatcher_host_ = NULL; 350 dispatcher_host_ = NULL;
355 } 351 }
356 352
357 } // namespace content 353 } // namespace content
OLDNEW
« no previous file with comments | « no previous file | content/child/indexed_db/indexed_db_dispatcher.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698