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

Unified Diff: chrome/browser/android/tab_android.cc

Issue 426623004: While loading url in current tab should check if any prerender page avaliable. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 5 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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,
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698