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, |