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 |