OLD | NEW |
---|---|
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/common/indexed_db/indexed_db_dispatcher.h" | 5 #include "content/common/indexed_db/indexed_db_dispatcher.h" |
6 | 6 |
7 #include "base/lazy_instance.h" | 7 #include "base/lazy_instance.h" |
8 #include "base/threading/thread_local.h" | 8 #include "base/threading/thread_local.h" |
9 #include "content/common/child_thread.h" | 9 #include "content/common/child_thread.h" |
10 #include "content/common/indexed_db/indexed_db_messages.h" | 10 #include "content/common/indexed_db/indexed_db_messages.h" |
(...skipping 351 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
362 ResetCursorPrefetchCaches(); | 362 ResetCursorPrefetchCaches(); |
363 scoped_ptr<WebIDBCallbacks> callbacks(callbacks_ptr); | 363 scoped_ptr<WebIDBCallbacks> callbacks(callbacks_ptr); |
364 int32 response_id = pending_callbacks_.Add(callbacks.release()); | 364 int32 response_id = pending_callbacks_.Add(callbacks.release()); |
365 Send(new IndexedDBHostMsg_IndexGetObject(idb_index_id, CurrentWorkerId(), | 365 Send(new IndexedDBHostMsg_IndexGetObject(idb_index_id, CurrentWorkerId(), |
366 response_id, key, | 366 response_id, key, |
367 TransactionId(transaction), ec)); | 367 TransactionId(transaction), ec)); |
368 if (*ec) | 368 if (*ec) |
369 pending_callbacks_.Remove(response_id); | 369 pending_callbacks_.Remove(response_id); |
370 } | 370 } |
371 | 371 |
372 void IndexedDBDispatcher::RequestIDBIndexGetObjectByRange( | |
373 const IndexedDBKeyRange& key_range, | |
374 WebIDBCallbacks* callbacks_ptr, | |
375 int32 idb_index_id, | |
376 const WebIDBTransaction& transaction, | |
377 WebExceptionCode* ec) { | |
378 ResetCursorPrefetchCaches(); | |
379 scoped_ptr<WebIDBCallbacks> callbacks(callbacks_ptr); | |
380 int32 response_id = pending_callbacks_.Add(callbacks.release()); | |
381 Send(new IndexedDBHostMsg_IndexGetObjectByRange( | |
382 idb_index_id, CurrentWorkerId(), | |
jsbell
2012/04/18 19:23:44
Should have 4 more spaces of indent
alecflett
2012/04/18 20:16:07
Done.
| |
383 response_id, key_range, | |
384 TransactionId(transaction), ec)); | |
385 if (*ec) | |
386 pending_callbacks_.Remove(response_id); | |
387 } | |
388 | |
372 void IndexedDBDispatcher::RequestIDBIndexGetKey( | 389 void IndexedDBDispatcher::RequestIDBIndexGetKey( |
373 const IndexedDBKey& key, | 390 const IndexedDBKey& key, |
374 WebIDBCallbacks* callbacks_ptr, | 391 WebIDBCallbacks* callbacks_ptr, |
375 int32 idb_index_id, | 392 int32 idb_index_id, |
376 const WebIDBTransaction& transaction, | 393 const WebIDBTransaction& transaction, |
377 WebExceptionCode* ec) { | 394 WebExceptionCode* ec) { |
378 ResetCursorPrefetchCaches(); | 395 ResetCursorPrefetchCaches(); |
379 scoped_ptr<WebIDBCallbacks> callbacks(callbacks_ptr); | 396 scoped_ptr<WebIDBCallbacks> callbacks(callbacks_ptr); |
380 int32 response_id = pending_callbacks_.Add(callbacks.release()); | 397 int32 response_id = pending_callbacks_.Add(callbacks.release()); |
381 Send(new IndexedDBHostMsg_IndexGetKey( | 398 Send(new IndexedDBHostMsg_IndexGetKey( |
382 idb_index_id, CurrentWorkerId(), response_id, key, | 399 idb_index_id, CurrentWorkerId(), response_id, key, |
383 TransactionId(transaction), ec)); | 400 TransactionId(transaction), ec)); |
384 if (*ec) | 401 if (*ec) |
385 pending_callbacks_.Remove(response_id); | 402 pending_callbacks_.Remove(response_id); |
386 } | 403 } |
387 | 404 |
405 void IndexedDBDispatcher::RequestIDBIndexGetKeyByRange( | |
406 const IndexedDBKeyRange& key_range, | |
407 WebIDBCallbacks* callbacks_ptr, | |
408 int32 idb_index_id, | |
409 const WebIDBTransaction& transaction, | |
410 WebExceptionCode* ec) { | |
411 ResetCursorPrefetchCaches(); | |
412 scoped_ptr<WebIDBCallbacks> callbacks(callbacks_ptr); | |
413 int32 response_id = pending_callbacks_.Add(callbacks.release()); | |
414 Send(new IndexedDBHostMsg_IndexGetKeyByRange( | |
415 idb_index_id, CurrentWorkerId(), response_id, key_range, | |
416 TransactionId(transaction), ec)); | |
417 if (*ec) | |
418 pending_callbacks_.Remove(response_id); | |
419 } | |
420 | |
388 void IndexedDBDispatcher::RequestIDBObjectStoreGet( | 421 void IndexedDBDispatcher::RequestIDBObjectStoreGet( |
389 const IndexedDBKey& key, | 422 const IndexedDBKey& key, |
390 WebIDBCallbacks* callbacks_ptr, | 423 WebIDBCallbacks* callbacks_ptr, |
391 int32 idb_object_store_id, | 424 int32 idb_object_store_id, |
392 const WebIDBTransaction& transaction, | 425 const WebIDBTransaction& transaction, |
393 WebExceptionCode* ec) { | 426 WebExceptionCode* ec) { |
394 ResetCursorPrefetchCaches(); | 427 ResetCursorPrefetchCaches(); |
395 scoped_ptr<WebIDBCallbacks> callbacks(callbacks_ptr); | 428 scoped_ptr<WebIDBCallbacks> callbacks(callbacks_ptr); |
396 | 429 |
397 int32 response_id = pending_callbacks_.Add(callbacks.release()); | 430 int32 response_id = pending_callbacks_.Add(callbacks.release()); |
398 Send(new IndexedDBHostMsg_ObjectStoreGet( | 431 Send(new IndexedDBHostMsg_ObjectStoreGet( |
399 idb_object_store_id, CurrentWorkerId(), response_id, | 432 idb_object_store_id, CurrentWorkerId(), response_id, |
400 key, TransactionId(transaction), ec)); | 433 key, TransactionId(transaction), ec)); |
401 if (*ec) | 434 if (*ec) |
402 pending_callbacks_.Remove(response_id); | 435 pending_callbacks_.Remove(response_id); |
403 } | 436 } |
404 | 437 |
438 void IndexedDBDispatcher::RequestIDBObjectStoreGetByRange( | |
439 const IndexedDBKeyRange& key_range, | |
440 WebIDBCallbacks* callbacks_ptr, | |
441 int32 idb_object_store_id, | |
442 const WebIDBTransaction& transaction, | |
443 WebExceptionCode* ec) { | |
444 ResetCursorPrefetchCaches(); | |
445 scoped_ptr<WebIDBCallbacks> callbacks(callbacks_ptr); | |
446 | |
447 int32 response_id = pending_callbacks_.Add(callbacks.release()); | |
448 Send(new IndexedDBHostMsg_ObjectStoreGetByRange( | |
449 idb_object_store_id, CurrentWorkerId(), response_id, | |
450 key_range, TransactionId(transaction), ec)); | |
451 if (*ec) | |
452 pending_callbacks_.Remove(response_id); | |
453 } | |
454 | |
405 void IndexedDBDispatcher::RequestIDBObjectStorePut( | 455 void IndexedDBDispatcher::RequestIDBObjectStorePut( |
406 const content::SerializedScriptValue& value, | 456 const content::SerializedScriptValue& value, |
407 const IndexedDBKey& key, | 457 const IndexedDBKey& key, |
408 WebKit::WebIDBObjectStore::PutMode put_mode, | 458 WebKit::WebIDBObjectStore::PutMode put_mode, |
409 WebIDBCallbacks* callbacks_ptr, | 459 WebIDBCallbacks* callbacks_ptr, |
410 int32 idb_object_store_id, | 460 int32 idb_object_store_id, |
411 const WebIDBTransaction& transaction, | 461 const WebIDBTransaction& transaction, |
412 WebExceptionCode* ec) { | 462 WebExceptionCode* ec) { |
413 ResetCursorPrefetchCaches(); | 463 ResetCursorPrefetchCaches(); |
414 scoped_ptr<WebIDBCallbacks> callbacks(callbacks_ptr); | 464 scoped_ptr<WebIDBCallbacks> callbacks(callbacks_ptr); |
(...skipping 298 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
713 } | 763 } |
714 | 764 |
715 void IndexedDBDispatcher::ResetCursorPrefetchCaches(int32 exception_cursor_id) { | 765 void IndexedDBDispatcher::ResetCursorPrefetchCaches(int32 exception_cursor_id) { |
716 typedef std::map<int32, RendererWebIDBCursorImpl*>::iterator Iterator; | 766 typedef std::map<int32, RendererWebIDBCursorImpl*>::iterator Iterator; |
717 for (Iterator i = cursors_.begin(); i != cursors_.end(); ++i) { | 767 for (Iterator i = cursors_.begin(); i != cursors_.end(); ++i) { |
718 if (i->first == exception_cursor_id) | 768 if (i->first == exception_cursor_id) |
719 continue; | 769 continue; |
720 i->second->ResetPrefetchCache(); | 770 i->second->ResetPrefetchCache(); |
721 } | 771 } |
722 } | 772 } |
OLD | NEW |