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

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

Issue 9463026: Add field trial to extend prerender expiration to 5 minutes. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixing messaging for net-internals Created 8 years, 9 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 25 matching lines...) Expand all
36 new base::FieldTrial("Prefetch", divisor, 36 new base::FieldTrial("Prefetch", divisor,
37 "ContentPrefetchPrefetchOff", 2012, 6, 30)); 37 "ContentPrefetchPrefetchOff", 2012, 6, 30));
38 const int kPrefetchOnGroup = trial->AppendGroup("ContentPrefetchPrefetchOn", 38 const int kPrefetchOnGroup = trial->AppendGroup("ContentPrefetchPrefetchOn",
39 prefetch_probability); 39 prefetch_probability);
40 ResourceDispatcherHost::set_is_prefetch_enabled( 40 ResourceDispatcherHost::set_is_prefetch_enabled(
41 trial->group() == kPrefetchOnGroup); 41 trial->group() == kPrefetchOnGroup);
42 } 42 }
43 43
44 void SetupPrerenderFieldTrial() { 44 void SetupPrerenderFieldTrial() {
45 base::FieldTrial::Probability divisor = 1000; 45 base::FieldTrial::Probability divisor = 1000;
46 base::FieldTrial::Probability exp1_probability = 200; 46
47 base::FieldTrial::Probability control1_probability = 200; 47 base::FieldTrial::Probability exp1_probability = 166;
48 base::FieldTrial::Probability no_use1_probability = 100; 48 base::FieldTrial::Probability exp1_5min_ttl_probability = 83;
49 base::FieldTrial::Probability exp2_probability = 200; 49 base::FieldTrial::Probability control1_probability = 166;
50 base::FieldTrial::Probability control2_probability = 200; 50 base::FieldTrial::Probability no_use1_probability = 83;
51 base::FieldTrial::Probability no_use2_probability = 100; 51
52 base::FieldTrial::Probability exp2_probability = 167;
53 base::FieldTrial::Probability exp2_5min_ttl_probability = 84;
54 base::FieldTrial::Probability control2_probability = 167;
55 base::FieldTrial::Probability no_use2_probability = 84;
56
52 chrome::VersionInfo::Channel channel = chrome::VersionInfo::GetChannel(); 57 chrome::VersionInfo::Channel channel = chrome::VersionInfo::GetChannel();
53 if (channel == chrome::VersionInfo::CHANNEL_STABLE || 58 if (channel == chrome::VersionInfo::CHANNEL_STABLE ||
54 channel == chrome::VersionInfo::CHANNEL_BETA) { 59 channel == chrome::VersionInfo::CHANNEL_BETA) {
55 exp1_probability = 495; 60 exp1_probability = 490;
61 exp1_5min_ttl_probability = 5;
56 control1_probability = 5; 62 control1_probability = 5;
57 no_use1_probability = 0; 63 no_use1_probability = 0;
58 exp2_probability = 495; 64 exp2_probability = 490;
65 exp2_5min_ttl_probability = 5;
59 control2_probability = 5; 66 control2_probability = 5;
60 no_use2_probability = 0; 67 no_use2_probability = 0;
61 } 68 }
62 CHECK_EQ(divisor, exp1_probability + control1_probability + 69 CHECK_EQ(divisor, exp1_probability + exp1_5min_ttl_probability +
63 no_use1_probability + exp2_probability + 70 control1_probability + no_use1_probability + exp2_probability +
64 control2_probability + no_use2_probability); 71 exp2_5min_ttl_probability + control2_probability +
72 no_use2_probability);
65 scoped_refptr<base::FieldTrial> trial( 73 scoped_refptr<base::FieldTrial> trial(
66 new base::FieldTrial("Prerender", divisor, 74 new base::FieldTrial("Prerender", divisor,
67 "ContentPrefetchPrerender1", 2012, 6, 30)); 75 "ContentPrefetchPrerender1", 2012, 6, 30));
68 76
69 const int kExperiment1Group = trial->kDefaultGroupNumber; 77 const int kExperiment1Group = trial->kDefaultGroupNumber;
78 const int kExperiment15minTTLGroup =
79 trial->AppendGroup("ContentPrefetchPrerenderExp5minTTL1",
80 exp1_5min_ttl_probability);
70 const int kControl1Group = 81 const int kControl1Group =
71 trial->AppendGroup("ContentPrefetchPrerenderControl1", 82 trial->AppendGroup("ContentPrefetchPrerenderControl1",
72 control1_probability); 83 control1_probability);
73 const int kNoUse1Group = 84 const int kNoUse1Group =
74 trial->AppendGroup("ContentPrefetchPrerenderNoUse1", 85 trial->AppendGroup("ContentPrefetchPrerenderNoUse1",
75 no_use1_probability); 86 no_use1_probability);
76 const int kExperiment2Group = 87 const int kExperiment2Group =
77 trial->AppendGroup("ContentPrefetchPrerender2", 88 trial->AppendGroup("ContentPrefetchPrerender2",
78 exp2_probability); 89 exp2_probability);
90 const int kExperiment25minTTLGroup =
91 trial->AppendGroup("ContentPrefetchPrerenderExp5minTTL2",
92 exp2_5min_ttl_probability);
79 const int kControl2Group = 93 const int kControl2Group =
80 trial->AppendGroup("ContentPrefetchPrerenderControl2", 94 trial->AppendGroup("ContentPrefetchPrerenderControl2",
81 control2_probability); 95 control2_probability);
82 const int kNoUse2Group = 96 const int kNoUse2Group =
83 trial->AppendGroup("ContentPrefetchPrerenderNoUse2", 97 trial->AppendGroup("ContentPrefetchPrerenderNoUse2",
84 no_use2_probability); 98 no_use2_probability);
85 const int trial_group = trial->group(); 99 const int trial_group = trial->group();
86 if (trial_group == kExperiment1Group || 100 if (trial_group == kExperiment1Group ||
87 trial_group == kExperiment2Group) { 101 trial_group == kExperiment2Group) {
88 PrerenderManager::SetMode( 102 PrerenderManager::SetMode(
89 PrerenderManager::PRERENDER_MODE_EXPERIMENT_PRERENDER_GROUP); 103 PrerenderManager::PRERENDER_MODE_EXPERIMENT_PRERENDER_GROUP);
104 } else if (trial_group == kExperiment15minTTLGroup ||
105 trial_group == kExperiment25minTTLGroup) {
106 PrerenderManager::SetMode(
107 PrerenderManager::PRERENDER_MODE_EXPERIMENT_5MIN_TTL_GROUP);
90 } else if (trial_group == kControl1Group || 108 } else if (trial_group == kControl1Group ||
91 trial_group == kControl2Group) { 109 trial_group == kControl2Group) {
92 PrerenderManager::SetMode( 110 PrerenderManager::SetMode(
93 PrerenderManager::PRERENDER_MODE_EXPERIMENT_CONTROL_GROUP); 111 PrerenderManager::PRERENDER_MODE_EXPERIMENT_CONTROL_GROUP);
94 } else if (trial_group == kNoUse1Group || 112 } else if (trial_group == kNoUse1Group ||
95 trial_group == kNoUse2Group) { 113 trial_group == kNoUse2Group) {
96 PrerenderManager::SetMode( 114 PrerenderManager::SetMode(
97 PrerenderManager::PRERENDER_MODE_EXPERIMENT_NO_USE_GROUP); 115 PrerenderManager::PRERENDER_MODE_EXPERIMENT_NO_USE_GROUP);
98 } else { 116 } else {
99 NOTREACHED(); 117 NOTREACHED();
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
223 241
224 DCHECK(switch_value == switches::kPrerenderFromOmniboxSwitchValueAuto); 242 DCHECK(switch_value == switches::kPrerenderFromOmniboxSwitchValueAuto);
225 } 243 }
226 244
227 const int group = base::FieldTrialList::FindValue(kOmniboxTrialName); 245 const int group = base::FieldTrialList::FindValue(kOmniboxTrialName);
228 return group == base::FieldTrial::kNotFinalized || 246 return group == base::FieldTrial::kNotFinalized ||
229 group == base::FieldTrial::kDefaultGroupNumber; 247 group == base::FieldTrial::kDefaultGroupNumber;
230 } 248 }
231 249
232 } // namespace prerender 250 } // namespace prerender
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/prerender/prerender_manager.h » ('j') | chrome/browser/prerender/prerender_manager.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698