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

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: add an histogram Created 8 years, 5 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 30 matching lines...) Expand all
41 "Prefetch", divisor, "ContentPrefetchPrefetchOff", 41 "Prefetch", divisor, "ContentPrefetchPrefetchOff",
42 2013, 6, 30, NULL)); 42 2013, 6, 30, NULL));
43 const int kPrefetchOnGroup = trial->AppendGroup("ContentPrefetchPrefetchOn", 43 const int kPrefetchOnGroup = trial->AppendGroup("ContentPrefetchPrefetchOn",
44 prefetch_probability); 44 prefetch_probability);
45 PrerenderManager::SetIsPrefetchEnabled(trial->group() == kPrefetchOnGroup); 45 PrerenderManager::SetIsPrefetchEnabled(trial->group() == kPrefetchOnGroup);
46 } 46 }
47 47
48 void SetupPrerenderFieldTrial() { 48 void SetupPrerenderFieldTrial() {
49 base::FieldTrial::Probability divisor = 1000; 49 base::FieldTrial::Probability divisor = 1000;
50 50
51 base::FieldTrial::Probability exp1_probability = 166; 51 base::FieldTrial::Probability exp1_probability = 150;
dominich 2012/07/19 16:04:38 I would very much like to remove half of these now
gavinp 2012/07/23 18:35:21 I like that plan, but I figured a separate CL for
52 base::FieldTrial::Probability exp1_5min_ttl_probability = 83; 52 base::FieldTrial::Probability exp1_5min_ttl_probability = 67;
53 base::FieldTrial::Probability control1_probability = 166; 53 base::FieldTrial::Probability control1_probability = 150;
54 base::FieldTrial::Probability no_use1_probability = 83; 54 base::FieldTrial::Probability no_use1_probability = 67;
55 base::FieldTrial::Probability one_prerender1_probability = 66;
dominich 2012/07/19 16:04:38 We should flip this around. have exp[12] be single
gavinp 2012/07/23 18:35:21 Done.
55 56
56 base::FieldTrial::Probability exp2_probability = 167; 57 base::FieldTrial::Probability exp2_probability = 150;
57 base::FieldTrial::Probability exp2_5min_ttl_probability = 84; 58 base::FieldTrial::Probability exp2_5min_ttl_probability = 67;
58 base::FieldTrial::Probability control2_probability = 167; 59 base::FieldTrial::Probability control2_probability = 150;
59 base::FieldTrial::Probability no_use2_probability = 84; 60 base::FieldTrial::Probability no_use2_probability = 67;
61 base::FieldTrial::Probability one_prerender2_probability = 66;
60 62
61 chrome::VersionInfo::Channel channel = chrome::VersionInfo::GetChannel(); 63 chrome::VersionInfo::Channel channel = chrome::VersionInfo::GetChannel();
62 if (channel == chrome::VersionInfo::CHANNEL_STABLE || 64 if (channel == chrome::VersionInfo::CHANNEL_STABLE ||
63 channel == chrome::VersionInfo::CHANNEL_BETA) { 65 channel == chrome::VersionInfo::CHANNEL_BETA) {
64 exp1_probability = 490; 66 exp1_probability = 0;
65 exp1_5min_ttl_probability = 5; 67 exp1_5min_ttl_probability = 5;
66 control1_probability = 5; 68 control1_probability = 5;
67 no_use1_probability = 0; 69 no_use1_probability = 0;
68 exp2_probability = 490; 70 one_prerender1_probability = 490;
71 exp2_probability = 0;
69 exp2_5min_ttl_probability = 5; 72 exp2_5min_ttl_probability = 5;
70 control2_probability = 5; 73 control2_probability = 5;
71 no_use2_probability = 0; 74 no_use2_probability = 0;
75 one_prerender2_probability = 490;
72 } 76 }
73 CHECK_EQ(divisor, exp1_probability + exp1_5min_ttl_probability + 77 CHECK_EQ(divisor, exp1_probability + exp1_5min_ttl_probability +
74 control1_probability + no_use1_probability + exp2_probability + 78 control1_probability + no_use1_probability +
79 one_prerender1_probability + exp2_probability +
75 exp2_5min_ttl_probability + control2_probability + 80 exp2_5min_ttl_probability + control2_probability +
76 no_use2_probability); 81 no_use2_probability + one_prerender2_probability);
77 int experiment_1_group = -1; 82 int experiment_1_group = -1;
78 scoped_refptr<base::FieldTrial> trial( 83 scoped_refptr<base::FieldTrial> trial(
79 base::FieldTrialList::FactoryGetFieldTrial( 84 base::FieldTrialList::FactoryGetFieldTrial(
80 "Prerender", divisor, "ContentPrefetchPrerender1", 85 "Prerender", divisor, "ContentPrefetchPrerender1",
81 2013, 6, 30, &experiment_1_group)); 86 2013, 6, 30, &experiment_1_group));
82 87
83 const int experiment_15_min_TTL_group = 88 const int experiment_15_min_TTL_group =
84 trial->AppendGroup("ContentPrefetchPrerenderExp5minTTL1", 89 trial->AppendGroup("ContentPrefetchPrerenderExp5minTTL1",
85 exp1_5min_ttl_probability); 90 exp1_5min_ttl_probability);
86 const int control_1_group = 91 const int control_1_group =
87 trial->AppendGroup("ContentPrefetchPrerenderControl1", 92 trial->AppendGroup("ContentPrefetchPrerenderControl1",
88 control1_probability); 93 control1_probability);
89 const int no_use_1_group = 94 const int no_use_1_group =
90 trial->AppendGroup("ContentPrefetchPrerenderNoUse1", 95 trial->AppendGroup("ContentPrefetchPrerenderNoUse1",
91 no_use1_probability); 96 no_use1_probability);
97 const int one_prerender_1_group =
98 trial->AppendGroup("ContentPrefetchPrerenderOne",
99 one_prerender1_probability);
92 const int experiment_2_group = 100 const int experiment_2_group =
93 trial->AppendGroup("ContentPrefetchPrerender2", 101 trial->AppendGroup("ContentPrefetchPrerender2",
94 exp2_probability); 102 exp2_probability);
95 const int experiment_25_min_TTL_group = 103 const int experiment_25_min_TTL_group =
96 trial->AppendGroup("ContentPrefetchPrerenderExp5minTTL2", 104 trial->AppendGroup("ContentPrefetchPrerenderExp5minTTL2",
97 exp2_5min_ttl_probability); 105 exp2_5min_ttl_probability);
98 const int control_2_group = 106 const int control_2_group =
99 trial->AppendGroup("ContentPrefetchPrerenderControl2", 107 trial->AppendGroup("ContentPrefetchPrerenderControl2",
100 control2_probability); 108 control2_probability);
101 const int no_use_2_group = 109 const int no_use_2_group =
102 trial->AppendGroup("ContentPrefetchPrerenderNoUse2", 110 trial->AppendGroup("ContentPrefetchPrerenderNoUse2",
103 no_use2_probability); 111 no_use2_probability);
112 const int one_prerender_2_group =
113 trial->AppendGroup("ContentPrefetchPrerenderOne",
114 one_prerender2_probability);
104 const int trial_group = trial->group(); 115 const int trial_group = trial->group();
105 if (trial_group == experiment_1_group || 116 if (trial_group == experiment_1_group ||
106 trial_group == experiment_2_group) { 117 trial_group == experiment_2_group) {
107 PrerenderManager::SetMode( 118 PrerenderManager::SetMode(
108 PrerenderManager::PRERENDER_MODE_EXPERIMENT_PRERENDER_GROUP); 119 PrerenderManager::PRERENDER_MODE_EXPERIMENT_PRERENDER_GROUP);
109 } else if (trial_group == experiment_15_min_TTL_group || 120 } else if (trial_group == experiment_15_min_TTL_group ||
110 trial_group == experiment_25_min_TTL_group) { 121 trial_group == experiment_25_min_TTL_group) {
111 PrerenderManager::SetMode( 122 PrerenderManager::SetMode(
112 PrerenderManager::PRERENDER_MODE_EXPERIMENT_5MIN_TTL_GROUP); 123 PrerenderManager::PRERENDER_MODE_EXPERIMENT_5MIN_TTL_GROUP);
113 } else if (trial_group == control_1_group || 124 } else if (trial_group == control_1_group ||
114 trial_group == control_2_group) { 125 trial_group == control_2_group) {
115 PrerenderManager::SetMode( 126 PrerenderManager::SetMode(
116 PrerenderManager::PRERENDER_MODE_EXPERIMENT_CONTROL_GROUP); 127 PrerenderManager::PRERENDER_MODE_EXPERIMENT_CONTROL_GROUP);
117 } else if (trial_group == no_use_1_group || 128 } else if (trial_group == no_use_1_group ||
118 trial_group == no_use_2_group) { 129 trial_group == no_use_2_group) {
119 PrerenderManager::SetMode( 130 PrerenderManager::SetMode(
120 PrerenderManager::PRERENDER_MODE_EXPERIMENT_NO_USE_GROUP); 131 PrerenderManager::PRERENDER_MODE_EXPERIMENT_NO_USE_GROUP);
132 } else if (trial_group == one_prerender_1_group ||
133 trial_group == one_prerender_2_group) {
134 PrerenderManager::SetMode(
135 PrerenderManager::PRERENDER_MODE_EXPERIMENT_ONE_PRERENDER_GROUP);
121 } else { 136 } else {
122 NOTREACHED(); 137 NOTREACHED();
123 } 138 }
124 } 139 }
125 140
126 } // end namespace 141 } // end namespace
127 142
128 void ConfigureOmniboxPrerender(); 143 void ConfigureOmniboxPrerender();
129 void ConfigureSpeculativePrefetching(); 144 void ConfigureSpeculativePrefetching();
130 145
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after
272 if (switch_value == switches::kSpeculativeResourcePrefetchingLearning) 287 if (switch_value == switches::kSpeculativeResourcePrefetchingLearning)
273 return true; 288 return true;
274 } 289 }
275 290
276 const int group = base::FieldTrialList::FindValue( 291 const int group = base::FieldTrialList::FindValue(
277 kSpeculativePrefetchingLearningTrialName); 292 kSpeculativePrefetchingLearningTrialName);
278 return group == g_speculative_prefetching_learning_default_group_number; 293 return group == g_speculative_prefetching_learning_default_group_number;
279 } 294 }
280 295
281 } // namespace prerender 296 } // namespace prerender
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698