| 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 */ ::indexed_db::mojom::ValuePtr IndexedDBCallbacks::ConvertValue( |
| 135 IndexedDBValue* value) { |
| 136 auto mojo_value = ::indexed_db::mojom::Value::New(); |
| 137 if (!value->empty()) |
| 138 swap(mojo_value->bits, value->bits); |
| 139 ConvertBlobInfo(value->blob_info, &mojo_value->blob_or_file_info); |
| 140 return mojo_value; |
| 141 } |
| 142 |
| 143 IndexedDBCallbacks::IndexedDBCallbacks( | 143 IndexedDBCallbacks::IndexedDBCallbacks( |
| 144 scoped_refptr<IndexedDBDispatcherHost> dispatcher_host, | 144 scoped_refptr<IndexedDBDispatcherHost> dispatcher_host, |
| 145 const url::Origin& origin, | 145 const url::Origin& origin, |
| 146 ::indexed_db::mojom::CallbacksAssociatedPtrInfo callbacks_info) | 146 ::indexed_db::mojom::CallbacksAssociatedPtrInfo callbacks_info) |
| 147 : dispatcher_host_(std::move(dispatcher_host)), | 147 : dispatcher_host_(std::move(dispatcher_host)), |
| 148 origin_(origin), | 148 origin_(origin), |
| 149 data_loss_(blink::WebIDBDataLossNone), | 149 data_loss_(blink::WebIDBDataLossNone), |
| 150 sent_blocked_(false), | 150 sent_blocked_(false), |
| 151 io_helper_( | 151 io_helper_( |
| 152 new IOThreadHelper(std::move(callbacks_info), dispatcher_host_)) { | 152 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"); | 596 IDB_TRACE("IndexedDBCallbacks::CreateAllBlobs"); |
| 597 DCHECK_EQ(blob_info.size(), blob_or_file_info->size()); | 597 DCHECK_EQ(blob_info.size(), blob_or_file_info->size()); |
| 598 if (!dispatcher_host_->blob_storage_context()) | 598 if (!dispatcher_host_->blob_storage_context()) |
| 599 return false; | 599 return false; |
| 600 for (size_t i = 0; i < blob_info.size(); ++i) | 600 for (size_t i = 0; i < blob_info.size(); ++i) |
| 601 (*blob_or_file_info)[i]->uuid = CreateBlobData(blob_info[i]); | 601 (*blob_or_file_info)[i]->uuid = CreateBlobData(blob_info[i]); |
| 602 return true; | 602 return true; |
| 603 } | 603 } |
| 604 | 604 |
| 605 } // namespace content | 605 } // namespace content |
| OLD | NEW |