Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(424)

Unified Diff: chrome/browser/prerender/prerender_manager.cc

Issue 2527233003: [Prerender] Add a "SimpleLoad" mode to be used as a comparison reference (Closed)
Patch Set: add command line flag Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/prerender/prerender_manager.h ('k') | chrome/common/chrome_switches.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/prerender/prerender_manager.cc
diff --git a/chrome/browser/prerender/prerender_manager.cc b/chrome/browser/prerender/prerender_manager.cc
index 0a9db1b589cbc19246c022e05767cce7ccf9d80d..48300bbae5e5b419ef3ea964014765b13faef654 100644
--- a/chrome/browser/prerender/prerender_manager.cc
+++ b/chrome/browser/prerender/prerender_manager.cc
@@ -613,6 +613,11 @@ bool PrerenderManager::IsNoStatePrefetch() {
return GetMode() == PRERENDER_MODE_NOSTATE_PREFETCH;
}
+// static
+bool PrerenderManager::IsSimpleLoadExperiment() {
+ return GetMode() == PRERENDER_MODE_SIMPLE_LOAD_EXPERIMENT;
+}
+
bool PrerenderManager::IsWebContentsPrerendering(
const WebContents* web_contents,
Origin* origin) const {
@@ -943,6 +948,16 @@ std::unique_ptr<PrerenderHandle> PrerenderManager::AddPrerender(
return nullptr;
}
+ // Record the URL in the prefetch list, even when in full prerender mode, to
+ // enable metrics comparisons.
+ prefetches_.emplace_back(url, GetCurrentTimeTicks(), origin);
+
+ if (IsSimpleLoadExperiment()) {
+ // Exit after adding the url to prefetches_, so that no prefetching occurs
+ // but the page is still tracked as "would have been prefetched".
+ return nullptr;
+ }
+
std::unique_ptr<PrerenderContents> prerender_contents =
CreatePrerenderContents(url, referrer, origin);
DCHECK(prerender_contents);
@@ -961,9 +976,6 @@ std::unique_ptr<PrerenderHandle> PrerenderManager::AddPrerender(
histograms_->RecordPrerenderStarted(origin);
DCHECK(!prerender_contents_ptr->prerendering_has_started());
- if (prerender_contents_ptr->prerender_mode() == PREFETCH_ONLY)
- prefetches_.emplace_back(url, GetCurrentTimeTicks(), origin);
-
std::unique_ptr<PrerenderHandle> prerender_handle =
base::WrapUnique(new PrerenderHandle(active_prerenders_.back().get()));
SortActivePrerenders();
« no previous file with comments | « chrome/browser/prerender/prerender_manager.h ('k') | chrome/common/chrome_switches.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698