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

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

Issue 10802024: Make three simultanious prerenders the default maximum in Canary and Dev only. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix field trial Created 8 years, 4 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 | Annotate | Revision Log
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 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
45 2013, 6, 30, NULL)); 45 2013, 6, 30, NULL));
46 const int kPrefetchOnGroup = trial->AppendGroup("ContentPrefetchPrefetchOn", 46 const int kPrefetchOnGroup = trial->AppendGroup("ContentPrefetchPrefetchOn",
47 prefetch_probability); 47 prefetch_probability);
48 PrerenderManager::SetIsPrefetchEnabled(trial->group() == kPrefetchOnGroup); 48 PrerenderManager::SetIsPrefetchEnabled(trial->group() == kPrefetchOnGroup);
49 } 49 }
50 50
51 void SetupPrerenderFieldTrial() { 51 void SetupPrerenderFieldTrial() {
52 const FieldTrial::Probability divisor = 1000; 52 const FieldTrial::Probability divisor = 1000;
53 53
54 FieldTrial::Probability control_probability; 54 FieldTrial::Probability control_probability;
55 FieldTrial::Probability experiment_multi_prerender_probability;
55 FieldTrial::Probability experiment_5min_ttl_probability; 56 FieldTrial::Probability experiment_5min_ttl_probability;
56 FieldTrial::Probability experiment_no_use_probability; 57 FieldTrial::Probability experiment_no_use_probability;
57 58
58 chrome::VersionInfo::Channel channel = chrome::VersionInfo::GetChannel(); 59 chrome::VersionInfo::Channel channel = chrome::VersionInfo::GetChannel();
59 if (channel == chrome::VersionInfo::CHANNEL_STABLE || 60 if (channel == chrome::VersionInfo::CHANNEL_STABLE ||
60 channel == chrome::VersionInfo::CHANNEL_BETA) { 61 channel == chrome::VersionInfo::CHANNEL_BETA) {
61 // Use very conservatives and stable settings in beta and stable. 62 // Use very conservatives and stable settings in beta and stable.
62 const FieldTrial::Probability release_prerender_enabled_probability = 980; 63 const FieldTrial::Probability release_prerender_enabled_probability = 980;
63 const FieldTrial::Probability release_control_probability = 10; 64 const FieldTrial::Probability release_control_probability = 10;
65 const FieldTrial::Probability
66 release_experiment_multi_prerender_probability = 0;
64 const FieldTrial::Probability release_experiment_5min_ttl_probability = 10; 67 const FieldTrial::Probability release_experiment_5min_ttl_probability = 10;
65 const FieldTrial::Probability release_experiment_no_use_probability = 0; 68 const FieldTrial::Probability release_experiment_no_use_probability = 0;
66 COMPILE_ASSERT( 69 COMPILE_ASSERT(
67 release_prerender_enabled_probability + release_control_probability + 70 release_prerender_enabled_probability + release_control_probability +
71 release_experiment_multi_prerender_probability +
68 release_experiment_5min_ttl_probability + 72 release_experiment_5min_ttl_probability +
69 release_experiment_no_use_probability == divisor, 73 release_experiment_no_use_probability == divisor,
70 release_experiment_probabilities_must_equal_divisor); 74 release_experiment_probabilities_must_equal_divisor);
71 75
72 control_probability = release_experiment_5min_ttl_probability; 76 control_probability = release_experiment_5min_ttl_probability;
77 experiment_multi_prerender_probability =
78 release_experiment_multi_prerender_probability;
73 experiment_5min_ttl_probability = release_control_probability; 79 experiment_5min_ttl_probability = release_control_probability;
74 experiment_no_use_probability = release_experiment_no_use_probability; 80 experiment_no_use_probability = release_experiment_no_use_probability;
75 } else { 81 } else {
76 // In testing channels, use more experiments and a larger control group to 82 // In testing channels, use more experiments and a larger control group to
77 // improve quality of data. 83 // improve quality of data.
78 const FieldTrial::Probability dev_prerender_enabled_probability = 333; 84 const FieldTrial::Probability dev_prerender_enabled_probability = 250;
79 const FieldTrial::Probability dev_control_probability = 333; 85 const FieldTrial::Probability dev_control_probability = 250;
80 const FieldTrial::Probability dev_experiment_5min_ttl_probability = 167; 86 const FieldTrial::Probability
81 const FieldTrial::Probability dev_experiment_no_use_probability = 167; 87 dev_experiment_multi_prerender_probability = 250;
88 const FieldTrial::Probability dev_experiment_5min_ttl_probability = 125;
89 const FieldTrial::Probability dev_experiment_no_use_probability = 125;
82 COMPILE_ASSERT(dev_prerender_enabled_probability + dev_control_probability + 90 COMPILE_ASSERT(dev_prerender_enabled_probability + dev_control_probability +
91 dev_experiment_multi_prerender_probability +
83 dev_experiment_5min_ttl_probability + 92 dev_experiment_5min_ttl_probability +
84 dev_experiment_no_use_probability == divisor, 93 dev_experiment_no_use_probability == divisor,
85 dev_experiment_probabilities_must_equal_divisor); 94 dev_experiment_probabilities_must_equal_divisor);
86 95
87 control_probability = dev_experiment_5min_ttl_probability; 96 control_probability = dev_experiment_5min_ttl_probability;
97 experiment_multi_prerender_probability =
98 dev_experiment_multi_prerender_probability;
88 experiment_5min_ttl_probability = dev_control_probability; 99 experiment_5min_ttl_probability = dev_control_probability;
89 experiment_no_use_probability = dev_experiment_no_use_probability; 100 experiment_no_use_probability = dev_experiment_no_use_probability;
90 } 101 }
91 102
92 int prerender_enabled_group = -1; 103 int prerender_enabled_group = -1;
93 scoped_refptr<FieldTrial> trial( 104 scoped_refptr<FieldTrial> trial(
94 FieldTrialList::FactoryGetFieldTrial( 105 FieldTrialList::FactoryGetFieldTrial(
95 "Prerender", divisor, "PrerenderEnabled", 106 "Prerender", divisor, "PrerenderEnabled",
96 2013, 6, 30, &prerender_enabled_group)); 107 2013, 6, 30, &prerender_enabled_group));
97 const int control_group = 108 const int control_group =
98 trial->AppendGroup("PrerenderControl", 109 trial->AppendGroup("PrerenderControl",
99 control_probability); 110 control_probability);
111 const int experiment_multi_prerender_group =
112 trial->AppendGroup("PrerenderMulti",
113 experiment_multi_prerender_probability);
100 const int experiment_5_min_TTL_group = 114 const int experiment_5_min_TTL_group =
101 trial->AppendGroup("Prerender5minTTL", 115 trial->AppendGroup("Prerender5minTTL",
102 experiment_5min_ttl_probability); 116 experiment_5min_ttl_probability);
103 const int experiment_no_use_group = 117 const int experiment_no_use_group =
104 trial->AppendGroup("PrerenderNoUse", 118 trial->AppendGroup("PrerenderNoUse",
105 experiment_no_use_probability); 119 experiment_no_use_probability);
106 120
107 const int trial_group = trial->group(); 121 const int trial_group = trial->group();
108 if (trial_group == prerender_enabled_group) { 122 if (trial_group == prerender_enabled_group) {
109 PrerenderManager::SetMode( 123 PrerenderManager::SetMode(
110 PrerenderManager::PRERENDER_MODE_EXPERIMENT_PRERENDER_GROUP); 124 PrerenderManager::PRERENDER_MODE_EXPERIMENT_PRERENDER_GROUP);
111 } else if (trial_group == control_group) { 125 } else if (trial_group == control_group) {
112 PrerenderManager::SetMode( 126 PrerenderManager::SetMode(
113 PrerenderManager::PRERENDER_MODE_EXPERIMENT_CONTROL_GROUP); 127 PrerenderManager::PRERENDER_MODE_EXPERIMENT_CONTROL_GROUP);
128 } else if (trial_group == experiment_multi_prerender_group) {
129 PrerenderManager::SetMode(
130 PrerenderManager::PRERENDER_MODE_EXPERIMENT_MULTI_PRERENDER_GROUP);
114 } else if (trial_group == experiment_5_min_TTL_group) { 131 } else if (trial_group == experiment_5_min_TTL_group) {
115 PrerenderManager::SetMode( 132 PrerenderManager::SetMode(
116 PrerenderManager::PRERENDER_MODE_EXPERIMENT_5MIN_TTL_GROUP); 133 PrerenderManager::PRERENDER_MODE_EXPERIMENT_5MIN_TTL_GROUP);
117 } else if (trial_group == experiment_no_use_group) { 134 } else if (trial_group == experiment_no_use_group) {
118 PrerenderManager::SetMode( 135 PrerenderManager::SetMode(
119 PrerenderManager::PRERENDER_MODE_EXPERIMENT_NO_USE_GROUP); 136 PrerenderManager::PRERENDER_MODE_EXPERIMENT_NO_USE_GROUP);
120 } else { 137 } else {
121 NOTREACHED(); 138 NOTREACHED();
122 } 139 }
123 } 140 }
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after
271 if (switch_value == switches::kSpeculativeResourcePrefetchingLearning) 288 if (switch_value == switches::kSpeculativeResourcePrefetchingLearning)
272 return true; 289 return true;
273 } 290 }
274 291
275 const int group = FieldTrialList::FindValue( 292 const int group = FieldTrialList::FindValue(
276 kSpeculativePrefetchingLearningTrialName); 293 kSpeculativePrefetchingLearningTrialName);
277 return group == g_speculative_prefetching_learning_default_group_number; 294 return group == g_speculative_prefetching_learning_default_group_number;
278 } 295 }
279 296
280 } // namespace prerender 297 } // namespace prerender
OLDNEW
« no previous file with comments | « chrome/browser/prerender/prerender_config.cc ('k') | chrome/browser/prerender/prerender_histograms.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698