| 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/util.h" | 5 #include "components/domain_reliability/util.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include "base/callback.h" | 9 #include "base/callback.h" |
| 10 #include "base/logging.h" | 10 #include "base/logging.h" |
| (...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 163 !retry_after.is_zero()) { | 163 !retry_after.is_zero()) { |
| 164 result->status = DomainReliabilityUploader::UploadResult::RETRY_AFTER; | 164 result->status = DomainReliabilityUploader::UploadResult::RETRY_AFTER; |
| 165 result->retry_after = retry_after; | 165 result->retry_after = retry_after; |
| 166 return; | 166 return; |
| 167 } | 167 } |
| 168 | 168 |
| 169 result->status = DomainReliabilityUploader::UploadResult::FAILURE; | 169 result->status = DomainReliabilityUploader::UploadResult::FAILURE; |
| 170 return; | 170 return; |
| 171 } | 171 } |
| 172 | 172 |
| 173 // N.B. This uses a ScopedVector because that's what JSONValueConverter uses | 173 // N.B. This uses a std::vector<std::unique_ptr<>> because that's what |
| 174 // for repeated fields of any type, and Config uses JSONValueConverter to parse | 174 // JSONValueConverter uses for repeated fields of any type, and Config uses |
| 175 // JSON configs. | 175 // JSONValueConverter to parse JSON configs. |
| 176 GURL SanitizeURLForReport(const GURL& beacon_url, | 176 GURL SanitizeURLForReport( |
| 177 const GURL& collector_url, | 177 const GURL& beacon_url, |
| 178 const ScopedVector<std::string>& path_prefixes) { | 178 const GURL& collector_url, |
| 179 const std::vector<std::unique_ptr<std::string>>& path_prefixes) { |
| 179 if (CanReportFullBeaconURLToCollector(beacon_url, collector_url)) | 180 if (CanReportFullBeaconURLToCollector(beacon_url, collector_url)) |
| 180 return beacon_url.GetAsReferrer(); | 181 return beacon_url.GetAsReferrer(); |
| 181 | 182 |
| 182 std::string path = beacon_url.path(); | 183 std::string path = beacon_url.path(); |
| 183 const std::string empty_path; | 184 const std::string empty_path; |
| 184 const std::string* longest_path_prefix = &empty_path; | 185 const std::string* longest_path_prefix = &empty_path; |
| 185 for (const std::string* path_prefix : path_prefixes) { | 186 for (const auto& path_prefix : path_prefixes) { |
| 186 if (path.substr(0, path_prefix->length()) == *path_prefix && | 187 if (path.substr(0, path_prefix->length()) == *path_prefix && |
| 187 path_prefix->length() > longest_path_prefix->length()) { | 188 path_prefix->length() > longest_path_prefix->length()) { |
| 188 longest_path_prefix = path_prefix; | 189 longest_path_prefix = path_prefix.get(); |
| 189 } | 190 } |
| 190 } | 191 } |
| 191 | 192 |
| 192 GURL::Replacements replacements; | 193 GURL::Replacements replacements; |
| 193 replacements.ClearUsername(); | 194 replacements.ClearUsername(); |
| 194 replacements.ClearPassword(); | 195 replacements.ClearPassword(); |
| 195 replacements.SetPathStr(*longest_path_prefix); | 196 replacements.SetPathStr(*longest_path_prefix); |
| 196 replacements.ClearQuery(); | 197 replacements.ClearQuery(); |
| 197 replacements.ClearRef(); | 198 replacements.ClearRef(); |
| 198 return beacon_url.ReplaceComponents(replacements); | 199 return beacon_url.ReplaceComponents(replacements); |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 234 ActualTime::~ActualTime() {} | 235 ActualTime::~ActualTime() {} |
| 235 | 236 |
| 236 base::Time ActualTime::Now() { return base::Time::Now(); } | 237 base::Time ActualTime::Now() { return base::Time::Now(); } |
| 237 base::TimeTicks ActualTime::NowTicks() { return base::TimeTicks::Now(); } | 238 base::TimeTicks ActualTime::NowTicks() { return base::TimeTicks::Now(); } |
| 238 | 239 |
| 239 std::unique_ptr<MockableTime::Timer> ActualTime::CreateTimer() { | 240 std::unique_ptr<MockableTime::Timer> ActualTime::CreateTimer() { |
| 240 return std::unique_ptr<MockableTime::Timer>(new ActualTimer()); | 241 return std::unique_ptr<MockableTime::Timer>(new ActualTimer()); |
| 241 } | 242 } |
| 242 | 243 |
| 243 } // namespace domain_reliability | 244 } // namespace domain_reliability |
| OLD | NEW |