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

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

Issue 1180223006: Domain Reliability: Simplify configs and reports (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase, make requested changes Created 5 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/util.h" 5 #include "components/domain_reliability/util.h"
6 6
7 #include "base/callback.h" 7 #include "base/callback.h"
8 #include "base/logging.h" 8 #include "base/logging.h"
9 #include "base/memory/weak_ptr.h" 9 #include "base/memory/weak_ptr.h"
10 #include "base/time/time.h" 10 #include "base/time/time.h"
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
60 { net::ERR_REQUEST_RANGE_NOT_SATISFIABLE, 60 { net::ERR_REQUEST_RANGE_NOT_SATISFIABLE,
61 "http.request.range_not_satisfiable" }, 61 "http.request.range_not_satisfiable" },
62 { net::ERR_INVALID_RESPONSE, "http.response.invalid" }, 62 { net::ERR_INVALID_RESPONSE, "http.response.invalid" },
63 { net::ERR_RESPONSE_HEADERS_MULTIPLE_CONTENT_DISPOSITION, 63 { net::ERR_RESPONSE_HEADERS_MULTIPLE_CONTENT_DISPOSITION,
64 "http.response.headers.multiple_content_disposition" }, 64 "http.response.headers.multiple_content_disposition" },
65 { net::ERR_RESPONSE_HEADERS_MULTIPLE_CONTENT_LENGTH, 65 { net::ERR_RESPONSE_HEADERS_MULTIPLE_CONTENT_LENGTH,
66 "http.response.headers.multiple_content_length" }, 66 "http.response.headers.multiple_content_length" },
67 { net::ERR_SSL_UNRECOGNIZED_NAME_ALERT, "ssl.unrecognized_name_alert" } 67 { net::ERR_SSL_UNRECOGNIZED_NAME_ALERT, "ssl.unrecognized_name_alert" }
68 }; 68 };
69 69
70 bool CanReportFullBeaconURLToCollector(const GURL& beacon_url,
71 const GURL& collector_url) {
72 return beacon_url.GetOrigin() == collector_url.GetOrigin();
73 }
74
70 } // namespace 75 } // namespace
71 76
72 // static 77 // static
73 bool GetDomainReliabilityBeaconStatus( 78 bool GetDomainReliabilityBeaconStatus(
74 int net_error, 79 int net_error,
75 int http_response_code, 80 int http_response_code,
76 std::string* beacon_status_out) { 81 std::string* beacon_status_out) {
77 if (net_error == net::OK) { 82 if (net_error == net::OK) {
78 if (http_response_code >= 400 && http_response_code < 600) 83 if (http_response_code >= 400 && http_response_code < 600)
79 *beacon_status_out = "http.error"; 84 *beacon_status_out = "http.error";
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
147 retry_after != base::TimeDelta()) { 152 retry_after != base::TimeDelta()) {
148 result->status = DomainReliabilityUploader::UploadResult::RETRY_AFTER; 153 result->status = DomainReliabilityUploader::UploadResult::RETRY_AFTER;
149 result->retry_after = retry_after; 154 result->retry_after = retry_after;
150 return; 155 return;
151 } 156 }
152 157
153 result->status = DomainReliabilityUploader::UploadResult::FAILURE; 158 result->status = DomainReliabilityUploader::UploadResult::FAILURE;
154 return; 159 return;
155 } 160 }
156 161
162 // N.B. This uses a ScopedVector because that's what JSONValueConverter uses
163 // for repeated fields of any type, and Config uses JSONValueConverter to parse
164 // JSON configs.
165 GURL SanitizeURLForReport(const GURL& beacon_url,
166 const GURL& collector_url,
167 const ScopedVector<std::string>& path_prefixes) {
168 if (CanReportFullBeaconURLToCollector(beacon_url, collector_url))
169 return beacon_url.GetAsReferrer();
170
171 std::string path = beacon_url.path();
172 const std::string empty_path;
173 const std::string* longest_path_prefix = &empty_path;
174 for (const std::string* path_prefix : path_prefixes) {
Randy Smith (Not in Mondays) 2015/10/29 22:36:11 nit, suggestion: I'd be inclined to use a const re
Deprecated (see juliatuttle) 2015/11/02 23:19:31 Can't; path_prefixes is a vector of std::string*.
Randy Smith (Not in Mondays) 2015/11/03 21:48:12 Acknowledged.
175 if (path.substr(0, path_prefix->length()) == *path_prefix &&
176 path_prefix->length() > longest_path_prefix->length()) {
177 longest_path_prefix = path_prefix;
178 }
179 }
180
181 GURL::Replacements replacements;
182 replacements.ClearUsername();
183 replacements.ClearPassword();
184 replacements.SetPathStr(*longest_path_prefix);
185 replacements.ClearQuery();
186 replacements.ClearRef();
187 return beacon_url.ReplaceComponents(replacements);
188 }
189
157 namespace { 190 namespace {
158 191
159 class ActualTimer : public MockableTime::Timer { 192 class ActualTimer : public MockableTime::Timer {
160 public: 193 public:
161 // Initialize base timer with retain_user_info and is_repeating false. 194 // Initialize base timer with retain_user_info and is_repeating false.
162 ActualTimer() : base_timer_(false, false) {} 195 ActualTimer() : base_timer_(false, false) {}
163 196
164 ~ActualTimer() override {} 197 ~ActualTimer() override {}
165 198
166 // MockableTime::Timer implementation: 199 // MockableTime::Timer implementation:
(...skipping 23 matching lines...) Expand all
190 ActualTime::~ActualTime() {} 223 ActualTime::~ActualTime() {}
191 224
192 base::Time ActualTime::Now() { return base::Time::Now(); } 225 base::Time ActualTime::Now() { return base::Time::Now(); }
193 base::TimeTicks ActualTime::NowTicks() { return base::TimeTicks::Now(); } 226 base::TimeTicks ActualTime::NowTicks() { return base::TimeTicks::Now(); }
194 227
195 scoped_ptr<MockableTime::Timer> ActualTime::CreateTimer() { 228 scoped_ptr<MockableTime::Timer> ActualTime::CreateTimer() {
196 return scoped_ptr<MockableTime::Timer>(new ActualTimer()); 229 return scoped_ptr<MockableTime::Timer>(new ActualTimer());
197 } 230 }
198 231
199 } // namespace domain_reliability 232 } // namespace domain_reliability
OLDNEW
« components/domain_reliability/monitor.cc ('K') | « components/domain_reliability/util.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698