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

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

Issue 1497803004: Domain Reliability: Add sample_rate field to Beacon (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add more sample rate tests Created 5 years 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
« no previous file with comments | « components/domain_reliability/config.h ('k') | components/domain_reliability/context.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 // 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
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
OLDNEW
« no previous file with comments | « components/domain_reliability/config.h ('k') | components/domain_reliability/context.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698