Index: chrome/browser/android/tab_android.cc |
diff --git a/chrome/browser/android/tab_android.cc b/chrome/browser/android/tab_android.cc |
index f175c0f92587ebb466db9a01ec39c4323ecce6c8..bc6bc15f3452b191abfee6b610dcfb858a3198ab 100644 |
--- a/chrome/browser/android/tab_android.cc |
+++ b/chrome/browser/android/tab_android.cc |
@@ -79,6 +79,19 @@ WebContents* CreateTargetContents(const chrome::NavigateParams& params, |
return target_contents; |
} |
+bool MaybeSwapWithPrerender(const GURL& url, chrome::NavigateParams* params) { |
+ Profile* profile = |
+ Profile::FromBrowserContext(params->target_contents->GetBrowserContext()); |
+ |
+ prerender::PrerenderManager* prerender_manager = |
+ prerender::PrerenderManagerFactory::GetForProfile(profile); |
+ if (!prerender_manager) { |
+ return false; |
+ } else { |
Bernhard Bauer
2014/07/31 08:11:00
Don't put an "else" after a branch that ends with
Jitu( very slow this week)
2014/07/31 08:19:47
Done.
|
+ return prerender_manager->MaybeUsePrerenderedPage(url, params); |
+ } |
+} |
+ |
} // namespace |
TabAndroid* TabAndroid::FromWebContents(content::WebContents* web_contents) { |
@@ -187,12 +200,18 @@ void TabAndroid::HandlePopupNavigation(chrome::NavigateParams* params) { |
if (!params->url.is_empty()) { |
bool was_blocked = false; |
GURL url(params->url); |
- NavigationController::LoadURLParams load_url_params(url); |
- MakeLoadURLParams(params, &load_url_params); |
if (params->disposition == CURRENT_TAB) { |
- web_contents_.get()->GetController().LoadURLWithParams(load_url_params); |
+ params->target_contents = web_contents_.get(); |
+ if (!MaybeSwapWithPrerender(url, params)) { |
+ NavigationController::LoadURLParams load_url_params(url); |
+ MakeLoadURLParams(params, &load_url_params); |
+ params->target_contents->GetController().LoadURLWithParams( |
+ load_url_params); |
+ } |
} else { |
params->target_contents = CreateTargetContents(*params, url); |
+ NavigationController::LoadURLParams load_url_params(url); |
+ MakeLoadURLParams(params, &load_url_params); |
params->target_contents->GetController().LoadURLWithParams( |
load_url_params); |
web_contents_delegate_->AddNewContents(params->source_contents, |