Chromium Code Reviews| 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..d993d30eabe50be4eba4c786c9563ec7d59ebc16 100644 |
| --- a/chrome/browser/autocomplete/shortcuts_provider.cc |
| +++ b/chrome/browser/autocomplete/shortcuts_provider.cc |
| @@ -55,7 +55,9 @@ ShortcutsProvider::ShortcutsProvider(AutocompleteProviderListener* listener, |
| AutocompleteProvider::TYPE_SHORTCUTS), |
| languages_(profile_->GetPrefs()->GetString(prefs::kAcceptLanguages)), |
| initialized_(false), |
| - max_relevance_(AutocompleteResult::kLowestDefaultScore - 1) { |
| + max_relevance_(AutocompleteResult::kLowestDefaultScore - 1), |
| + omnibox_will_reorder_for_legal_default_match_( |
| + OmniboxFieldTrial::InReorderForLegalDefaultMatchGroup()) { |
| scoped_refptr<history::ShortcutsBackend> backend = |
| ShortcutsBackendFactory::GetForProfile(profile_); |
| if (backend.get()) { |
| @@ -174,15 +176,20 @@ 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 result is given a score that |
| + // may allow it to become the highest ranked matches (= default match) |
|
msw
2013/07/18 06:23:57
nit: s/matches/match, also s/=/i.e. the/
Mark P
2013/07/21 20:31:05
Done.
|
| + // unless the omnibox will reorder matches as necessary to correct the |
| + // problem. In the process of resetting scores, guarantee that all scores |
| + // are decreasing (but not do assign any scores below 1). |
| + if (!omnibox_will_reorder_for_legal_default_match_) { |
| + 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; |
| + } |
| } |
| } |