Index: chrome/browser/autocomplete/search_provider.cc |
=================================================================== |
--- chrome/browser/autocomplete/search_provider.cc (revision 131375) |
+++ chrome/browser/autocomplete/search_provider.cc (working copy) |
@@ -62,15 +62,8 @@ |
}; |
-// SearchProvider ------------------------------------------------------------- |
+// SearchProvider::Providers -------------------------------------------------- |
-// static |
-const int SearchProvider::kDefaultProviderURLFetcherID = 1; |
-// static |
-const int SearchProvider::kKeywordProviderURLFetcherID = 2; |
-// static |
-bool SearchProvider::query_suggest_immediately_ = false; |
- |
void SearchProvider::Providers::Set(const TemplateURL* default_provider, |
const TemplateURL* keyword_provider) { |
// TODO(pkasting): http://b/1162970 We shouldn't need to structure-copy |
@@ -84,6 +77,16 @@ |
cached_keyword_provider_ = *keyword_provider; |
} |
+ |
+// SearchProvider ------------------------------------------------------------- |
+ |
+// static |
+const int SearchProvider::kDefaultProviderURLFetcherID = 1; |
+// static |
+const int SearchProvider::kKeywordProviderURLFetcherID = 2; |
+// static |
+bool SearchProvider::query_suggest_immediately_ = false; |
+ |
SearchProvider::SearchProvider(ACProviderListener* listener, Profile* profile) |
: AutocompleteProvider(listener, profile, "Search"), |
suggest_results_pending_(0), |
@@ -242,16 +245,17 @@ |
// Start a new request with the current input. |
DCHECK(!done_); |
suggest_results_pending_ = 0; |
+ if (providers_.valid_suggest_for_default_provider()) { |
+ suggest_results_pending_++; |
+ default_fetcher_.reset(CreateSuggestFetcher(kDefaultProviderURLFetcherID, |
+ providers_.default_provider().suggestions_url_ref(), input_.text())); |
+ } |
if (providers_.valid_suggest_for_keyword_provider()) { |
suggest_results_pending_++; |
keyword_fetcher_.reset(CreateSuggestFetcher(kKeywordProviderURLFetcherID, |
- providers_.keyword_provider(), keyword_input_text_)); |
+ providers_.keyword_provider().suggestions_url_ref(), |
+ keyword_input_text_)); |
} |
- if (providers_.valid_suggest_for_default_provider()) { |
- suggest_results_pending_++; |
- default_fetcher_.reset(CreateSuggestFetcher(kDefaultProviderURLFetcherID, |
- providers_.default_provider(), input_.text())); |
- } |
// We should only get here if we have a suggest url for the keyword or default |
// providers. |
DCHECK_GT(suggest_results_pending_, 0); |
@@ -335,14 +339,14 @@ |
// require multiple searches and tracking of "single- vs. multi-word" in the |
// database. |
int num_matches = kMaxMatches * 5; |
+ if (providers_.valid_default_provider()) { |
+ url_db->GetMostRecentKeywordSearchTerms(providers_.default_provider().id(), |
+ input_.text(), num_matches, &default_history_results_); |
+ } |
if (providers_.valid_keyword_provider()) { |
url_db->GetMostRecentKeywordSearchTerms(providers_.keyword_provider().id(), |
keyword_input_text_, num_matches, &keyword_history_results_); |
} |
- if (providers_.valid_default_provider()) { |
- url_db->GetMostRecentKeywordSearchTerms(providers_.default_provider().id(), |
- input_.text(), num_matches, &default_history_results_); |
- } |
} |
void SearchProvider::StartOrStopSuggestQuery(bool minimal_changes) { |
@@ -386,11 +390,11 @@ |
} |
bool SearchProvider::IsQuerySuitableForSuggest() const { |
- // Don't run Suggest in incognito mode, the engine doesn't support it, or |
- // the user has disabled it. |
+ // Don't run Suggest in incognito mode, if the engine doesn't support it, or |
+ // if the user has disabled it. |
if (profile_->IsOffTheRecord() || |
- (!providers_.valid_suggest_for_keyword_provider() && |
- !providers_.valid_suggest_for_default_provider()) || |
+ (!providers_.valid_suggest_for_default_provider() && |
+ !providers_.valid_suggest_for_keyword_provider()) || |
!profile_->GetPrefs()->GetBoolean(prefs::kSearchSuggestEnabled)) |
return false; |
@@ -453,9 +457,8 @@ |
content::URLFetcher* SearchProvider::CreateSuggestFetcher( |
int id, |
- const TemplateURL& provider, |
+ const TemplateURLRef& suggestions_url, |
const string16& text) { |
- const TemplateURLRef& suggestions_url = provider.suggestions_url_ref(); |
DCHECK(suggestions_url.SupportsReplacement()); |
content::URLFetcher* fetcher = content::URLFetcher::Create(id, |
GURL(suggestions_url.ReplaceSearchTermsUsingProfile( |
@@ -838,8 +841,8 @@ |
MatchMap* map) { |
AutocompleteMatch match(this, relevance, false, type); |
std::vector<size_t> content_param_offsets; |
- const TemplateURL& provider = is_keyword ? providers_.keyword_provider() : |
- providers_.default_provider(); |
+ const TemplateURL& provider = is_keyword ? |
+ providers_.keyword_provider() : providers_.default_provider(); |
match.template_url = &provider; |
match.contents.assign(query_string); |
// We do intra-string highlighting for suggestions - the suggested segment |