Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/chrome_browser_field_trials_mobile.h" | 5 #include "chrome/browser/chrome_browser_field_trials_mobile.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 | 8 |
| 9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
| 10 #include "base/metrics/field_trial.h" | 10 #include "base/metrics/field_trial.h" |
| 11 #include "base/prefs/pref_service.h" | 11 #include "base/prefs/pref_service.h" |
| 12 #include "chrome/common/chrome_switches.h" | 12 #include "chrome/common/chrome_switches.h" |
| 13 #include "chrome/common/chrome_version_info.h" | 13 #include "chrome/common/chrome_version_info.h" |
| 14 | 14 |
| 15 namespace chrome { | 15 namespace chrome { |
| 16 | 16 |
| 17 const char kEnabled[] = "Enabled"; | |
| 18 const char kDisabled[] = "Disabled"; | |
| 19 | |
| 17 namespace { | 20 namespace { |
| 18 | 21 |
| 19 // Base function used by all data reduction proxy field trials. A trial is | 22 // Base function used by all data reduction proxy field trials. A trial is |
| 20 // only conducted for installs that are in the "Enabled" group. They are always | 23 // only conducted for installs that are in the "Enabled" group. They are always |
| 21 // enabled on DEV and BETA channels, and for STABLE, a percentage will be | 24 // enabled on DEV and BETA channels, and for STABLE, a percentage will be |
| 22 // controlled from the server. Until the percentage is learned from the server, | 25 // controlled from the server. Until the percentage is learned from the server, |
| 23 // a client-side configuration is used. | 26 // a client-side configuration is used. |
| 24 void DataCompressionProxyBaseFieldTrial( | 27 void DataCompressionProxyBaseFieldTrial( |
| 25 const char* trial_name, | 28 const char* trial_name, |
| 26 const base::FieldTrial::Probability enabled_group_probability, | 29 const base::FieldTrial::Probability enabled_group_probability, |
| 27 const base::FieldTrial::Probability total_probability) { | 30 const base::FieldTrial::Probability total_probability) { |
| 28 const char kEnabled[] = "Enabled"; | |
| 29 const char kDisabled[] = "Disabled"; | |
| 30 | 31 |
| 31 // Find out if this is a stable channel. | 32 // Find out if this is a stable channel. |
| 32 const bool kIsStableChannel = | 33 const bool kIsStableChannel = |
| 33 chrome::VersionInfo::GetChannel() == chrome::VersionInfo::CHANNEL_STABLE; | 34 chrome::VersionInfo::GetChannel() == chrome::VersionInfo::CHANNEL_STABLE; |
| 34 | 35 |
| 35 // Experiment enabled until Jan 1, 2015. By default, disabled. | 36 // Experiment enabled until Jan 1, 2015. By default, disabled. |
| 36 scoped_refptr<base::FieldTrial> trial( | 37 scoped_refptr<base::FieldTrial> trial( |
| 37 base::FieldTrialList::FactoryGetFieldTrial( | 38 base::FieldTrialList::FactoryGetFieldTrial( |
| 38 trial_name, | 39 trial_name, |
| 39 total_probability, | 40 total_probability, |
| (...skipping 19 matching lines...) Expand all Loading... | |
| 59 | 60 |
| 60 // Governs the rollout of the _promo_ for the compression proxy | 61 // Governs the rollout of the _promo_ for the compression proxy |
| 61 // independently from the rollout of compression proxy. The enabled | 62 // independently from the rollout of compression proxy. The enabled |
| 62 // percentage is configured to be 10% = 100 / 1000 until overridden by the | 63 // percentage is configured to be 10% = 100 / 1000 until overridden by the |
| 63 // server. When this trial is "Enabled," users get a promo, whereas | 64 // server. When this trial is "Enabled," users get a promo, whereas |
| 64 // otherwise, compression is available without a promo. | 65 // otherwise, compression is available without a promo. |
| 65 DataCompressionProxyBaseFieldTrial( | 66 DataCompressionProxyBaseFieldTrial( |
| 66 "DataCompressionProxyPromoVisibility", 100, 1000); | 67 "DataCompressionProxyPromoVisibility", 100, 1000); |
| 67 } | 68 } |
| 68 | 69 |
| 70 // Configures the "Precache" field trial. A trial is only conducted for installs | |
| 71 // that are in the "Enabled" group. Until the percentage is learned from the | |
| 72 // server, a client-side configuration is used. | |
| 73 void PrecacheFieldTrial() { | |
|
Alexei Svitkine (slow)
2014/02/12 15:41:50
I'm not sure this block of code actually buys you
| |
| 74 // Experiment enabled until December 31, 2015. By default, disabled. | |
| 75 scoped_refptr<base::FieldTrial> trial( | |
| 76 base::FieldTrialList::FactoryGetFieldTrial( | |
| 77 "Precache", 1000, kDisabled, 2015, 12, 31, | |
| 78 base::FieldTrial::ONE_TIME_RANDOMIZED, NULL)); | |
| 79 | |
| 80 const int kEnabledGroup = trial->AppendGroup(kEnabled, 0); | |
| 81 | |
| 82 VLOG(1) << "Precache enabled group id: " << kEnabledGroup | |
| 83 << ". Selected group id: " << trial->group(); | |
| 84 } | |
| 85 | |
| 69 } // namespace | 86 } // namespace |
| 70 | 87 |
| 71 void SetupMobileFieldTrials(const CommandLine& parsed_command_line, | 88 void SetupMobileFieldTrials(const CommandLine& parsed_command_line, |
| 72 const base::Time& install_time, | 89 const base::Time& install_time, |
| 73 PrefService* local_state) { | 90 PrefService* local_state) { |
| 74 DataCompressionProxyFieldTrials(); | 91 DataCompressionProxyFieldTrials(); |
| 92 PrecacheFieldTrial(); | |
| 75 } | 93 } |
| 76 | 94 |
| 77 } // namespace chrome | 95 } // namespace chrome |
| OLD | NEW |