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

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

Issue 9387015: Upstreaming prerendering changes for Android. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: More changes Created 8 years, 10 months 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
Index: chrome/browser/prerender/prerender_manager.cc
diff --git a/chrome/browser/prerender/prerender_manager.cc b/chrome/browser/prerender/prerender_manager.cc
index 138785a7df0093d648f3140f3e8e18d95b94f2ff..88c698dd43e55ca010fa1d78ad938a7aace716d3 100644
--- a/chrome/browser/prerender/prerender_manager.cc
+++ b/chrome/browser/prerender/prerender_manager.cc
@@ -268,11 +268,17 @@ bool PrerenderManager::AddPrerenderFromLinkRelPrerender(
int route_id,
const GURL& url,
const content::Referrer& referrer) {
+#if defined(OS_ANDROID)
+ // TODO(jcivelli): http://crbug.com/113322 We should have an option to disable
+ // link-prerender and enable omnibox-prerender only.
+ return false;
+#else
std::pair<int, int> child_route_id_pair = std::make_pair(process_id,
route_id);
return AddPrerender(ORIGIN_LINK_REL_PRERENDER, child_route_id_pair,
url, referrer, NULL);
+#endif
}
bool PrerenderManager::AddPrerenderFromOmnibox(
@@ -634,6 +640,12 @@ bool PrerenderManager::IsWebContentsPrerendering(
return false;
}
+bool PrerenderManager::DidPrerenderFinishLoading(const GURL& url) {
+ DCHECK(CalledOnValidThread());
+ PrerenderContents* contents = FindEntry(url);
+ return contents ? contents->has_finished_loading() : false;
+}
+
void PrerenderManager::MarkWebContentsAsPrerendered(WebContents* web_contents) {
DCHECK(CalledOnValidThread());
prerendered_tab_contents_set_.insert(web_contents);
@@ -828,11 +840,15 @@ bool PrerenderManager::AddPrerender(
// true, so that case needs to be explicitly checked for.
// TODO(tburkard): Figure out how to cancel prerendering in the opposite
// case, when a new tab is added to a process used for prerendering.
+ // On Android we do reuse processes as we have a limited number of them and we
+ // still want the benefits or prerendering even when several tabs are open.
dominich 2012/02/14 01:11:20 nit 'or prerendering' -> 'of prerendering'
dominich 2012/02/14 01:11:20 This means that you can't lower the CPU process -
Jay Civelli 2012/02/14 03:13:51 Done.
Jay Civelli 2012/02/14 03:13:51 I thought there was only lower priority given to n
+#if !defined(OS_ANDROID)
if (content::RenderProcessHost::ShouldTryToUseExistingProcessHost() &&
!content::RenderProcessHost::run_renderer_in_process()) {
RecordFinalStatus(origin, experiment, FINAL_STATUS_TOO_MANY_PROCESSES);
return false;
}
+#endif
// Check if enough time has passed since the last prerender.
if (!DoesRateLimitAllowPrerender()) {
« chrome/browser/prerender/prerender_manager.h ('K') | « chrome/browser/prerender/prerender_manager.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698