Chromium Code Reviews| 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, |