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

Unified Diff: chrome/browser/autocomplete/search_provider.cc

Issue 12039053: Fix cursor position for default provider searches in keyword mode. (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Addressed Mark's comments. Created 7 years, 11 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/autocomplete/search_provider.cc
diff --git a/chrome/browser/autocomplete/search_provider.cc b/chrome/browser/autocomplete/search_provider.cc
index 5084ee1cd07685195d5102b517c0230f7b18d3c3..0b09e6f920a0d845b193068b92b2155104ba25e0 100644
--- a/chrome/browser/autocomplete/search_provider.cc
+++ b/chrome/browser/autocomplete/search_provider.cc
@@ -227,11 +227,13 @@ void SearchProvider::Start(const AutocompleteInput& input,
return;
}
- keyword_input_text_.clear();
+ keyword_input_ = input;
const TemplateURL* keyword_provider =
- KeywordProvider::GetSubstitutingTemplateURLForInput(profile_, input,
- &keyword_input_text_);
- if (keyword_input_text_.empty())
+ KeywordProvider::GetSubstitutingTemplateURLForInput(model,
+ &keyword_input_);
+ if (keyword_provider == NULL)
+ keyword_input_.Clear();
+ else if (keyword_input_.text().empty())
keyword_provider = NULL;
const TemplateURL* default_provider = model->GetDefaultSearchProvider();
@@ -330,9 +332,9 @@ void SearchProvider::Run() {
time_suggest_request_sent_ = base::TimeTicks::Now();
default_fetcher_.reset(CreateSuggestFetcher(kDefaultProviderURLFetcherID,
- providers_.GetDefaultProviderURL(), input_.text()));
+ providers_.GetDefaultProviderURL(), input_));
keyword_fetcher_.reset(CreateSuggestFetcher(kKeywordProviderURLFetcherID,
- providers_.GetKeywordProviderURL(), keyword_input_text_));
+ providers_.GetKeywordProviderURL(), keyword_input_));
// Both the above can fail if the providers have been modified or deleted
// since the query began.
@@ -470,7 +472,7 @@ void SearchProvider::DoHistoryQuery(bool minimal_changes) {
const TemplateURL* keyword_url = providers_.GetKeywordProviderURL();
if (keyword_url) {
url_db->GetMostRecentKeywordSearchTerms(keyword_url->id(),
- keyword_input_text_, num_matches, &keyword_history_results_);
+ keyword_input_.text(), num_matches, &keyword_history_results_);
}
}
@@ -591,11 +593,11 @@ void SearchProvider::ClearResults() {
}
void SearchProvider::RemoveStaleResults() {
- // Keyword provider results should match |keyword_input_text_|, unless
+ // Keyword provider results should match |keyword_input_.text()|, unless
// the input was just changed to non-keyword mode; in that case, compare
// against |input_.text()|.
const string16& keyword_input =
- !keyword_input_text_.empty() ? keyword_input_text_ : input_.text();
+ !keyword_input_.text().empty() ? keyword_input_.text() : input_.text();
RemoveStaleSuggestResults(&keyword_suggest_results_, keyword_input);
RemoveStaleSuggestResults(&default_suggest_results_, input_.text());
RemoveStaleNavigationResults(&keyword_navigation_results_, keyword_input);
@@ -646,13 +648,13 @@ void SearchProvider::ApplyCalculatedNavigationRelevance(NavigationResults* list,
net::URLFetcher* SearchProvider::CreateSuggestFetcher(
int id,
const TemplateURL* template_url,
- const string16& text) {
+ const AutocompleteInput& input) {
if (!template_url || template_url->suggestions_url().empty())
return NULL;
// Bail if the suggestion URL is invalid with the given replacements.
- TemplateURLRef::SearchTermsArgs search_term_args(text);
- search_term_args.cursor_position = input_.cursor_position();
+ TemplateURLRef::SearchTermsArgs search_term_args(input.text());
+ search_term_args.cursor_position = input.cursor_position();
GURL suggest_url(template_url->suggestions_url_ref().ReplaceSearchTerms(
search_term_args));
if (!suggest_url.is_valid())
@@ -681,7 +683,8 @@ bool SearchProvider::ParseSuggestResults(Value* root_val, bool is_keyword) {
string16 query;
ListValue* root_list = NULL;
ListValue* results = NULL;
- const string16& input_text = is_keyword ? keyword_input_text_ : input_.text();
+ const string16& input_text =
+ is_keyword ? keyword_input_.text() : input_.text();
if (!root_val->GetAsList(&root_list) || !root_list->GetString(0, &query) ||
(query != input_text) || !root_list->GetList(1, &results))
return false;
@@ -946,7 +949,8 @@ void SearchProvider::AddHistoryResultsToMap(const HistoryResults& results,
bool prevent_inline_autocomplete = input_.prevent_inline_autocomplete() ||
(input_.type() == AutocompleteInput::URL);
- const string16& input_text = is_keyword ? keyword_input_text_ : input_.text();
+ const string16& input_text =
+ is_keyword ? keyword_input_.text() : input_.text();
bool input_multiple_words = HasMultipleWords(input_text);
SuggestResults scored_results;
@@ -1039,7 +1043,8 @@ SearchProvider::SuggestResults SearchProvider::ScoreHistoryResults(
void SearchProvider::AddSuggestResultsToMap(const SuggestResults& results,
bool is_keyword,
MatchMap* map) {
- const string16& input_text = is_keyword ? keyword_input_text_ : input_.text();
+ const string16& input_text =
+ is_keyword ? keyword_input_.text() : input_.text();
for (size_t i = 0; i < results.size(); ++i) {
AddMatchToMap(results[i].suggestion(), input_text, results[i].relevance(),
AutocompleteMatch::SEARCH_SUGGEST, i, is_keyword, map);
@@ -1237,7 +1242,7 @@ void SearchProvider::AddMatchToMap(const string16& query_string,
AutocompleteMatch SearchProvider::NavigationToMatch(
const NavigationResult& navigation,
bool is_keyword) {
- const string16& input = is_keyword ? keyword_input_text_ : input_.text();
+ const string16& input = is_keyword ? keyword_input_.text() : input_.text();
AutocompleteMatch match(this, navigation.relevance(), false,
AutocompleteMatch::NAVSUGGEST);
match.destination_url = navigation.url();

Powered by Google App Engine
This is Rietveld 408576698