diff options
-rw-r--r-- | chrome/browser/prerender/prerender_manager.cc | 3 | ||||
-rw-r--r-- | chrome/browser/prerender/prerender_util.cc | 5 | ||||
-rw-r--r-- | chrome/browser/prerender/prerender_util.h | 5 |
3 files changed, 12 insertions, 1 deletions
diff --git a/chrome/browser/prerender/prerender_manager.cc b/chrome/browser/prerender/prerender_manager.cc index 57e77c8..8e8bea7 100644 --- a/chrome/browser/prerender/prerender_manager.cc +++ b/chrome/browser/prerender/prerender_manager.cc @@ -963,7 +963,8 @@ PrerenderContents* PrerenderManager::GetEntryButNotSpecifiedWC( it != prerender_list_.end(); ++it) { PrerenderContents* prerender_contents = it->contents_; - if (prerender_contents->MatchesURL(url, NULL)) { + if (prerender_contents->MatchesURL(url, NULL) && + !IsNoSwapInExperiment(prerender_contents->experiment_id())) { if (!prerender_contents->prerender_contents() || !wc || prerender_contents->prerender_contents()->web_contents() != wc) { diff --git a/chrome/browser/prerender/prerender_util.cc b/chrome/browser/prerender/prerender_util.cc index 5fad483..52f2ce9 100644 --- a/chrome/browser/prerender/prerender_util.cc +++ b/chrome/browser/prerender/prerender_util.cc @@ -79,4 +79,9 @@ bool IsWebURL(const GURL& url) { return url.SchemeIs("http") || url.SchemeIs("https"); } +bool IsNoSwapInExperiment(uint8 experiment_id) { + // Currently, experiments 5 and 6 fall in this category. + return experiment_id == 5 || experiment_id == 6; +} + } // namespace prerender diff --git a/chrome/browser/prerender/prerender_util.h b/chrome/browser/prerender/prerender_util.h index b5aa2fd..1c09a39 100644 --- a/chrome/browser/prerender/prerender_util.h +++ b/chrome/browser/prerender/prerender_util.h @@ -34,6 +34,11 @@ bool IsGoogleSearchResultURL(const GURL& url); // or https. bool IsWebURL(const GURL& url); +// The prerender contents of some experiments should never be swapped in +// by pretending to never match on the URL. This function will return true +// iff this is the case for the experiment_id specified. +bool IsNoSwapInExperiment(uint8 experiment_id); + } // namespace prerender #endif // CHROME_BROWSER_PRERENDER_PRERENDER_UTIL_H_ |