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

Unified Diff: chrome/browser/android/omnibox/omnibox_prerender.cc

Issue 321943002: Prefetch high-confidence search suggestions in Android Chrome. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 6 years, 6 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
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,
« no previous file with comments | « chrome/browser/android/omnibox/autocomplete_controller_android.cc ('k') | chrome/browser/android/tab_android.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698