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

Side by Side Diff: components/previews/core/previews_experiments.cc

Issue 2667243003: Adding a parameter for previews NQE triggering threshold (Closed)
Patch Set: Created 3 years, 10 months 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 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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/previews/core/previews_experiments.h" 5 #include "components/previews/core/previews_experiments.h"
6 6
7 #include <map> 7 #include <map>
8 #include <string> 8 #include <string>
9 9
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
57 57
58 // The amount of time after any opt out that no previews should be shown. 58 // The amount of time after any opt out that no previews should be shown.
59 const char kSingleOptOutDurationInSeconds[] = 59 const char kSingleOptOutDurationInSeconds[] =
60 "single_opt_out_duration_in_seconds"; 60 "single_opt_out_duration_in_seconds";
61 61
62 // The amount of time that an offline page is considered fresh enough to be 62 // The amount of time that an offline page is considered fresh enough to be
63 // shown as a preview. 63 // shown as a preview.
64 const char kOfflinePreviewFreshnessDurationInDays[] = 64 const char kOfflinePreviewFreshnessDurationInDays[] =
65 "offline_preview_freshness_duration_in_days"; 65 "offline_preview_freshness_duration_in_days";
66 66
67 // The threshold of EffectiveConnectionType above which previews will not be
68 // served.
69 // See net/nqe/effective_connection_type.h for mapping from int to value.
70 const char kEffectiveConnectionTypeThreshold[] =
71 "max_allowed_effective_connection_type";
72
67 // The string that corresponds to enabled for the variation param experiments. 73 // The string that corresponds to enabled for the variation param experiments.
68 const char kExperimentEnabled[] = "true"; 74 const char kExperimentEnabled[] = "true";
69 75
70 // Returns the parameter value of |param| as a string. If there is no value for 76 // Returns the parameter value of |param| as a string. If there is no value for
71 // |param|, returns an empty string. 77 // |param|, returns an empty string.
72 std::string ParamValue(const std::string& param) { 78 std::string ParamValue(const std::string& param) {
73 if (!IsIncludedInClientSidePreviewsExperimentsFieldTrial()) 79 if (!IsIncludedInClientSidePreviewsExperimentsFieldTrial())
74 return std::string(); 80 return std::string();
75 std::map<std::string, std::string> experiment_params; 81 std::map<std::string, std::string> experiment_params;
76 if (!variations::GetVariationParams(kClientSidePreviewsFieldTrial, 82 if (!variations::GetVariationParams(kClientSidePreviewsFieldTrial,
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
151 } 157 }
152 158
153 base::TimeDelta OfflinePreviewFreshnessDuration() { 159 base::TimeDelta OfflinePreviewFreshnessDuration() {
154 std::string param_value = ParamValue(kOfflinePreviewFreshnessDurationInDays); 160 std::string param_value = ParamValue(kOfflinePreviewFreshnessDurationInDays);
155 int duration; 161 int duration;
156 if (!base::StringToInt(param_value, &duration)) 162 if (!base::StringToInt(param_value, &duration))
157 duration = 7; 163 duration = 7;
158 return base::TimeDelta::FromDays(duration); 164 return base::TimeDelta::FromDays(duration);
159 } 165 }
160 166
167 net::EffectiveConnectionType EffectiveConnectionTypeThreshold() {
168 std::string param_value = ParamValue(kEffectiveConnectionTypeThreshold);
169 int effective_type_value;
170 if (!base::StringToInt(param_value, &effective_type_value)) {
tbansal1 2017/02/02 00:13:40 You may want to use this function: https://cs.chro
RyanSturm 2017/02/02 00:22:28 Done. Thanks.
171 effective_type_value =
tbansal1 2017/02/02 00:13:40 Instead of 2 static casts, may be just return E_C_
RyanSturm 2017/02/02 00:22:28 Acknowledged.
172 static_cast<int>(net::EFFECTIVE_CONNECTION_TYPE_SLOW_2G);
173 }
174 return static_cast<net::EffectiveConnectionType>(effective_type_value);
175 }
176
161 } // namespace params 177 } // namespace params
162 178
163 bool IsIncludedInClientSidePreviewsExperimentsFieldTrial() { 179 bool IsIncludedInClientSidePreviewsExperimentsFieldTrial() {
164 // By convention, an experiment in the client-side previews study enables use 180 // By convention, an experiment in the client-side previews study enables use
165 // of at least one client-side previews optimization if its name begins with 181 // of at least one client-side previews optimization if its name begins with
166 // "Enabled." 182 // "Enabled."
167 return base::StartsWith( 183 return base::StartsWith(
168 base::FieldTrialList::FindFullName(kClientSidePreviewsFieldTrial), 184 base::FieldTrialList::FindFullName(kClientSidePreviewsFieldTrial),
169 kEnabled, base::CompareCase::SENSITIVE); 185 kEnabled, base::CompareCase::SENSITIVE);
170 } 186 }
(...skipping 11 matching lines...) Expand all
182 bool EnableOfflinePreviewsForTesting() { 198 bool EnableOfflinePreviewsForTesting() {
183 std::map<std::string, std::string> params; 199 std::map<std::string, std::string> params;
184 params[kOfflinePagesSlowNetwork] = kExperimentEnabled; 200 params[kOfflinePagesSlowNetwork] = kExperimentEnabled;
185 return variations::AssociateVariationParams(kClientSidePreviewsFieldTrial, 201 return variations::AssociateVariationParams(kClientSidePreviewsFieldTrial,
186 kEnabled, params) && 202 kEnabled, params) &&
187 base::FieldTrialList::CreateFieldTrial(kClientSidePreviewsFieldTrial, 203 base::FieldTrialList::CreateFieldTrial(kClientSidePreviewsFieldTrial,
188 kEnabled); 204 kEnabled);
189 } 205 }
190 206
191 } // namespace previews 207 } // namespace previews
OLDNEW
« no previous file with comments | « components/previews/core/previews_experiments.h ('k') | components/previews/core/previews_experiments_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698