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..48f6a8f816f5d6af889f0335c256c7204fd79cba 100644 |
| --- a/chrome/browser/android/tab_android.cc |
| +++ b/chrome/browser/android/tab_android.cc |
| @@ -79,6 +79,20 @@ WebContents* CreateTargetContents(const chrome::NavigateParams& params, |
| return target_contents; |
| } |
| +bool SwapWithPrerender(const GURL& url, chrome::NavigateParams* params) { |
|
Bernhard Bauer
2014/07/28 15:00:05
MaybeSwapWithPrerender()?
Jitu( very slow this week)
2014/07/30 13:48:28
using only this function MaybeSwapWithPrerender()
Bernhard Bauer
2014/07/30 14:19:46
What I was suggesting was to name this method Mayb
|
| + Profile* profile = |
| + Profile::FromBrowserContext(params->target_contents->GetBrowserContext()); |
| + InstantSearchPrerenderer* prerenderer = |
| + InstantSearchPrerenderer::GetForProfile(profile); |
| + if (prerenderer && prerenderer->UsePrerenderedPage(url, params)) |
|
Bernhard Bauer
2014/07/28 15:00:05
When is |prerenderer| false?
Jitu( very slow this week)
2014/07/30 13:48:27
Removed this as not required.
Thanks.
|
| + return true; |
| + |
| + prerender::PrerenderManager* prerender_manager = |
| + prerender::PrerenderManagerFactory::GetForProfile(profile); |
| + return prerender_manager && |
|
Bernhard Bauer
2014/07/28 15:00:05
When is |prerender_manager| false?
Jitu( very slow this week)
2014/07/30 13:48:28
Changed.
Thanks
Bernhard Bauer
2014/07/30 14:19:46
If |prerender_manager| can be NULL, the original c
|
| + prerender_manager->MaybeUsePrerenderedPage(url, params); |
| +} |
| + |
| } // namespace |
| TabAndroid* TabAndroid::FromWebContents(content::WebContents* web_contents) { |
| @@ -187,12 +201,20 @@ 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); |
| + bool swapped_with_prerender = false; |
| + params->target_contents = web_contents_.get(); |
| + swapped_with_prerender = SwapWithPrerender(url, params); |
| + if (!swapped_with_prerender) { |
|
Bernhard Bauer
2014/07/28 15:00:05
You can inline this check.
Jitu( very slow this week)
2014/07/30 13:48:28
Done.
Thanks
|
| + 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, |