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/browser/indexed_db/indexed_db_dispatcher_host.h" | 5 #include "content/browser/indexed_db/indexed_db_dispatcher_host.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
9 #include "base/files/file_path.h" | 9 #include "base/files/file_path.h" |
10 #include "base/memory/scoped_vector.h" | 10 #include "base/memory/scoped_vector.h" |
(...skipping 646 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
657 } | 657 } |
658 } else { | 658 } else { |
659 blob_info[i] = IndexedDBBlobInfo(info.uuid, info.mime_type, info.size); | 659 blob_info[i] = IndexedDBBlobInfo(info.uuid, info.mime_type, info.size); |
660 } | 660 } |
661 } | 661 } |
662 | 662 |
663 // TODO(alecflett): Avoid a copy here. | 663 // TODO(alecflett): Avoid a copy here. |
664 IndexedDBValue value; | 664 IndexedDBValue value; |
665 value.bits = params.value; | 665 value.bits = params.value; |
666 value.blob_info.swap(blob_info); | 666 value.blob_info.swap(blob_info); |
667 connection->database()->Put( | 667 connection->database()->Put(host_transaction_id, |
668 host_transaction_id, | 668 params.object_store_id, |
669 params.object_store_id, | 669 &value, |
670 &value, | 670 &scoped_handles, |
671 &scoped_handles, | 671 make_scoped_ptr(new IndexedDBKey(params.key)), |
672 make_scoped_ptr(new IndexedDBKey(params.key)), | 672 params.put_mode, |
673 static_cast<IndexedDBDatabase::PutMode>(params.put_mode), | 673 callbacks, |
674 callbacks, | 674 params.index_keys); |
675 params.index_keys); | |
676 TransactionIDToSizeMap* map = | 675 TransactionIDToSizeMap* map = |
677 &parent_->database_dispatcher_host_->transaction_size_map_; | 676 &parent_->database_dispatcher_host_->transaction_size_map_; |
678 // Size can't be big enough to overflow because it represents the | 677 // Size can't be big enough to overflow because it represents the |
679 // actual bytes passed through IPC. | 678 // actual bytes passed through IPC. |
680 (*map)[host_transaction_id] += params.value.size(); | 679 (*map)[host_transaction_id] += params.value.size(); |
681 } | 680 } |
682 | 681 |
683 void IndexedDBDispatcherHost::DatabaseDispatcherHost::OnSetIndexKeys( | 682 void IndexedDBDispatcherHost::DatabaseDispatcherHost::OnSetIndexKeys( |
684 const IndexedDBHostMsg_DatabaseSetIndexKeys_Params& params) { | 683 const IndexedDBHostMsg_DatabaseSetIndexKeys_Params& params) { |
685 DCHECK( | 684 DCHECK( |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
722 if (!connection || !connection->IsConnected()) | 721 if (!connection || !connection->IsConnected()) |
723 return; | 722 return; |
724 | 723 |
725 scoped_refptr<IndexedDBCallbacks> callbacks(new IndexedDBCallbacks( | 724 scoped_refptr<IndexedDBCallbacks> callbacks(new IndexedDBCallbacks( |
726 parent_, params.ipc_thread_id, params.ipc_callbacks_id, -1)); | 725 parent_, params.ipc_thread_id, params.ipc_callbacks_id, -1)); |
727 connection->database()->OpenCursor( | 726 connection->database()->OpenCursor( |
728 parent_->HostTransactionId(params.transaction_id), | 727 parent_->HostTransactionId(params.transaction_id), |
729 params.object_store_id, | 728 params.object_store_id, |
730 params.index_id, | 729 params.index_id, |
731 make_scoped_ptr(new IndexedDBKeyRange(params.key_range)), | 730 make_scoped_ptr(new IndexedDBKeyRange(params.key_range)), |
732 static_cast<indexed_db::CursorDirection>(params.direction), | 731 params.direction, |
733 params.key_only, | 732 params.key_only, |
734 static_cast<IndexedDBDatabase::TaskType>(params.task_type), | 733 params.task_type, |
735 callbacks); | 734 callbacks); |
736 } | 735 } |
737 | 736 |
738 void IndexedDBDispatcherHost::DatabaseDispatcherHost::OnCount( | 737 void IndexedDBDispatcherHost::DatabaseDispatcherHost::OnCount( |
739 const IndexedDBHostMsg_DatabaseCount_Params& params) { | 738 const IndexedDBHostMsg_DatabaseCount_Params& params) { |
740 DCHECK( | 739 DCHECK( |
741 parent_->indexed_db_context_->TaskRunner()->RunsTasksOnCurrentThread()); | 740 parent_->indexed_db_context_->TaskRunner()->RunsTasksOnCurrentThread()); |
742 IndexedDBConnection* connection = | 741 IndexedDBConnection* connection = |
743 parent_->GetOrTerminateProcess(&map_, params.ipc_database_id); | 742 parent_->GetOrTerminateProcess(&map_, params.ipc_database_id); |
744 if (!connection || !connection->IsConnected()) | 743 if (!connection || !connection->IsConnected()) |
(...skipping 234 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
979 } | 978 } |
980 | 979 |
981 void IndexedDBDispatcherHost::CursorDispatcherHost::OnDestroyed( | 980 void IndexedDBDispatcherHost::CursorDispatcherHost::OnDestroyed( |
982 int32 ipc_object_id) { | 981 int32 ipc_object_id) { |
983 DCHECK( | 982 DCHECK( |
984 parent_->indexed_db_context_->TaskRunner()->RunsTasksOnCurrentThread()); | 983 parent_->indexed_db_context_->TaskRunner()->RunsTasksOnCurrentThread()); |
985 parent_->DestroyObject(&map_, ipc_object_id); | 984 parent_->DestroyObject(&map_, ipc_object_id); |
986 } | 985 } |
987 | 986 |
988 } // namespace content | 987 } // namespace content |
OLD | NEW |