Index: chrome/browser/autocomplete/shortcuts_provider.cc |
diff --git a/chrome/browser/autocomplete/shortcuts_provider.cc b/chrome/browser/autocomplete/shortcuts_provider.cc |
index cf121be0bd3a49eefebb8635c947d4decd04ccb9..30b21a07d2b0aeaedbdc39f6ab4a9482bf1c41cb 100644 |
--- a/chrome/browser/autocomplete/shortcuts_provider.cc |
+++ b/chrome/browser/autocomplete/shortcuts_provider.cc |
@@ -174,15 +174,25 @@ void ShortcutsProvider::GetMatches(const AutocompleteInput& input) { |
matches_.erase(matches_.begin() + AutocompleteProvider::kMaxMatches, |
matches_.end()); |
} |
- // Reset relevance scores to guarantee no results are given an |
- // inlineable score and all scores are decreasing (but not do assign |
- // any scores below 1). |
- int max_relevance = AutocompleteResult::kLowestDefaultScore - 1; |
- for (ACMatches::iterator it = matches_.begin(); it != matches_.end(); ++it) { |
- max_relevance = std::min(max_relevance, it->relevance); |
- it->relevance = max_relevance; |
- if (max_relevance > 1) |
- --max_relevance; |
+ // Reset relevance scores to guarantee no match is given a score that may |
+ // allow it to become the highest ranked match (i.e., the default match) |
+ // unless the omnibox will reorder matches as necessary to correct the |
+ // problem. (Shortcuts matches are sometimes not inline-autocompletable |
+ // and, even when they are, the KeywordProvider does not bother to set |
Peter Kasting
2013/08/09 21:59:34
Nit: Was KeywordProvider intended to be ShortcutsP
Mark P
2013/08/09 22:24:11
Yes. Fixed.
|
+ // |inline_autocompletion|. Hence these matches can never be displayed |
+ // corectly in the omnibox as the default match.) In the process of |
+ // resetting scores, guarantee that all scores are decreasing (but do |
+ // not assign any scores below 1). |
+ if (!OmniboxFieldTrial::ReorderForLegalDefaultMatch( |
+ input.current_page_classification())) { |
+ int max_relevance = AutocompleteResult::kLowestDefaultScore - 1; |
+ for (ACMatches::iterator it = matches_.begin(); it != matches_.end(); |
+ ++it) { |
+ max_relevance = std::min(max_relevance, it->relevance); |
+ it->relevance = max_relevance; |
+ if (max_relevance > 1) |
+ --max_relevance; |
+ } |
} |
} |