| 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 |