| 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 // Make sure stdint.h includes SIZE_MAX. (See C89, p259, footnote 221.) | 5 // Make sure stdint.h includes SIZE_MAX. (See C89, p259, footnote 221.) |
| 6 #ifndef __STDC_LIMIT_MACROS | 6 #ifndef __STDC_LIMIT_MACROS |
| 7 #define __STDC_LIMIT_MACROS 1 | 7 #define __STDC_LIMIT_MACROS 1 |
| 8 #endif | 8 #endif |
| 9 | 9 |
| 10 #include "components/domain_reliability/config.h" | 10 #include "components/domain_reliability/config.h" |
| 11 | 11 |
| 12 #include <stdint.h> | 12 #include <stdint.h> |
| 13 | 13 |
| 14 #include "base/json/json_reader.h" | 14 #include "base/json/json_reader.h" |
| 15 #include "base/json/json_value_converter.h" | 15 #include "base/json/json_value_converter.h" |
| 16 #include "base/profiler/scoped_tracker.h" | 16 #include "base/profiler/scoped_tracker.h" |
| 17 #include "base/rand_util.h" | |
| 18 #include "base/strings/pattern.h" | 17 #include "base/strings/pattern.h" |
| 19 #include "base/strings/string_util.h" | 18 #include "base/strings/string_util.h" |
| 20 | 19 |
| 21 namespace { | 20 namespace { |
| 22 | 21 |
| 23 bool ConvertURL(const base::Value* value, GURL* url) { | 22 bool ConvertURL(const base::Value* value, GURL* url) { |
| 24 std::string url_string; | 23 std::string url_string; |
| 25 if (!value->GetAsString(&url_string)) | 24 if (!value->GetAsString(&url_string)) |
| 26 return false; | 25 return false; |
| 27 *url = GURL(url_string); | 26 *url = GURL(url_string); |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 70 } | 69 } |
| 71 | 70 |
| 72 for (const auto& url : collectors) { | 71 for (const auto& url : collectors) { |
| 73 if (!url->is_valid()) | 72 if (!url->is_valid()) |
| 74 return false; | 73 return false; |
| 75 } | 74 } |
| 76 | 75 |
| 77 return true; | 76 return true; |
| 78 } | 77 } |
| 79 | 78 |
| 80 bool DomainReliabilityConfig::DecideIfShouldReportRequest(bool success) const { | 79 double DomainReliabilityConfig::GetSampleRate(bool request_successful) const { |
| 81 double sample_rate = success ? success_sample_rate : failure_sample_rate; | 80 return request_successful ? success_sample_rate : failure_sample_rate; |
| 82 return base::RandDouble() < sample_rate; | |
| 83 } | 81 } |
| 84 | 82 |
| 85 // static | 83 // static |
| 86 void DomainReliabilityConfig::RegisterJSONConverter( | 84 void DomainReliabilityConfig::RegisterJSONConverter( |
| 87 base::JSONValueConverter<DomainReliabilityConfig>* converter) { | 85 base::JSONValueConverter<DomainReliabilityConfig>* converter) { |
| 88 converter->RegisterCustomValueField<GURL>( | 86 converter->RegisterCustomValueField<GURL>( |
| 89 "origin", &DomainReliabilityConfig::origin, &ConvertOrigin); | 87 "origin", &DomainReliabilityConfig::origin, &ConvertOrigin); |
| 90 converter->RegisterBoolField("include_subdomains", | 88 converter->RegisterBoolField("include_subdomains", |
| 91 &DomainReliabilityConfig::include_subdomains); | 89 &DomainReliabilityConfig::include_subdomains); |
| 92 converter->RegisterRepeatedCustomValue( | 90 converter->RegisterRepeatedCustomValue( |
| 93 "collectors", &DomainReliabilityConfig::collectors, &ConvertURL); | 91 "collectors", &DomainReliabilityConfig::collectors, &ConvertURL); |
| 94 converter->RegisterRepeatedString("path_prefixes", | 92 converter->RegisterRepeatedString("path_prefixes", |
| 95 &DomainReliabilityConfig::path_prefixes); | 93 &DomainReliabilityConfig::path_prefixes); |
| 96 converter->RegisterDoubleField("success_sample_rate", | 94 converter->RegisterDoubleField("success_sample_rate", |
| 97 &DomainReliabilityConfig::success_sample_rate); | 95 &DomainReliabilityConfig::success_sample_rate); |
| 98 converter->RegisterDoubleField("failure_sample_rate", | 96 converter->RegisterDoubleField("failure_sample_rate", |
| 99 &DomainReliabilityConfig::failure_sample_rate); | 97 &DomainReliabilityConfig::failure_sample_rate); |
| 100 } | 98 } |
| 101 | 99 |
| 102 } // namespace domain_reliability | 100 } // namespace domain_reliability |
| OLD | NEW |