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

Side by Side Diff: chrome/browser/prerender/prerender_field_trial.cc

Issue 550453002: Avoid doing periodic prerender cleanup when there are no contents. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Update tests Created 6 years, 3 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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "chrome/browser/prerender/prerender_field_trial.h" 5 #include "chrome/browser/prerender/prerender_field_trial.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/logging.h" 8 #include "base/logging.h"
9 #include "base/metrics/field_trial.h" 9 #include "base/metrics/field_trial.h"
10 #include "base/metrics/histogram.h" 10 #include "base/metrics/histogram.h"
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
83 "DisableSessionStorageNamespaceMerging"; 83 "DisableSessionStorageNamespaceMerging";
84 const char kPrerenderCookieStore[] = "PrerenderCookieStore"; 84 const char kPrerenderCookieStore[] = "PrerenderCookieStore";
85 85
86 void SetupPrerenderFieldTrial() { 86 void SetupPrerenderFieldTrial() {
87 const FieldTrial::Probability divisor = 1000; 87 const FieldTrial::Probability divisor = 1000;
88 88
89 FieldTrial::Probability control_probability; 89 FieldTrial::Probability control_probability;
90 FieldTrial::Probability experiment_multi_prerender_probability; 90 FieldTrial::Probability experiment_multi_prerender_probability;
91 FieldTrial::Probability experiment_15min_ttl_probability; 91 FieldTrial::Probability experiment_15min_ttl_probability;
92 FieldTrial::Probability experiment_no_use_probability; 92 FieldTrial::Probability experiment_no_use_probability;
93 FieldTrial::Probability experiment_match_complete_probability;
93 94
94 chrome::VersionInfo::Channel channel = chrome::VersionInfo::GetChannel(); 95 chrome::VersionInfo::Channel channel = chrome::VersionInfo::GetChannel();
95 if (channel == chrome::VersionInfo::CHANNEL_STABLE || 96 if (channel == chrome::VersionInfo::CHANNEL_STABLE ||
96 channel == chrome::VersionInfo::CHANNEL_BETA) { 97 channel == chrome::VersionInfo::CHANNEL_BETA) {
97 // Use very conservatives and stable settings in beta and stable. 98 // Use very conservatives and stable settings in beta and stable.
98 const FieldTrial::Probability release_prerender_enabled_probability = 980; 99 const FieldTrial::Probability release_prerender_enabled_probability = 970;
99 const FieldTrial::Probability release_control_probability = 10; 100 const FieldTrial::Probability release_control_probability = 10;
100 const FieldTrial::Probability 101 const FieldTrial::Probability
101 release_experiment_multi_prerender_probability = 0; 102 release_experiment_multi_prerender_probability = 0;
102 const FieldTrial::Probability release_experiment_15min_ttl_probability = 10; 103 const FieldTrial::Probability release_experiment_15min_ttl_probability = 10;
103 const FieldTrial::Probability release_experiment_no_use_probability = 0; 104 const FieldTrial::Probability release_experiment_no_use_probability = 0;
105 const FieldTrial::Probability
106 release_experiment_match_complete_probability = 10;
104 COMPILE_ASSERT( 107 COMPILE_ASSERT(
105 release_prerender_enabled_probability + release_control_probability + 108 release_prerender_enabled_probability +
109 release_control_probability +
106 release_experiment_multi_prerender_probability + 110 release_experiment_multi_prerender_probability +
107 release_experiment_15min_ttl_probability + 111 release_experiment_15min_ttl_probability +
108 release_experiment_no_use_probability == divisor, 112 release_experiment_no_use_probability +
113 release_experiment_match_complete_probability == divisor,
109 release_experiment_probabilities_must_equal_divisor); 114 release_experiment_probabilities_must_equal_divisor);
110 115
111 control_probability = release_control_probability; 116 control_probability = release_control_probability;
112 experiment_multi_prerender_probability = 117 experiment_multi_prerender_probability =
113 release_experiment_multi_prerender_probability; 118 release_experiment_multi_prerender_probability;
114 experiment_15min_ttl_probability = release_experiment_15min_ttl_probability; 119 experiment_15min_ttl_probability = release_experiment_15min_ttl_probability;
115 experiment_no_use_probability = release_experiment_no_use_probability; 120 experiment_no_use_probability = release_experiment_no_use_probability;
121 experiment_match_complete_probability =
122 release_experiment_match_complete_probability;
116 } else { 123 } else {
117 // In testing channels, use more experiments and a larger control group to 124 // In testing channels, use more experiments and a larger control group to
118 // improve quality of data. 125 // improve quality of data.
119 const FieldTrial::Probability dev_prerender_enabled_probability = 250; 126 const FieldTrial::Probability dev_prerender_enabled_probability = 200;
120 const FieldTrial::Probability dev_control_probability = 250; 127 const FieldTrial::Probability dev_control_probability = 200;
121 const FieldTrial::Probability 128 const FieldTrial::Probability
122 dev_experiment_multi_prerender_probability = 250; 129 dev_experiment_multi_prerender_probability = 200;
123 const FieldTrial::Probability dev_experiment_15min_ttl_probability = 125; 130 const FieldTrial::Probability dev_experiment_15min_ttl_probability = 100;
124 const FieldTrial::Probability dev_experiment_no_use_probability = 125; 131 const FieldTrial::Probability dev_experiment_no_use_probability = 100;
125 COMPILE_ASSERT(dev_prerender_enabled_probability + dev_control_probability + 132 const FieldTrial::Probability
133 dev_experiment_match_complete_probability = 200;
134 COMPILE_ASSERT(dev_prerender_enabled_probability +
135 dev_control_probability +
126 dev_experiment_multi_prerender_probability + 136 dev_experiment_multi_prerender_probability +
127 dev_experiment_15min_ttl_probability + 137 dev_experiment_15min_ttl_probability +
128 dev_experiment_no_use_probability == divisor, 138 dev_experiment_no_use_probability +
139 dev_experiment_match_complete_probability == divisor,
129 dev_experiment_probabilities_must_equal_divisor); 140 dev_experiment_probabilities_must_equal_divisor);
130 141
131 control_probability = dev_control_probability; 142 control_probability = dev_control_probability;
132 experiment_multi_prerender_probability = 143 experiment_multi_prerender_probability =
133 dev_experiment_multi_prerender_probability; 144 dev_experiment_multi_prerender_probability;
134 experiment_15min_ttl_probability = dev_experiment_15min_ttl_probability; 145 experiment_15min_ttl_probability = dev_experiment_15min_ttl_probability;
135 experiment_no_use_probability = dev_experiment_no_use_probability; 146 experiment_no_use_probability = dev_experiment_no_use_probability;
147 experiment_match_complete_probability =
148 dev_experiment_match_complete_probability;
136 } 149 }
137 150
138 int prerender_enabled_group = -1; 151 int prerender_enabled_group = -1;
139 scoped_refptr<FieldTrial> trial( 152 scoped_refptr<FieldTrial> trial(
140 FieldTrialList::FactoryGetFieldTrial( 153 FieldTrialList::FactoryGetFieldTrial(
141 "Prerender", divisor, "PrerenderEnabled", 154 "Prerender", divisor, "PrerenderEnabled",
142 2014, 12, 31, FieldTrial::SESSION_RANDOMIZED, 155 2014, 12, 31, FieldTrial::SESSION_RANDOMIZED,
143 &prerender_enabled_group)); 156 &prerender_enabled_group));
144 const int control_group = 157 const int control_group =
145 trial->AppendGroup("PrerenderControl", 158 trial->AppendGroup("PrerenderControl",
146 control_probability); 159 control_probability);
147 const int experiment_multi_prerender_group = 160 const int experiment_multi_prerender_group =
148 trial->AppendGroup("PrerenderMulti", 161 trial->AppendGroup("PrerenderMulti",
149 experiment_multi_prerender_probability); 162 experiment_multi_prerender_probability);
150 const int experiment_15_min_TTL_group = 163 const int experiment_15_min_TTL_group =
151 trial->AppendGroup("Prerender15minTTL", 164 trial->AppendGroup("Prerender15minTTL",
152 experiment_15min_ttl_probability); 165 experiment_15min_ttl_probability);
153 const int experiment_no_use_group = 166 const int experiment_no_use_group =
154 trial->AppendGroup("PrerenderNoUse", 167 trial->AppendGroup("PrerenderNoUse",
155 experiment_no_use_probability); 168 experiment_no_use_probability);
169 const int experiment_match_complete_group =
170 trial->AppendGroup("MatchComplete",
171 experiment_match_complete_probability);
156 172
157 const int trial_group = trial->group(); 173 const int trial_group = trial->group();
158 if (trial_group == prerender_enabled_group) { 174 if (trial_group == prerender_enabled_group) {
159 PrerenderManager::SetMode( 175 PrerenderManager::SetMode(
160 PrerenderManager::PRERENDER_MODE_EXPERIMENT_PRERENDER_GROUP); 176 PrerenderManager::PRERENDER_MODE_EXPERIMENT_PRERENDER_GROUP);
161 } else if (trial_group == control_group) { 177 } else if (trial_group == control_group) {
162 PrerenderManager::SetMode( 178 PrerenderManager::SetMode(
163 PrerenderManager::PRERENDER_MODE_EXPERIMENT_CONTROL_GROUP); 179 PrerenderManager::PRERENDER_MODE_EXPERIMENT_CONTROL_GROUP);
164 } else if (trial_group == experiment_multi_prerender_group) { 180 } else if (trial_group == experiment_multi_prerender_group) {
165 PrerenderManager::SetMode( 181 PrerenderManager::SetMode(
166 PrerenderManager::PRERENDER_MODE_EXPERIMENT_MULTI_PRERENDER_GROUP); 182 PrerenderManager::PRERENDER_MODE_EXPERIMENT_MULTI_PRERENDER_GROUP);
167 } else if (trial_group == experiment_15_min_TTL_group) { 183 } else if (trial_group == experiment_15_min_TTL_group) {
168 PrerenderManager::SetMode( 184 PrerenderManager::SetMode(
169 PrerenderManager::PRERENDER_MODE_EXPERIMENT_15MIN_TTL_GROUP); 185 PrerenderManager::PRERENDER_MODE_EXPERIMENT_15MIN_TTL_GROUP);
170 } else if (trial_group == experiment_no_use_group) { 186 } else if (trial_group == experiment_no_use_group) {
171 PrerenderManager::SetMode( 187 PrerenderManager::SetMode(
172 PrerenderManager::PRERENDER_MODE_EXPERIMENT_NO_USE_GROUP); 188 PrerenderManager::PRERENDER_MODE_EXPERIMENT_NO_USE_GROUP);
189 } else if (trial_group == experiment_match_complete_group) {
190 PrerenderManager::SetMode(
191 PrerenderManager::PRERENDER_MODE_EXPERIMENT_MATCH_COMPLETE_GROUP);
173 } else { 192 } else {
174 NOTREACHED(); 193 NOTREACHED();
175 } 194 }
176 } 195 }
177 196
178 } // end namespace 197 } // end namespace
179 198
180 void ConfigureOmniboxPrerender(); 199 void ConfigureOmniboxPrerender();
181 200
182 void ConfigurePrerender(const CommandLine& command_line) { 201 void ConfigurePrerender(const CommandLine& command_line) {
(...skipping 281 matching lines...) Expand 10 before | Expand all | Expand 10 after
464 return GetLocalPredictorSpecValue(kDisableSessionStorageNamespaceMerging) != 483 return GetLocalPredictorSpecValue(kDisableSessionStorageNamespaceMerging) !=
465 kDisabledGroup; 484 kDisabledGroup;
466 } 485 }
467 486
468 bool IsPrerenderCookieStoreEnabled() { 487 bool IsPrerenderCookieStoreEnabled() {
469 return GetLocalPredictorSpecValue(kPrerenderCookieStore) != kDisabledGroup && 488 return GetLocalPredictorSpecValue(kPrerenderCookieStore) != kDisabledGroup &&
470 FieldTrialList::FindFullName(kPrerenderCookieStore) != kDisabledGroup; 489 FieldTrialList::FindFullName(kPrerenderCookieStore) != kDisabledGroup;
471 } 490 }
472 491
473 } // namespace prerender 492 } // namespace prerender
OLDNEW
« no previous file with comments | « chrome/browser/prerender/prerender_browsertest.cc ('k') | chrome/browser/prerender/prerender_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698