OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "components/domain_reliability/context.h" | 5 #include "components/domain_reliability/context.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/json/json_writer.h" | 10 #include "base/json/json_writer.h" |
(...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
216 min_delay, | 216 min_delay, |
217 max_delay); | 217 max_delay); |
218 } | 218 } |
219 | 219 |
220 void DomainReliabilityContext::StartUpload() { | 220 void DomainReliabilityContext::StartUpload() { |
221 MarkUpload(); | 221 MarkUpload(); |
222 | 222 |
223 DCHECK(upload_time_.is_null()); | 223 DCHECK(upload_time_.is_null()); |
224 upload_time_ = time_->NowTicks(); | 224 upload_time_ = time_->NowTicks(); |
225 std::string report_json; | 225 std::string report_json; |
226 scoped_ptr<const Value> report_value(CreateReport(upload_time_)); | 226 base::JSONWriter::Write(*CreateReport(upload_time_), &report_json); |
227 base::JSONWriter::Write(report_value.get(), &report_json); | |
228 report_value.reset(); | |
229 | 227 |
230 size_t collector_index = scheduler_.OnUploadStart(); | 228 size_t collector_index = scheduler_.OnUploadStart(); |
231 | 229 |
232 uploader_->UploadReport( | 230 uploader_->UploadReport( |
233 report_json, | 231 report_json, |
234 config_->collectors[collector_index]->upload_url, | 232 config_->collectors[collector_index]->upload_url, |
235 base::Bind( | 233 base::Bind( |
236 &DomainReliabilityContext::OnUploadComplete, | 234 &DomainReliabilityContext::OnUploadComplete, |
237 weak_factory_.GetWeakPtr())); | 235 weak_factory_.GetWeakPtr())); |
238 | 236 |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
274 beacon.ToValue(upload_time, *last_network_change_time_)); | 272 beacon.ToValue(upload_time, *last_network_change_time_)); |
275 } | 273 } |
276 | 274 |
277 scoped_ptr<ListValue> resources_value(new ListValue()); | 275 scoped_ptr<ListValue> resources_value(new ListValue()); |
278 for (const auto& state : states_) { | 276 for (const auto& state : states_) { |
279 scoped_ptr<Value> resource_report = state->ToValue(upload_time); | 277 scoped_ptr<Value> resource_report = state->ToValue(upload_time); |
280 if (resource_report) | 278 if (resource_report) |
281 resources_value->Append(resource_report.release()); | 279 resources_value->Append(resource_report.release()); |
282 } | 280 } |
283 | 281 |
284 DictionaryValue* report_value = new DictionaryValue(); | 282 scoped_ptr<DictionaryValue> report_value(new DictionaryValue()); |
285 if (!config().version.empty()) | 283 if (!config().version.empty()) |
286 report_value->SetString("config_version", config().version); | 284 report_value->SetString("config_version", config().version); |
287 report_value->SetString("reporter", upload_reporter_string_); | 285 report_value->SetString("reporter", upload_reporter_string_); |
288 report_value->Set("entries", beacons_value.release()); | 286 report_value->Set("entries", beacons_value.release()); |
289 if (!resources_value->empty()) | 287 if (!resources_value->empty()) |
290 report_value->Set("resources", resources_value.release()); | 288 report_value->Set("resources", resources_value.release()); |
291 | 289 |
292 return scoped_ptr<const Value>(report_value); | 290 return report_value.Pass(); |
293 } | 291 } |
294 | 292 |
295 void DomainReliabilityContext::MarkUpload() { | 293 void DomainReliabilityContext::MarkUpload() { |
296 for (auto& state : states_) | 294 for (auto& state : states_) |
297 state->MarkUpload(); | 295 state->MarkUpload(); |
298 DCHECK_EQ(0u, uploading_beacons_size_); | 296 DCHECK_EQ(0u, uploading_beacons_size_); |
299 uploading_beacons_size_ = beacons_.size(); | 297 uploading_beacons_size_ = beacons_.size(); |
300 DCHECK_NE(0u, uploading_beacons_size_); | 298 DCHECK_NE(0u, uploading_beacons_size_); |
301 } | 299 } |
302 | 300 |
(...skipping 22 matching lines...) Expand all Loading... |
325 | 323 |
326 beacons_.pop_front(); | 324 beacons_.pop_front(); |
327 | 325 |
328 // If that just removed a beacon counted in uploading_beacons_size_, decrement | 326 // If that just removed a beacon counted in uploading_beacons_size_, decrement |
329 // that. | 327 // that. |
330 if (uploading_beacons_size_ > 0) | 328 if (uploading_beacons_size_ > 0) |
331 --uploading_beacons_size_; | 329 --uploading_beacons_size_; |
332 } | 330 } |
333 | 331 |
334 } // namespace domain_reliability | 332 } // namespace domain_reliability |
OLD | NEW |