Chromium Code Reviews| 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 bbe7a4172dd10fbf77de27dc0a46a82711d132af..f2e6edadd9bb6d922b045a5caeb3ade82f6b7f6b 100644 |
| --- a/chrome/browser/chrome_browser_field_trials.cc |
| +++ b/chrome/browser/chrome_browser_field_trials.cc |
| @@ -17,6 +17,7 @@ |
| #include "chrome/browser/autocomplete/autocomplete_field_trial.h" |
| #include "chrome/browser/chrome_gpu_util.h" |
| #include "chrome/browser/google/google_util.h" |
| +#include "chrome/browser/metrics/variations/variations_service.h" |
| #include "chrome/browser/prerender/prerender_field_trial.h" |
| #include "chrome/browser/safe_browsing/safe_browsing_blocking_page.h" |
| #include "chrome/browser/ui/sync/one_click_signin_helper.h" |
| @@ -101,13 +102,14 @@ ChromeBrowserFieldTrials::ChromeBrowserFieldTrials( |
| ChromeBrowserFieldTrials::~ChromeBrowserFieldTrials() { |
| } |
| -void ChromeBrowserFieldTrials::SetupFieldTrials() { |
| +void ChromeBrowserFieldTrials::SetupFieldTrials( |
| + const base::Time& install_time) { |
| prerender::ConfigurePrefetchAndPrerender(parsed_command_line_); |
| SpdyFieldTrial(); |
| WarmConnectionFieldTrial(); |
| AutoLaunchChromeFieldTrial(); |
| gpu_util::InitializeCompositingFieldTrial(); |
| - SetupUniformityFieldTrials(); |
| + SetupUniformityFieldTrials(install_time); |
| AutocompleteFieldTrial::Activate(); |
| DisableNewTabFieldTrialIfNecesssary(); |
| SetUpSafeBrowsingInterstitialFieldTrial(); |
| @@ -211,7 +213,8 @@ void ChromeBrowserFieldTrials::AutoLaunchChromeFieldTrial() { |
| } |
| } |
| -void ChromeBrowserFieldTrials::SetupUniformityFieldTrials() { |
| +void ChromeBrowserFieldTrials::SetupUniformityFieldTrials( |
| + const base::Time& install_date) { |
| // One field trial will be created for each entry in this array. The i'th |
| // field trial will have |trial_sizes[i]| groups in it, including the default |
| // group. Each group will have a probability of 1/|trial_sizes[i]|. |
| @@ -240,6 +243,25 @@ void ChromeBrowserFieldTrials::SetupUniformityFieldTrials() { |
| "UMA-Session-Randomized-Uniformity-Trial-%d-Percent"; |
| SetupSingleUniformityFieldTrial(false, kSessionRandomizedTrialName, |
| chrome_variations::kUniformitySessionRandomized5PercentBase, 20); |
| + |
| + // Setup a 50% uniformity trial for new installs only. This is accomplished by |
|
Alexei Svitkine (slow)
2012/11/02 20:36:02
Nit: Perhaps make this a separate method.
SteveT
2012/11/02 20:47:47
Done.
|
| + // disabling the trial on clients that were installed before a specified date. |
| + const base::Time::Exploded kStartDate = { |
| + 2012, 11, 0, 5, // Nov 5, 2012 |
| + 0, 0, 0, 0 // 00:00:00.000 |
| + }; |
| + scoped_refptr<base::FieldTrial> trial( |
| + base::FieldTrialList::FactoryGetFieldTrial( |
| + "UMA-New-Install-Uniformity-Trial", 100, "Default", |
| + 2015, 1, 1, NULL)); |
| + trial->UseOneTimeRandomization(); |
| + trial->AppendGroup("Control", 50); |
| + trial->AppendGroup("Experiment", 50); |
| + const base::Time start_date = base::Time::FromLocalExploded(kStartDate); |
| + if (install_date < start_date) |
| + trial->Disable(); |
| + else |
| + trial->group(); |
| } |
| void ChromeBrowserFieldTrials::DisableNewTabFieldTrialIfNecesssary() { |