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..f4934451ed5d2aa2b7c43554015bccd97cc21f28 100644 |
--- a/chrome/browser/chrome_browser_field_trials.cc |
+++ b/chrome/browser/chrome_browser_field_trials.cc |
@@ -66,10 +66,53 @@ 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) |
+} |
+ |
+ |
+#if defined(OS_ANDROID) || defined(OS_IOS) |
+void ChromeBrowserFieldTrials::SetupMobileFieldTrials() { |
+ DataCompressionProxyFieldTrial(); |
+} |
+ |
+// 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; |
} |
+#endif // defined(OS_ANDROID) || defined(OS_IOS) |
void ChromeBrowserFieldTrials::SetupDesktopFieldTrials( |
PrefService* local_state) { |