| Index: chrome/browser/chrome_browser_field_trials.cc
|
| diff --git a/chrome/browser/chrome_browser_field_trials.cc b/chrome/browser/chrome_browser_field_trials.cc
|
| index ba85b4caf772cb6e337e662945c30ae3c15bb520..6f3c430c3006fbbc0b3196b05ffd2d4f9ef657fb 100644
|
| --- a/chrome/browser/chrome_browser_field_trials.cc
|
| +++ b/chrome/browser/chrome_browser_field_trials.cc
|
| @@ -66,9 +66,17 @@ void ChromeBrowserFieldTrials::SetupFieldTrials(PrefService* local_state) {
|
| DCHECK(!install_time.is_null());
|
| chrome_variations::SetupUniformityFieldTrials(install_time);
|
| SetUpSimpleCacheFieldTrial();
|
| -#if !defined(OS_ANDROID)
|
| +#if !defined(OS_ANDROID) && !defined(OS_IOS)
|
| SetupDesktopFieldTrials(local_state);
|
| #endif // defined(OS_ANDROID)
|
| +
|
| +#if defined(OS_ANDROID) || defined(OS_IOS)
|
| + SetupMobileFieldTrials();
|
| +#endif // defined(OS_ANDROID) || defined(OS_IOS)
|
| +}
|
| +
|
| +void ChromeBrowserFieldTrials::SetupMobileFieldTrials() {
|
| + DataCompressionProxyFieldTrial();
|
| }
|
|
|
| void ChromeBrowserFieldTrials::SetupDesktopFieldTrials(
|
| @@ -125,6 +133,38 @@ void ChromeBrowserFieldTrials::SpdyFieldTrial() {
|
| trial->AppendGroup("cwndMin10", kSpdyCwndMin10);
|
| }
|
|
|
| +// Governs the rollout of the compression proxy for Chrome on mobile platforms.
|
| +// Always enabled in DEV and BETA versions.
|
| +// Stable percentage will be controlled from server.
|
| +void ChromeBrowserFieldTrials::DataCompressionProxyFieldTrial() {
|
| + const char kDataCompressionProxyFieldTrialName[] =
|
| + "DataCompressionProxyRollout";
|
| + const base::FieldTrial::Probability kDataCompressionProxyDivisor = 1000;
|
| + const base::FieldTrial::Probability kDataCompressionProxyStable = 0;
|
| + const char kEnabled[] = "Enabled";
|
| + const char kDisabled[] = "Disabled";
|
| +
|
| + // Find out if this is a stable channel.
|
| + const bool kIsStableChannel =
|
| + chrome::VersionInfo::GetChannel() == chrome::VersionInfo::CHANNEL_STABLE;
|
| +
|
| + // Experiment enabled until Jan 1, 2015. By default, disabled.
|
| + scoped_refptr<base::FieldTrial> trial(
|
| + base::FieldTrialList::FactoryGetFieldTrial(
|
| + kDataCompressionProxyFieldTrialName, kDataCompressionProxyDivisor,
|
| + kDisabled, 2015, 1, 1, NULL));
|
| +
|
| + // Non-stable channels will run with probability 1.
|
| + const int kEnabledGroup = trial->AppendGroup(
|
| + kEnabled,
|
| + kIsStableChannel ?
|
| + kDataCompressionProxyStable : kDataCompressionProxyDivisor);
|
| +
|
| + const int v = trial->group();
|
| + VLOG(1) << "DataCompression proxy enabled group id: " << kEnabledGroup
|
| + << ". Selected group id: " << v;
|
| +}
|
| +
|
| // If --socket-reuse-policy is not specified, run an A/B test for choosing the
|
| // warmest socket.
|
| void ChromeBrowserFieldTrials::WarmConnectionFieldTrial() {
|
|
|