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

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

Issue 2667243003: Adding a parameter for previews NQE triggering threshold (Closed)
Patch Set: typo 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 string 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 net::EffectiveConnectionType effective_connection_type;
170 if (!net::GetEffectiveConnectionTypeForName(param_value,
171 &effective_connection_type)) {
172 effective_connection_type = net::EFFECTIVE_CONNECTION_TYPE_SLOW_2G;
173 }
174 return effective_connection_type;
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