| Index: chrome/browser/prerender/prerender_field_trial.cc
|
| diff --git a/chrome/browser/prerender/prerender_field_trial.cc b/chrome/browser/prerender/prerender_field_trial.cc
|
| index ced8b7c907b0e73ec501fe6e92433a4f3409a189..f4976e690e36194d3cbc7e26379adeffd4961671 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;
|
| }
|
|
|