OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/loader/upload_data_stream_builder.h" | 5 #include "content/browser/loader/upload_data_stream_builder.h" |
6 | 6 |
7 #include <stdint.h> | 7 #include <stdint.h> |
8 | 8 |
9 #include <limits> | 9 #include <limits> |
10 #include <utility> | 10 #include <utility> |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
81 std::unique_ptr<net::UploadDataStream> UploadDataStreamBuilder::Build( | 81 std::unique_ptr<net::UploadDataStream> UploadDataStreamBuilder::Build( |
82 ResourceRequestBodyImpl* body, | 82 ResourceRequestBodyImpl* body, |
83 storage::BlobStorageContext* blob_context, | 83 storage::BlobStorageContext* blob_context, |
84 storage::FileSystemContext* file_system_context, | 84 storage::FileSystemContext* file_system_context, |
85 base::SingleThreadTaskRunner* file_task_runner) { | 85 base::SingleThreadTaskRunner* file_task_runner) { |
86 std::vector<std::unique_ptr<net::UploadElementReader>> element_readers; | 86 std::vector<std::unique_ptr<net::UploadElementReader>> element_readers; |
87 for (const auto& element : *body->elements()) { | 87 for (const auto& element : *body->elements()) { |
88 switch (element.type()) { | 88 switch (element.type()) { |
89 case ResourceRequestBodyImpl::Element::TYPE_BYTES: | 89 case ResourceRequestBodyImpl::Element::TYPE_BYTES: |
90 element_readers.push_back( | 90 element_readers.push_back( |
91 base::WrapUnique(new BytesElementReader(body, element))); | 91 base::MakeUnique<BytesElementReader>(body, element)); |
92 break; | 92 break; |
93 case ResourceRequestBodyImpl::Element::TYPE_FILE: | 93 case ResourceRequestBodyImpl::Element::TYPE_FILE: |
94 element_readers.push_back(base::WrapUnique( | 94 element_readers.push_back(base::MakeUnique<FileElementReader>( |
95 new FileElementReader(body, file_task_runner, element))); | 95 body, file_task_runner, element)); |
96 break; | 96 break; |
97 case ResourceRequestBodyImpl::Element::TYPE_FILE_FILESYSTEM: | 97 case ResourceRequestBodyImpl::Element::TYPE_FILE_FILESYSTEM: |
98 // If |body| contains any filesystem URLs, the caller should have | 98 // If |body| contains any filesystem URLs, the caller should have |
99 // supplied a FileSystemContext. | 99 // supplied a FileSystemContext. |
100 DCHECK(file_system_context); | 100 DCHECK(file_system_context); |
101 element_readers.push_back( | 101 element_readers.push_back( |
102 base::WrapUnique(new content::UploadFileSystemFileElementReader( | 102 base::MakeUnique<content::UploadFileSystemFileElementReader>( |
103 file_system_context, element.filesystem_url(), element.offset(), | 103 file_system_context, element.filesystem_url(), element.offset(), |
104 element.length(), element.expected_modification_time()))); | 104 element.length(), element.expected_modification_time())); |
105 break; | 105 break; |
106 case ResourceRequestBodyImpl::Element::TYPE_BLOB: { | 106 case ResourceRequestBodyImpl::Element::TYPE_BLOB: { |
107 DCHECK_EQ(std::numeric_limits<uint64_t>::max(), element.length()); | 107 DCHECK_EQ(std::numeric_limits<uint64_t>::max(), element.length()); |
108 DCHECK_EQ(0ul, element.offset()); | 108 DCHECK_EQ(0ul, element.offset()); |
109 std::unique_ptr<storage::BlobDataHandle> handle = | 109 std::unique_ptr<storage::BlobDataHandle> handle = |
110 blob_context->GetBlobDataFromUUID(element.blob_uuid()); | 110 blob_context->GetBlobDataFromUUID(element.blob_uuid()); |
111 element_readers.push_back( | 111 element_readers.push_back( |
112 base::WrapUnique(new storage::UploadBlobElementReader( | 112 base::MakeUnique<storage::UploadBlobElementReader>( |
113 std::move(handle), file_system_context, file_task_runner))); | 113 std::move(handle), file_system_context, file_task_runner)); |
114 break; | 114 break; |
115 } | 115 } |
116 case ResourceRequestBodyImpl::Element::TYPE_DISK_CACHE_ENTRY: | 116 case ResourceRequestBodyImpl::Element::TYPE_DISK_CACHE_ENTRY: |
117 case ResourceRequestBodyImpl::Element::TYPE_BYTES_DESCRIPTION: | 117 case ResourceRequestBodyImpl::Element::TYPE_BYTES_DESCRIPTION: |
118 case ResourceRequestBodyImpl::Element::TYPE_UNKNOWN: | 118 case ResourceRequestBodyImpl::Element::TYPE_UNKNOWN: |
119 NOTREACHED(); | 119 NOTREACHED(); |
120 break; | 120 break; |
121 } | 121 } |
122 } | 122 } |
123 | 123 |
124 return base::WrapUnique(new net::ElementsUploadDataStream( | 124 return base::MakeUnique<net::ElementsUploadDataStream>( |
125 std::move(element_readers), body->identifier())); | 125 std::move(element_readers), body->identifier()); |
126 } | 126 } |
127 | 127 |
128 } // namespace content | 128 } // namespace content |
OLD | NEW |