diff options
Diffstat (limited to 'chrome/browser/prerender')
-rw-r--r-- | chrome/browser/prerender/prerender_field_trial.cc | 25 | ||||
-rw-r--r-- | chrome/browser/prerender/prerender_field_trial.h | 3 |
2 files changed, 28 insertions, 0 deletions
diff --git a/chrome/browser/prerender/prerender_field_trial.cc b/chrome/browser/prerender/prerender_field_trial.cc index 312c9fb..b74e79a 100644 --- a/chrome/browser/prerender/prerender_field_trial.cc +++ b/chrome/browser/prerender/prerender_field_trial.cc @@ -33,6 +33,10 @@ const char kLoggedInPredictorTrialName[] = "PrerenderLoggedInPredictor"; const char kLoggedInPredictorEnabledGroup[] = "Enabled"; const char kLoggedInPredictorDisabledGroup[] = "Disabled"; +const char kSideEffectFreeWhitelistTrialName[] = "SideEffectFreeWhitelist"; +const char kSideEffectFreeWhitelistEnabledGroup[] = "Enabled"; +const char kSideEffectFreeWhitelistDisabledGroup[] = "Disabled"; + void SetupPrefetchFieldTrial() { chrome::VersionInfo::Channel channel = chrome::VersionInfo::GetChannel(); if (channel == chrome::VersionInfo::CHANNEL_STABLE || @@ -146,6 +150,7 @@ void SetupPrerenderFieldTrial() { void ConfigureOmniboxPrerender(); void ConfigureLoggedInPredictor(); +void ConfigureSideEffectFreeWhitelist(); void ConfigurePrefetchAndPrerender(const CommandLine& command_line) { enum PrerenderOption { @@ -203,6 +208,7 @@ void ConfigurePrefetchAndPrerender(const CommandLine& command_line) { ConfigureOmniboxPrerender(); ConfigureLoggedInPredictor(); + ConfigureSideEffectFreeWhitelist(); } void ConfigureOmniboxPrerender() { @@ -236,6 +242,20 @@ void ConfigureLoggedInPredictor() { logged_in_predictor_trial->AppendGroup(kLoggedInPredictorEnabledGroup, 100); } +void ConfigureSideEffectFreeWhitelist() { + scoped_refptr<FieldTrial> side_effect_free_whitelist_trial( + FieldTrialList::FactoryGetFieldTrial( + kSideEffectFreeWhitelistTrialName, 100, + kSideEffectFreeWhitelistDisabledGroup, 2013, 12, 31, NULL)); + chrome::VersionInfo::Channel channel = chrome::VersionInfo::GetChannel(); + if (channel == chrome::VersionInfo::CHANNEL_STABLE || + channel == chrome::VersionInfo::CHANNEL_BETA) { + return; + } + side_effect_free_whitelist_trial->AppendGroup( + kSideEffectFreeWhitelistEnabledGroup, 100); +} + bool IsOmniboxEnabled(Profile* profile) { if (!profile) return false; @@ -274,4 +294,9 @@ bool IsLoggedInPredictorEnabled() { kLoggedInPredictorEnabledGroup; } +bool IsSideEffectFreeWhitelistEnabled() { + return base::FieldTrialList::FindFullName(kSideEffectFreeWhitelistTrialName) + == kSideEffectFreeWhitelistEnabledGroup; +} + } // namespace prerender diff --git a/chrome/browser/prerender/prerender_field_trial.h b/chrome/browser/prerender/prerender_field_trial.h index 7ce9d9a..5e80a01 100644 --- a/chrome/browser/prerender/prerender_field_trial.h +++ b/chrome/browser/prerender/prerender_field_trial.h @@ -27,6 +27,9 @@ bool IsLocalPredictorEnabled(); // Returns true iff the LoggedIn Predictor is enabled. bool IsLoggedInPredictorEnabled(); +// Returns true iff the side-effect free whitelist is enabled. +bool IsSideEffectFreeWhitelistEnabled(); + } // namespace prerender #endif // CHROME_BROWSER_PRERENDER_PRERENDER_FIELD_TRIAL_H_ |