diff options
author | dominich@chromium.org <dominich@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-02-01 23:54:16 +0000 |
---|---|---|
committer | dominich@chromium.org <dominich@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-02-01 23:54:16 +0000 |
commit | 467f4ba71e27452e02fe93101075a9cec0bd43bc (patch) | |
tree | 55a136a1a6a846c62f1e2f91eec3683b223914b1 /chrome/browser/prerender/prerender_field_trial.cc | |
parent | 867301cc035083f5a8a3952eb115f9c8b476fd6a (diff) | |
download | chromium_src-467f4ba71e27452e02fe93101075a9cec0bd43bc.zip chromium_src-467f4ba71e27452e02fe93101075a9cec0bd43bc.tar.gz chromium_src-467f4ba71e27452e02fe93101075a9cec0bd43bc.tar.bz2 |
Field trial to investigate higher weightings for hits when calculating Omnibox prerender confidence.
BUG=111069
Review URL: http://codereview.chromium.org/9298032
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@120133 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/prerender/prerender_field_trial.cc')
-rw-r--r-- | chrome/browser/prerender/prerender_field_trial.cc | 57 |
1 files changed, 38 insertions, 19 deletions
diff --git a/chrome/browser/prerender/prerender_field_trial.cc b/chrome/browser/prerender/prerender_field_trial.cc index ced8b7c..f4976e6 100644 --- a/chrome/browser/prerender/prerender_field_trial.cc +++ b/chrome/browser/prerender/prerender_field_trial.cc @@ -8,6 +8,7 @@ #include "base/logging.h" #include "base/metrics/field_trial.h" #include "base/metrics/histogram.h" +#include "chrome/browser/autocomplete/network_action_predictor.h" #include "chrome/browser/metrics/metrics_service.h" #include "chrome/browser/prefs/pref_service.h" #include "chrome/browser/prerender/prerender_manager.h" @@ -20,7 +21,7 @@ namespace prerender { namespace { -const char kPrerenderFromOmniboxTrialName[] = "PrerenderFromOmnibox"; +const char kOmniboxTrialName[] = "PrerenderFromOmnibox"; void SetupPrefetchFieldTrial() { chrome::VersionInfo::Channel channel = chrome::VersionInfo::GetChannel(); @@ -65,33 +66,33 @@ void SetupPrerenderFieldTrial() { new base::FieldTrial("Prerender", divisor, "ContentPrefetchPrerender1", 2012, 6, 30)); - const int kPrerenderExperiment1Group = trial->kDefaultGroupNumber; - const int kPrerenderControl1Group = + const int kExperiment1Group = trial->kDefaultGroupNumber; + const int kControl1Group = trial->AppendGroup("ContentPrefetchPrerenderControl1", control1_probability); - const int kPrerenderNoUse1Group = + const int kNoUse1Group = trial->AppendGroup("ContentPrefetchPrerenderNoUse1", no_use1_probability); - const int kPrerenderExperiment2Group = + const int kExperiment2Group = trial->AppendGroup("ContentPrefetchPrerender2", exp2_probability); - const int kPrerenderControl2Group = + const int kControl2Group = trial->AppendGroup("ContentPrefetchPrerenderControl2", control2_probability); - const int kPrerenderNoUse2Group = + const int kNoUse2Group = trial->AppendGroup("ContentPrefetchPrerenderNoUse2", no_use2_probability); const int trial_group = trial->group(); - if (trial_group == kPrerenderExperiment1Group || - trial_group == kPrerenderExperiment2Group) { + if (trial_group == kExperiment1Group || + trial_group == kExperiment2Group) { PrerenderManager::SetMode( PrerenderManager::PRERENDER_MODE_EXPERIMENT_PRERENDER_GROUP); - } else if (trial_group == kPrerenderControl1Group || - trial_group == kPrerenderControl2Group) { + } else if (trial_group == kControl1Group || + trial_group == kControl2Group) { PrerenderManager::SetMode( PrerenderManager::PRERENDER_MODE_EXPERIMENT_CONTROL_GROUP); - } else if (trial_group == kPrerenderNoUse1Group || - trial_group == kPrerenderNoUse2Group) { + } else if (trial_group == kNoUse1Group || + trial_group == kNoUse2Group) { PrerenderManager::SetMode( PrerenderManager::PRERENDER_MODE_EXPERIMENT_NO_USE_GROUP); } else { @@ -101,7 +102,7 @@ void SetupPrerenderFieldTrial() { } // end namespace -void ConfigurePrerenderFromOmnibox(); +void ConfigureOmniboxPrerender(); void ConfigurePrefetchAndPrerender(const CommandLine& command_line) { enum PrerenderOption { @@ -161,10 +162,10 @@ void ConfigurePrefetchAndPrerender(const CommandLine& command_line) { PrerenderManager::GetMode(), PrerenderManager::PRERENDER_MODE_MAX); - ConfigurePrerenderFromOmnibox(); + ConfigureOmniboxPrerender(); } -void ConfigurePrerenderFromOmnibox() { +void ConfigureOmniboxPrerender() { // Field trial to see if we're enabled. const base::FieldTrial::Probability kDivisor = 100; @@ -175,9 +176,28 @@ void ConfigurePrerenderFromOmnibox() { kEnabledProbability = 99; } scoped_refptr<base::FieldTrial> enabled_trial( - new base::FieldTrial(kPrerenderFromOmniboxTrialName, kDivisor, + new base::FieldTrial(kOmniboxTrialName, kDivisor, "OmniboxPrerenderDisabled", 2012, 8, 30)); enabled_trial->AppendGroup("OmniboxPrerenderEnabled", kEnabledProbability); + + // Field trial to set weighting of hits. + const base::FieldTrial::Probability kTwoProbability = 33; + const base::FieldTrial::Probability kThreeProbability = 33; + + scoped_refptr<base::FieldTrial> weighting_trial( + new base::FieldTrial("OmniboxPrerenderHitWeightingTrial", kDivisor, + "OmniboxPrerenderWeight1.0", 2012, 8, 30)); + const int kOmniboxWeightTwoGroup = + weighting_trial->AppendGroup("OmniboxPrerenderWeight2.0", + kTwoProbability); + const int kOmniboxWeightThreeGroup = + weighting_trial->AppendGroup("OmniboxPrerenderWeight3.0", + kThreeProbability); + const int group = weighting_trial->group(); + if (group == kOmniboxWeightTwoGroup) + NetworkActionPredictor::set_hit_weight(2.0); + else if (group == kOmniboxWeightThreeGroup) + NetworkActionPredictor::set_hit_weight(3.0); } bool IsOmniboxEnabled(Profile* profile) { @@ -203,8 +223,7 @@ bool IsOmniboxEnabled(Profile* profile) { DCHECK(switch_value == switches::kPrerenderFromOmniboxSwitchValueAuto); } - const int group = - base::FieldTrialList::FindValue(kPrerenderFromOmniboxTrialName); + const int group = base::FieldTrialList::FindValue(kOmniboxTrialName); return group != base::FieldTrial::kNotFinalized && group != base::FieldTrial::kDefaultGroupNumber; } |