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

Side by Side Diff: components/domain_reliability/context.cc

Issue 691053003: Domain Reliability: Mark beacons from previous networks. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix Context unittest Created 6 years, 1 month 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 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 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
94 DISALLOW_COPY_AND_ASSIGN(ResourceState); 94 DISALLOW_COPY_AND_ASSIGN(ResourceState);
95 }; 95 };
96 96
97 // static 97 // static
98 const size_t DomainReliabilityContext::kMaxQueuedBeacons = 150; 98 const size_t DomainReliabilityContext::kMaxQueuedBeacons = 150;
99 99
100 DomainReliabilityContext::DomainReliabilityContext( 100 DomainReliabilityContext::DomainReliabilityContext(
101 MockableTime* time, 101 MockableTime* time,
102 const DomainReliabilityScheduler::Params& scheduler_params, 102 const DomainReliabilityScheduler::Params& scheduler_params,
103 const std::string& upload_reporter_string, 103 const std::string& upload_reporter_string,
104 const base::TimeTicks* last_network_change_time,
104 DomainReliabilityDispatcher* dispatcher, 105 DomainReliabilityDispatcher* dispatcher,
105 DomainReliabilityUploader* uploader, 106 DomainReliabilityUploader* uploader,
106 scoped_ptr<const DomainReliabilityConfig> config) 107 scoped_ptr<const DomainReliabilityConfig> config)
107 : config_(config.Pass()), 108 : config_(config.Pass()),
108 time_(time), 109 time_(time),
109 upload_reporter_string_(upload_reporter_string), 110 upload_reporter_string_(upload_reporter_string),
110 scheduler_(time, 111 scheduler_(time,
111 config_->collectors.size(), 112 config_->collectors.size(),
112 scheduler_params, 113 scheduler_params,
113 base::Bind(&DomainReliabilityContext::ScheduleUpload, 114 base::Bind(&DomainReliabilityContext::ScheduleUpload,
114 base::Unretained(this))), 115 base::Unretained(this))),
115 dispatcher_(dispatcher), 116 dispatcher_(dispatcher),
116 uploader_(uploader), 117 uploader_(uploader),
117 uploading_beacons_size_(0), 118 uploading_beacons_size_(0),
119 last_network_change_time_(last_network_change_time),
118 weak_factory_(this) { 120 weak_factory_(this) {
119 InitializeResourceStates(); 121 InitializeResourceStates();
120 } 122 }
121 123
122 DomainReliabilityContext::~DomainReliabilityContext() {} 124 DomainReliabilityContext::~DomainReliabilityContext() {}
123 125
124 void DomainReliabilityContext::OnBeacon(const GURL& url, 126 void DomainReliabilityContext::OnBeacon(const GURL& url,
125 const DomainReliabilityBeacon& beacon) { 127 const DomainReliabilityBeacon& beacon) {
126 size_t index = config_->GetResourceIndexForUrl(url); 128 size_t index = config_->GetResourceIndexForUrl(url);
127 if (index == DomainReliabilityConfig::kInvalidResourceIndex) 129 if (index == DomainReliabilityConfig::kInvalidResourceIndex)
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
253 UMA_HISTOGRAM_MEDIUM_TIMES("DomainReliability.UploadDuration", 255 UMA_HISTOGRAM_MEDIUM_TIMES("DomainReliability.UploadDuration",
254 time_->NowTicks() - upload_time_); 256 time_->NowTicks() - upload_time_);
255 last_upload_time_ = upload_time_; 257 last_upload_time_ = upload_time_;
256 upload_time_ = base::TimeTicks(); 258 upload_time_ = base::TimeTicks();
257 } 259 }
258 260
259 scoped_ptr<const Value> DomainReliabilityContext::CreateReport( 261 scoped_ptr<const Value> DomainReliabilityContext::CreateReport(
260 base::TimeTicks upload_time) const { 262 base::TimeTicks upload_time) const {
261 scoped_ptr<ListValue> beacons_value(new ListValue()); 263 scoped_ptr<ListValue> beacons_value(new ListValue());
262 for (BeaconConstIterator it = beacons_.begin(); it != beacons_.end(); ++it) 264 for (BeaconConstIterator it = beacons_.begin(); it != beacons_.end(); ++it)
263 beacons_value->Append(it->ToValue(upload_time)); 265 beacons_value->Append(it->ToValue(upload_time, *last_network_change_time_));
264 266
265 scoped_ptr<ListValue> resources_value(new ListValue()); 267 scoped_ptr<ListValue> resources_value(new ListValue());
266 for (ResourceStateIterator it = states_.begin(); it != states_.end(); ++it) { 268 for (ResourceStateIterator it = states_.begin(); it != states_.end(); ++it) {
267 scoped_ptr<Value> resource_report = (*it)->ToValue(upload_time); 269 scoped_ptr<Value> resource_report = (*it)->ToValue(upload_time);
268 if (resource_report) 270 if (resource_report)
269 resources_value->Append(resource_report.release()); 271 resources_value->Append(resource_report.release());
270 } 272 }
271 273
272 DictionaryValue* report_value = new DictionaryValue(); 274 DictionaryValue* report_value = new DictionaryValue();
273 if (!config().version.empty()) 275 if (!config().version.empty())
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
313 315
314 beacons_.pop_front(); 316 beacons_.pop_front();
315 317
316 // If that just removed a beacon counted in uploading_beacons_size_, decrement 318 // If that just removed a beacon counted in uploading_beacons_size_, decrement
317 // that. 319 // that.
318 if (uploading_beacons_size_ > 0) 320 if (uploading_beacons_size_ > 0)
319 --uploading_beacons_size_; 321 --uploading_beacons_size_;
320 } 322 }
321 323
322 } // namespace domain_reliability 324 } // namespace domain_reliability
OLDNEW
« no previous file with comments | « components/domain_reliability/context.h ('k') | components/domain_reliability/context_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698