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 1c9a854e5c034f3c4c1a199cb271b27e3dab09aa..0a0c9a8c8fd5b9a6133edb0de004dbab1364f459 100644 |
--- a/chrome/browser/chrome_browser_field_trials.cc |
+++ b/chrome/browser/chrome_browser_field_trials.cc |
@@ -59,6 +59,7 @@ ChromeBrowserFieldTrials::~ChromeBrowserFieldTrials() { |
void ChromeBrowserFieldTrials::SetupFieldTrials( |
const base::Time& install_time) { |
chrome_variations::SetupUniformityFieldTrials(install_time); |
+ SetUpSimpleCacheFieldTrial(); |
#if !defined(OS_ANDROID) |
SetupDesktopFieldTrials(); |
#endif // defined(OS_ANDROID) |
@@ -191,6 +192,38 @@ void ChromeBrowserFieldTrials::DisableShowProfileSwitcherTrialIfNecessary() { |
} |
} |
+// Sets up the experiment. The actual cache backend choice is made in the net/ |
+// internals by looking at the experiment state. |
+void ChromeBrowserFieldTrials::SetUpSimpleCacheFieldTrial() { |
+ if (parsed_command_line_.HasSwitch(switches::kUseSimpleCacheBackend)) { |
+ const std::string opt_value = parsed_command_line_.GetSwitchValueASCII( |
+ switches::kUseSimpleCacheBackend); |
+ if (LowerCaseEqualsASCII(opt_value, "off")) { |
+ // This is the default. |
+ return; |
+ } |
+ const base::FieldTrial::Probability kDivisor = 100; |
+ scoped_refptr<base::FieldTrial> trial( |
+ base::FieldTrialList::FactoryGetFieldTrial("SimpleCacheTrial", kDivisor, |
+ "No", 2013, 12, 31, NULL)); |
+ trial->UseOneTimeRandomization(); |
+ if (LowerCaseEqualsASCII(opt_value, "on")) { |
+ trial->AppendGroup("Yes", 100); |
+ return; |
+ } |
+#if defined(OS_ANDROID) |
+ if (LowerCaseEqualsASCII(opt_value, "experiment")) { |
+ // TODO(pasko): Make this the default on Android when the simple cache |
+ // adds a few more necessary features. Also adjust the probability. |
+ const base::FieldTrial::Probability kSimpleCacheProbability = 1; |
+ trial->AppendGroup("Yes", kSimpleCacheProbability); |
+ trial->AppendGroup("Control", kSimpleCacheProbability); |
+ trial->group(); |
+ } |
+#endif |
+ } |
+} |
+ |
void ChromeBrowserFieldTrials::SetUpCacheSensitivityAnalysisFieldTrial() { |
const base::FieldTrial::Probability kDivisor = 100; |