summaryrefslogtreecommitdiffstats
path: root/chrome/browser/autocomplete/autocomplete_edit.cc
diff options
context:
space:
mode:
authordominich@chromium.org <dominich@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-11-10 21:40:02 +0000
committerdominich@chromium.org <dominich@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-11-10 21:40:02 +0000
commit5b4fc5b7c88b94d0e8b61eddd1c9203723ebd29e (patch)
treefac0fa0930794b2bd5f497ebc7cb117a46d3e981 /chrome/browser/autocomplete/autocomplete_edit.cc
parent47df8bbb283f8bfee7c2cef75b876ba51119e643 (diff)
downloadchromium_src-5b4fc5b7c88b94d0e8b61eddd1c9203723ebd29e.zip
chromium_src-5b4fc5b7c88b94d0e8b61eddd1c9203723ebd29e.tar.gz
chromium_src-5b4fc5b7c88b94d0e8b61eddd1c9203723ebd29e.tar.bz2
Add database to use as the source of an alternative algorithm for Network Action Prediction
BUG=98110 TEST=unit_tests:NetworkActionPredictor*,interactive_ui_tests:OmniboxViewTest* Review URL: http://codereview.chromium.org/8241014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@109509 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/autocomplete/autocomplete_edit.cc')
-rw-r--r--chrome/browser/autocomplete/autocomplete_edit.cc36
1 files changed, 18 insertions, 18 deletions
diff --git a/chrome/browser/autocomplete/autocomplete_edit.cc b/chrome/browser/autocomplete/autocomplete_edit.cc
index b9f7000..096d2ad 100644
--- a/chrome/browser/autocomplete/autocomplete_edit.cc
+++ b/chrome/browser/autocomplete/autocomplete_edit.cc
@@ -16,6 +16,7 @@
#include "chrome/browser/autocomplete/autocomplete_popup_model.h"
#include "chrome/browser/autocomplete/autocomplete_popup_view.h"
#include "chrome/browser/autocomplete/keyword_provider.h"
+#include "chrome/browser/autocomplete/network_action_predictor.h"
#include "chrome/browser/autocomplete/search_provider.h"
#include "chrome/browser/bookmarks/bookmark_utils.h"
#include "chrome/browser/command_updater.h"
@@ -89,8 +90,7 @@ AutocompleteEditModel::AutocompleteEditModel(
profile_(profile),
in_revert_(false),
allow_exact_keyword_match_(false),
- instant_complete_behavior_(INSTANT_COMPLETE_DELAYED),
- network_action_predictor_(profile) {
+ instant_complete_behavior_(INSTANT_COMPLETE_DELAYED) {
}
AutocompleteEditModel::~AutocompleteEditModel() {
@@ -217,9 +217,15 @@ void AutocompleteEditModel::OnChanged() {
// Confer with the NetworkActionPredictor to determine what action, if any,
// we should take. Get the recommended action here even if we don't need it
- // so we can get stats for anyone who is opted in to UMA.
- NetworkActionPredictor::Action recommended_action =
- network_action_predictor_.RecommendAction(user_text_, current_match);
+ // so we can get stats for anyone who is opted in to UMA, but only get it if
+ // the user has actually typed something to avoid constructing it before it's
+ // needed. Note: This event is triggered as part of startup when the initial
+ // tab transitions to the start page.
+ NetworkActionPredictor* network_action_predictor = user_input_in_progress() ?
+ profile_->GetNetworkActionPredictor() : NULL;
+ NetworkActionPredictor::Action recommended_action = network_action_predictor ?
+ network_action_predictor->RecommendAction(user_text_, current_match) :
+ NetworkActionPredictor::ACTION_NONE;
UMA_HISTOGRAM_ENUMERATION("NetworkActionPredictor.Action_" +
prerender::GetOmniboxHistogramSuffix(),
recommended_action,
@@ -227,10 +233,6 @@ void AutocompleteEditModel::OnChanged() {
if (DoInstant(current_match, &suggested_text)) {
SetSuggestedText(suggested_text, instant_complete_behavior_);
} else {
- // Ignore the recommended action if Omnibox prerendering is not enabled.
- if (!prerender::IsOmniboxEnabled(profile_))
- recommended_action = NetworkActionPredictor::ACTION_NONE;
-
switch (recommended_action) {
case NetworkActionPredictor::ACTION_PRERENDER:
DoPrerender(current_match);
@@ -1034,15 +1036,13 @@ void AutocompleteEditModel::DoPrerender(const AutocompleteMatch& match) {
// Do not prerender if the destination URL is the same as the current URL.
if (match.destination_url == PermanentURL())
return;
- if (user_input_in_progress() && popup_->IsOpen()) {
- TabContentsWrapper* tab = controller_->GetTabContentsWrapper();
- prerender::PrerenderManager* prerender_manager =
- prerender::PrerenderManagerFactory::GetForProfile(tab->profile());
- if (prerender_manager) {
- RenderViewHost* current_host = tab->tab_contents()->render_view_host();
- prerender_manager->AddPrerenderFromOmnibox(
- match.destination_url, current_host->session_storage_namespace());
- }
+ TabContentsWrapper* tab = controller_->GetTabContentsWrapper();
+ prerender::PrerenderManager* prerender_manager =
+ prerender::PrerenderManagerFactory::GetForProfile(tab->profile());
+ if (prerender_manager) {
+ RenderViewHost* current_host = tab->tab_contents()->render_view_host();
+ prerender_manager->AddPrerenderFromOmnibox(
+ match.destination_url, current_host->session_storage_namespace());
}
}