Chromium Code Reviews| Index: chrome/browser/autocomplete/search_provider.cc |
| diff --git a/chrome/browser/autocomplete/search_provider.cc b/chrome/browser/autocomplete/search_provider.cc |
| index 2e79b08f3841cd8c1562bf669ea5ce13ea10a12b..c484c763afa111c0f2c70e81bd1aafc01b6f292e 100644 |
| --- a/chrome/browser/autocomplete/search_provider.cc |
| +++ b/chrome/browser/autocomplete/search_provider.cc |
| @@ -1208,8 +1208,9 @@ void SearchProvider::ConvertResultsToAutocompleteMatches() { |
| std::string(), |
| &map); |
| } |
| + const TemplateURL* keyword_url = NULL; |
| if (!keyword_input_.text().empty()) { |
| - const TemplateURL* keyword_url = providers_.GetKeywordProviderURL(); |
| + keyword_url = providers_.GetKeywordProviderURL(); |
| // We only create the verbatim search query match for a keyword |
| // if it's not an extension keyword. Extension keywords are handled |
| // in KeywordProvider::Start(). (Extensions are complicated...) |
| @@ -1293,6 +1294,17 @@ void SearchProvider::ConvertResultsToAutocompleteMatches() { |
| matches_.push_back(*i); |
| } |
| + if (keyword_url != NULL) { |
| + // When in keyword mode, make sure all matches are not associated with the |
|
Peter Kasting
2013/11/15 03:03:34
Nit: are -> that are
Mark P
2013/11/15 17:36:33
Done.
|
| + // keyword are not allowed to be the default match lest they cause the user |
| + // to break out of keyword mode. For reference, non-keyword matches are |
| + // queries to the default search engine and navsuggestions from any source. |
| + for (ACMatches::iterator it = matches_.begin(); it != matches_.end(); |
|
Peter Kasting
2013/11/15 03:03:34
Is this truly the best place for this code? Perha
Mark P
2013/11/15 17:36:33
Yes, I think this is the right place. As you say,
|
| + ++it) { |
| + if (it->keyword != keyword_url->keyword()) |
| + it->allowed_to_be_default_match = false; |
|
Peter Kasting
2013/11/15 03:03:34
Thought experiment.
Let's say the user types an e
Mark P
2013/11/15 17:36:33
What a dang tricky thought experiment.
I'm going
|
| + } |
| + } |
| UMA_HISTOGRAM_TIMES("Omnibox.SearchProvider.ConvertResultsTime", |
| base::TimeTicks::Now() - start_time); |
| } |