Index: chrome/browser/android/omnibox/omnibox_prerender.cc |
diff --git a/chrome/browser/android/omnibox/omnibox_prerender.cc b/chrome/browser/android/omnibox/omnibox_prerender.cc |
index 67bb950cedfb194bb87d9896f16044928b0165c8..c3916c5003d32e64fcd42ec38818d0c287b5d475 100644 |
--- a/chrome/browser/android/omnibox/omnibox_prerender.cc |
+++ b/chrome/browser/android/omnibox/omnibox_prerender.cc |
@@ -13,6 +13,7 @@ |
#include "chrome/browser/predictors/autocomplete_action_predictor_factory.h" |
#include "chrome/browser/profiles/profile.h" |
#include "chrome/browser/profiles/profile_android.h" |
+#include "chrome/browser/ui/search/instant_search_prerenderer.h" |
#include "content/public/browser/web_contents.h" |
#include "jni/OmniboxPrerender_jni.h" |
#include "url/gurl.h" |
@@ -88,18 +89,25 @@ void OmniboxPrerender::PrerenderMaybe(JNIEnv* env, |
if (default_match == autocomplete_result->end()) |
return; |
- AutocompleteActionPredictor* action_predictor = |
- AutocompleteActionPredictorFactory::GetForProfile(profile); |
- if (!action_predictor) |
- return; |
- |
AutocompleteActionPredictor::Action recommended_action = |
AutocompleteActionPredictor::ACTION_NONE; |
- if (action_predictor) { |
- action_predictor-> |
- RegisterTransitionalMatches(url_string, *autocomplete_result); |
- recommended_action = |
- action_predictor->RecommendAction(url_string, *default_match); |
+ InstantSearchPrerenderer* prerenderer = |
+ InstantSearchPrerenderer::GetForProfile(profile); |
+ if (prerenderer && |
+ prerenderer->IsAllowed(*default_match, web_contents)) { |
+ recommended_action = AutocompleteActionPredictor::ACTION_PRERENDER; |
+ } else { |
+ AutocompleteActionPredictor* action_predictor = |
+ AutocompleteActionPredictorFactory::GetForProfile(profile); |
+ if (!action_predictor) |
+ return; |
+ |
+ if (action_predictor) { |
+ action_predictor-> |
+ RegisterTransitionalMatches(url_string, *autocomplete_result); |
+ recommended_action = |
+ action_predictor->RecommendAction(url_string, *default_match); |
+ } |
} |
GURL current_url = GURL(current_url_string); |
@@ -135,6 +143,14 @@ void OmniboxPrerender::DoPrerender(const AutocompleteMatch& match, |
if (!web_contents) |
return; |
gfx::Rect container_bounds = web_contents->GetContainerBounds(); |
+ InstantSearchPrerenderer* prerenderer = |
+ InstantSearchPrerenderer::GetForProfile(profile); |
+ if (prerenderer && prerenderer->IsAllowed(match, web_contents)) { |
+ prerenderer->Init( |
+ web_contents->GetController().GetSessionStorageNamespaceMap(), |
+ container_bounds.size()); |
+ return; |
+ } |
predictors::AutocompleteActionPredictorFactory::GetForProfile(profile)-> |
StartPrerendering( |
match.destination_url, |