Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(381)

Side by Side Diff: chrome/browser/chromeos/policy/upload_job_impl.cc

Issue 1870793002: Convert //chrome/browser/chromeos from scoped_ptr to std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2015 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2015 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 "chrome/browser/chromeos/policy/upload_job_impl.h" 5 #include "chrome/browser/chromeos/policy/upload_job_impl.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <set> 8 #include <set>
9 #include <utility> 9 #include <utility>
10 10
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
44 44
45 UploadJobImpl::RandomMimeBoundaryGenerator::~RandomMimeBoundaryGenerator() { 45 UploadJobImpl::RandomMimeBoundaryGenerator::~RandomMimeBoundaryGenerator() {
46 } 46 }
47 47
48 // multipart/form-data POST request to upload the data. A DataSegment 48 // multipart/form-data POST request to upload the data. A DataSegment
49 // corresponds to one "Content-Disposition" in the "multipart" request. 49 // corresponds to one "Content-Disposition" in the "multipart" request.
50 class DataSegment { 50 class DataSegment {
51 public: 51 public:
52 DataSegment(const std::string& name, 52 DataSegment(const std::string& name,
53 const std::string& filename, 53 const std::string& filename,
54 scoped_ptr<std::string> data, 54 std::unique_ptr<std::string> data,
55 const std::map<std::string, std::string>& header_entries); 55 const std::map<std::string, std::string>& header_entries);
56 56
57 // Returns the header entries for this DataSegment. 57 // Returns the header entries for this DataSegment.
58 const std::map<std::string, std::string>& GetHeaderEntries() const; 58 const std::map<std::string, std::string>& GetHeaderEntries() const;
59 59
60 // Returns the string that will be assigned to the |name| field in the header. 60 // Returns the string that will be assigned to the |name| field in the header.
61 // |name| must be unique throughout the multipart message. This is enforced in 61 // |name| must be unique throughout the multipart message. This is enforced in
62 // SetUpMultipart(). 62 // SetUpMultipart().
63 const std::string& GetName() const; 63 const std::string& GetName() const;
64 64
65 // Returns the string that will be assigned to the |filename| field in the 65 // Returns the string that will be assigned to the |filename| field in the
66 // header. If the |filename| is the empty string, the header field will be 66 // header. If the |filename| is the empty string, the header field will be
67 // omitted. 67 // omitted.
68 const std::string& GetFilename() const; 68 const std::string& GetFilename() const;
69 69
70 // Returns the data contained in this DataSegment. Ownership is passed. 70 // Returns the data contained in this DataSegment. Ownership is passed.
71 scoped_ptr<std::string> GetData(); 71 std::unique_ptr<std::string> GetData();
72 72
73 // Returns the size in bytes of the blob in |data_|. 73 // Returns the size in bytes of the blob in |data_|.
74 size_t GetDataSize() const; 74 size_t GetDataSize() const;
75 75
76 private: 76 private:
77 const std::string name_; 77 const std::string name_;
78 const std::string filename_; 78 const std::string filename_;
79 scoped_ptr<std::string> data_; 79 std::unique_ptr<std::string> data_;
80 std::map<std::string, std::string> header_entries_; 80 std::map<std::string, std::string> header_entries_;
81 81
82 DISALLOW_COPY_AND_ASSIGN(DataSegment); 82 DISALLOW_COPY_AND_ASSIGN(DataSegment);
83 }; 83 };
84 84
85 DataSegment::DataSegment( 85 DataSegment::DataSegment(
86 const std::string& name, 86 const std::string& name,
87 const std::string& filename, 87 const std::string& filename,
88 scoped_ptr<std::string> data, 88 std::unique_ptr<std::string> data,
89 const std::map<std::string, std::string>& header_entries) 89 const std::map<std::string, std::string>& header_entries)
90 : name_(name), 90 : name_(name),
91 filename_(filename), 91 filename_(filename),
92 data_(std::move(data)), 92 data_(std::move(data)),
93 header_entries_(header_entries) { 93 header_entries_(header_entries) {
94 DCHECK(data_); 94 DCHECK(data_);
95 } 95 }
96 96
97 const std::map<std::string, std::string>& DataSegment::GetHeaderEntries() 97 const std::map<std::string, std::string>& DataSegment::GetHeaderEntries()
98 const { 98 const {
99 return header_entries_; 99 return header_entries_;
100 } 100 }
101 101
102 const std::string& DataSegment::GetName() const { 102 const std::string& DataSegment::GetName() const {
103 return name_; 103 return name_;
104 } 104 }
105 105
106 const std::string& DataSegment::GetFilename() const { 106 const std::string& DataSegment::GetFilename() const {
107 return filename_; 107 return filename_;
108 } 108 }
109 109
110 scoped_ptr<std::string> DataSegment::GetData() { 110 std::unique_ptr<std::string> DataSegment::GetData() {
111 return std::move(data_); 111 return std::move(data_);
112 } 112 }
113 113
114 size_t DataSegment::GetDataSize() const { 114 size_t DataSegment::GetDataSize() const {
115 DCHECK(data_); 115 DCHECK(data_);
116 return data_->size(); 116 return data_->size();
117 } 117 }
118 118
119 std::string UploadJobImpl::RandomMimeBoundaryGenerator::GenerateBoundary() 119 std::string UploadJobImpl::RandomMimeBoundaryGenerator::GenerateBoundary()
120 const { 120 const {
121 return net::GenerateMimeMultipartBoundary(); 121 return net::GenerateMimeMultipartBoundary();
122 } 122 }
123 123
124 UploadJobImpl::UploadJobImpl( 124 UploadJobImpl::UploadJobImpl(
125 const GURL& upload_url, 125 const GURL& upload_url,
126 const std::string& account_id, 126 const std::string& account_id,
127 OAuth2TokenService* token_service, 127 OAuth2TokenService* token_service,
128 scoped_refptr<net::URLRequestContextGetter> url_context_getter, 128 scoped_refptr<net::URLRequestContextGetter> url_context_getter,
129 Delegate* delegate, 129 Delegate* delegate,
130 scoped_ptr<MimeBoundaryGenerator> boundary_generator) 130 std::unique_ptr<MimeBoundaryGenerator> boundary_generator)
131 : OAuth2TokenService::Consumer("cros_upload_job"), 131 : OAuth2TokenService::Consumer("cros_upload_job"),
132 upload_url_(upload_url), 132 upload_url_(upload_url),
133 account_id_(account_id), 133 account_id_(account_id),
134 token_service_(token_service), 134 token_service_(token_service),
135 url_context_getter_(url_context_getter), 135 url_context_getter_(url_context_getter),
136 delegate_(delegate), 136 delegate_(delegate),
137 boundary_generator_(std::move(boundary_generator)), 137 boundary_generator_(std::move(boundary_generator)),
138 state_(IDLE), 138 state_(IDLE),
139 retry_(0) { 139 retry_(0) {
140 DCHECK(token_service_); 140 DCHECK(token_service_);
141 DCHECK(url_context_getter_); 141 DCHECK(url_context_getter_);
142 DCHECK(delegate_); 142 DCHECK(delegate_);
143 if (!upload_url_.is_valid()) { 143 if (!upload_url_.is_valid()) {
144 state_ = ERROR; 144 state_ = ERROR;
145 NOTREACHED() << upload_url_ << " is not a valid URL."; 145 NOTREACHED() << upload_url_ << " is not a valid URL.";
146 } 146 }
147 } 147 }
148 148
149 UploadJobImpl::~UploadJobImpl() { 149 UploadJobImpl::~UploadJobImpl() {
150 } 150 }
151 151
152 void UploadJobImpl::AddDataSegment( 152 void UploadJobImpl::AddDataSegment(
153 const std::string& name, 153 const std::string& name,
154 const std::string& filename, 154 const std::string& filename,
155 const std::map<std::string, std::string>& header_entries, 155 const std::map<std::string, std::string>& header_entries,
156 scoped_ptr<std::string> data) { 156 std::unique_ptr<std::string> data) {
157 // Cannot add data to busy or failed instance. 157 // Cannot add data to busy or failed instance.
158 DCHECK_EQ(IDLE, state_); 158 DCHECK_EQ(IDLE, state_);
159 if (state_ != IDLE) 159 if (state_ != IDLE)
160 return; 160 return;
161 161
162 scoped_ptr<DataSegment> data_segment( 162 std::unique_ptr<DataSegment> data_segment(
163 new DataSegment(name, filename, std::move(data), header_entries)); 163 new DataSegment(name, filename, std::move(data), header_entries));
164 data_segments_.push_back(std::move(data_segment)); 164 data_segments_.push_back(std::move(data_segment));
165 } 165 }
166 166
167 void UploadJobImpl::Start() { 167 void UploadJobImpl::Start() {
168 // Cannot start an upload on a busy or failed instance. 168 // Cannot start an upload on a busy or failed instance.
169 DCHECK_EQ(IDLE, state_); 169 DCHECK_EQ(IDLE, state_);
170 if (state_ != IDLE) 170 if (state_ != IDLE)
171 return; 171 return;
172 RequestAccessToken(); 172 RequestAccessToken();
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
222 data_segment->GetName() + "\""); 222 data_segment->GetName() + "\"");
223 if (!data_segment->GetFilename().empty()) { 223 if (!data_segment->GetFilename().empty()) {
224 post_data_->append("; filename=\"" + data_segment->GetFilename() + "\""); 224 post_data_->append("; filename=\"" + data_segment->GetFilename() + "\"");
225 } 225 }
226 post_data_->append("\r\n"); 226 post_data_->append("\r\n");
227 227
228 // Add custom header fields. 228 // Add custom header fields.
229 for (const auto& entry : data_segment->GetHeaderEntries()) { 229 for (const auto& entry : data_segment->GetHeaderEntries()) {
230 post_data_->append(entry.first + ": " + entry.second + "\r\n"); 230 post_data_->append(entry.first + ": " + entry.second + "\r\n");
231 } 231 }
232 scoped_ptr<std::string> data = data_segment->GetData(); 232 std::unique_ptr<std::string> data = data_segment->GetData();
233 post_data_->append("\r\n" + *data + "\r\n"); 233 post_data_->append("\r\n" + *data + "\r\n");
234 } 234 }
235 post_data_->append("--" + *mime_boundary_.get() + "--\r\n"); 235 post_data_->append("--" + *mime_boundary_.get() + "--\r\n");
236 236
237 // Issues a warning if our buffer size estimate was too small. 237 // Issues a warning if our buffer size estimate was too small.
238 if (post_data_->size() > size) { 238 if (post_data_->size() > size) {
239 LOG(WARNING) 239 LOG(WARNING)
240 << "Reallocation needed in POST data buffer. Expected maximum size " 240 << "Reallocation needed in POST data buffer. Expected maximum size "
241 << size << " bytes, actual size " << post_data_->size() << " bytes."; 241 << size << " bytes, actual size " << post_data_->size() << " bytes.";
242 } 242 }
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
342 if (success) { 342 if (success) {
343 state_ = SUCCESS; 343 state_ = SUCCESS;
344 delegate_->OnSuccess(); 344 delegate_->OnSuccess();
345 } else { 345 } else {
346 state_ = ERROR; 346 state_ = ERROR;
347 delegate_->OnFailure(SERVER_ERROR); 347 delegate_->OnFailure(SERVER_ERROR);
348 } 348 }
349 } 349 }
350 350
351 } // namespace policy 351 } // namespace policy
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/policy/upload_job_impl.h ('k') | chrome/browser/chromeos/policy/upload_job_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698