| 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 759b269c282aa34c30a1e51e7b37da6ad55e575c..9a750be2c66ec5eed3546b152b7f3617d93f1b15 100644
|
| --- a/chrome/browser/prerender/prerender_field_trial.cc
|
| +++ b/chrome/browser/prerender/prerender_field_trial.cc
|
| @@ -44,6 +44,7 @@ const char kLocalPredictorUnencryptedSyncOnlyKeyName[] =
|
| const char kSideEffectFreeWhitelistKeyName[] = "SideEffectFreeWhitelist";
|
| const char kPrerenderLaunchKeyName[] = "PrerenderLaunch";
|
| const char kPrerenderAlwaysControlKeyName[] = "PrerenderAlwaysControl";
|
| +const char kPrerenderPrefetchKeyName[] = "PrerenderPrefetch";
|
| const char kPrerenderQueryPrerenderServiceKeyName[] =
|
| "PrerenderQueryPrerenderService";
|
| const char kPrerenderQueryPrerenderServiceCurrentURLKeyName[] =
|
| @@ -57,6 +58,7 @@ const char kPrerenderTTLKeyName[] = "PrerenderTTLSeconds";
|
| const char kPrerenderPriorityHalfLifeTimeKeyName[] =
|
| "PrerenderPriorityHalfLifeTimeSeconds";
|
| const char kMaxConcurrentPrerenderKeyName[] = "MaxConcurrentPrerenders";
|
| +const char kMaxLaunchPrerenderKeyName[] = "MaxLaunchPrerenders";
|
| const char kSkipFragment[] = "SkipFragment";
|
| const char kSkipHTTPS[] = "SkipHTTPS";
|
| const char kSkipWhitelist[] = "SkipWhitelist";
|
| @@ -328,7 +330,14 @@ bool IsLocalPredictorPrerenderLaunchEnabled() {
|
| }
|
|
|
| bool IsLocalPredictorPrerenderAlwaysControlEnabled() {
|
| - return GetLocalPredictorSpecValue(kPrerenderAlwaysControlKeyName) ==
|
| + // If we prefetch rather than prerender, we automatically also prerender
|
| + // as a control group only.
|
| + return (GetLocalPredictorSpecValue(kPrerenderAlwaysControlKeyName) ==
|
| + kEnabledGroup) || IsLocalPredictorPrerenderPrefetchEnabled();
|
| +}
|
| +
|
| +bool IsLocalPredictorPrerenderPrefetchEnabled() {
|
| + return GetLocalPredictorSpecValue(kPrerenderPrefetchKeyName) ==
|
| kEnabledGroup;
|
| }
|
|
|
| @@ -396,6 +405,14 @@ int GetLocalPredictorMaxConcurrentPrerenders() {
|
| return std::min(std::max(num_prerenders, 1), 10);
|
| }
|
|
|
| +int GetLocalPredictorMaxLaunchPrerenders() {
|
| + int num_prerenders;
|
| + StringToInt(GetLocalPredictorSpecValue(kMaxLaunchPrerenderKeyName),
|
| + &num_prerenders);
|
| + // Sanity check: Ensure the number of prerenders is between 1 and 10.
|
| + return std::min(std::max(num_prerenders, 1), 10);
|
| +}
|
| +
|
| bool SkipLocalPredictorFragment() {
|
| return GetLocalPredictorSpecValue(kSkipFragment) == kEnabledGroup;
|
| }
|
|
|