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_callbacks.h" | 5 #include "content/browser/indexed_db/indexed_db_callbacks.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include <algorithm> | 9 #include <algorithm> |
10 #include <utility> | 10 #include <utility> |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
70 if (value->primary_key.IsValid()) { | 70 if (value->primary_key.IsValid()) { |
71 mojo_value->primary_key = value->primary_key; | 71 mojo_value->primary_key = value->primary_key; |
72 mojo_value->key_path = value->key_path; | 72 mojo_value->key_path = value->key_path; |
73 } | 73 } |
74 if (!value->empty()) | 74 if (!value->empty()) |
75 swap(mojo_value->value->bits, value->bits); | 75 swap(mojo_value->value->bits, value->bits); |
76 ConvertBlobInfo(value->blob_info, &mojo_value->value->blob_or_file_info); | 76 ConvertBlobInfo(value->blob_info, &mojo_value->value->blob_or_file_info); |
77 return mojo_value; | 77 return mojo_value; |
78 } | 78 } |
79 | 79 |
80 // Destructively converts an IndexedDBValue to a Mojo Value. | |
81 ::indexed_db::mojom::ValuePtr ConvertValue(IndexedDBValue* value) { | |
82 auto mojo_value = ::indexed_db::mojom::Value::New(); | |
83 if (!value->empty()) | |
84 swap(mojo_value->bits, value->bits); | |
85 ConvertBlobInfo(value->blob_info, &mojo_value->blob_or_file_info); | |
86 return mojo_value; | |
87 } | |
88 | |
89 } // namespace | 80 } // namespace |
90 | 81 |
91 class IndexedDBCallbacks::IOThreadHelper { | 82 class IndexedDBCallbacks::IOThreadHelper { |
92 public: | 83 public: |
93 IOThreadHelper(CallbacksAssociatedPtrInfo callbacks_info, | 84 IOThreadHelper(CallbacksAssociatedPtrInfo callbacks_info, |
94 scoped_refptr<IndexedDBDispatcherHost> dispatcher_host); | 85 scoped_refptr<IndexedDBDispatcherHost> dispatcher_host); |
95 ~IOThreadHelper(); | 86 ~IOThreadHelper(); |
96 | 87 |
97 void SendError(const IndexedDBDatabaseError& error); | 88 void SendError(const IndexedDBDatabaseError& error); |
98 void SendSuccessStringList(const std::vector<base::string16>& value); | 89 void SendSuccessStringList(const std::vector<base::string16>& value); |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
133 const std::vector<IndexedDBBlobInfo>& blob_info, | 124 const std::vector<IndexedDBBlobInfo>& blob_info, |
134 std::vector<::indexed_db::mojom::BlobInfoPtr>* blob_or_file_info); | 125 std::vector<::indexed_db::mojom::BlobInfoPtr>* blob_or_file_info); |
135 | 126 |
136 private: | 127 private: |
137 scoped_refptr<IndexedDBDispatcherHost> dispatcher_host_; | 128 scoped_refptr<IndexedDBDispatcherHost> dispatcher_host_; |
138 ::indexed_db::mojom::CallbacksAssociatedPtr callbacks_; | 129 ::indexed_db::mojom::CallbacksAssociatedPtr callbacks_; |
139 | 130 |
140 DISALLOW_COPY_AND_ASSIGN(IOThreadHelper); | 131 DISALLOW_COPY_AND_ASSIGN(IOThreadHelper); |
141 }; | 132 }; |
142 | 133 |
| 134 // static |
| 135 ::indexed_db::mojom::ValuePtr IndexedDBCallbacks::ConvertValue( |
| 136 IndexedDBValue* value) { |
| 137 auto mojo_value = ::indexed_db::mojom::Value::New(); |
| 138 if (!value->empty()) |
| 139 swap(mojo_value->bits, value->bits); |
| 140 ConvertBlobInfo(value->blob_info, &mojo_value->blob_or_file_info); |
| 141 return mojo_value; |
| 142 } |
| 143 |
143 IndexedDBCallbacks::IndexedDBCallbacks( | 144 IndexedDBCallbacks::IndexedDBCallbacks( |
144 scoped_refptr<IndexedDBDispatcherHost> dispatcher_host, | 145 scoped_refptr<IndexedDBDispatcherHost> dispatcher_host, |
145 const url::Origin& origin, | 146 const url::Origin& origin, |
146 ::indexed_db::mojom::CallbacksAssociatedPtrInfo callbacks_info) | 147 ::indexed_db::mojom::CallbacksAssociatedPtrInfo callbacks_info) |
147 : dispatcher_host_(std::move(dispatcher_host)), | 148 : dispatcher_host_(std::move(dispatcher_host)), |
148 origin_(origin), | 149 origin_(origin), |
149 data_loss_(blink::WebIDBDataLossNone), | 150 data_loss_(blink::WebIDBDataLossNone), |
150 sent_blocked_(false), | 151 sent_blocked_(false), |
151 io_helper_( | 152 io_helper_( |
152 new IOThreadHelper(std::move(callbacks_info), dispatcher_host_)) { | 153 new IOThreadHelper(std::move(callbacks_info), dispatcher_host_)) { |
(...skipping 443 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
596 IDB_TRACE("IndexedDBCallbacks::CreateAllBlobs"); | 597 IDB_TRACE("IndexedDBCallbacks::CreateAllBlobs"); |
597 DCHECK_EQ(blob_info.size(), blob_or_file_info->size()); | 598 DCHECK_EQ(blob_info.size(), blob_or_file_info->size()); |
598 if (!dispatcher_host_->blob_storage_context()) | 599 if (!dispatcher_host_->blob_storage_context()) |
599 return false; | 600 return false; |
600 for (size_t i = 0; i < blob_info.size(); ++i) | 601 for (size_t i = 0; i < blob_info.size(); ++i) |
601 (*blob_or_file_info)[i]->uuid = CreateBlobData(blob_info[i]); | 602 (*blob_or_file_info)[i]->uuid = CreateBlobData(blob_info[i]); |
602 return true; | 603 return true; |
603 } | 604 } |
604 | 605 |
605 } // namespace content | 606 } // namespace content |
OLD | NEW |