Chromium Code Reviews| Index: chrome/browser/omnibox/omnibox_field_trial.cc |
| diff --git a/chrome/browser/omnibox/omnibox_field_trial.cc b/chrome/browser/omnibox/omnibox_field_trial.cc |
| index e2c7144101483c2a6f0528524ec7d2854d086458..7688ca0e119d872a801931fd60d51fe1f20dc114 100644 |
| --- a/chrome/browser/omnibox/omnibox_field_trial.cc |
| +++ b/chrome/browser/omnibox/omnibox_field_trial.cc |
| @@ -265,6 +265,31 @@ void OmniboxFieldTrial::GetDemotionsByType( |
| } |
| } |
| +void OmniboxFieldTrial::GetUndemotableTopTypes( |
|
Peter Kasting
2013/11/05 04:09:55
This should return by value rather than outparam.
H Fung
2013/11/05 06:11:27
Done.
|
| + AutocompleteInput::PageClassification current_page_classification, |
| + UndemotableTopMatchTypes* undemotable_types) { |
| + undemotable_types->clear(); |
| + const std::string types_rule = |
| + OmniboxFieldTrial::GetValueForRuleInContext( |
| + kUndemotableTopTypeRule, |
| + current_page_classification); |
| + // The value of the UndemotableTopTypes rule is a comma-separated list of |
| + // AutocompleteMatchType::Type enums represented as an integer. The |
| + // DemoteByType rule does not apply to the top match if the type of the top |
| + // match is in this list. |
| + std::vector<std::string> types; |
| + base::SplitString(types_rule, ',', &types); |
| + for (std::vector<std::string>::const_iterator it = types.begin(); |
| + it != types.end(); ++it) { |
| + // This is a best-effort conversion; we trust the hand-crafted parameters |
| + // downloaded from the server to be perfect. There's no need for handle |
|
Peter Kasting
2013/11/05 04:09:55
Nit: for -> to (and fix above code also)
H Fung
2013/11/05 06:11:27
Done.
|
| + // errors smartly. |
| + int t; |
| + base::StringToInt(*it, &t); |
| + undemotable_types->insert(static_cast<AutocompleteMatchType::Type>(t)); |
| + } |
| +} |
| + |
| bool OmniboxFieldTrial::ReorderForLegalDefaultMatch( |
| AutocompleteInput::PageClassification current_page_classification) { |
| return OmniboxFieldTrial::GetValueForRuleInContext( |
| @@ -278,6 +303,7 @@ const char OmniboxFieldTrial::kShortcutsScoringMaxRelevanceRule[] = |
| "ShortcutsScoringMaxRelevance"; |
| const char OmniboxFieldTrial::kSearchHistoryRule[] = "SearchHistory"; |
| const char OmniboxFieldTrial::kDemoteByTypeRule[] = "DemoteByType"; |
| +const char OmniboxFieldTrial::kUndemotableTopTypeRule[] = "UndemotableTopTypes"; |
| const char OmniboxFieldTrial::kReorderForLegalDefaultMatchRule[] = |
| "ReorderForLegalDefaultMatch"; |
| const char OmniboxFieldTrial::kReorderForLegalDefaultMatchRuleEnabled[] = |