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..1ec8e3e265c8bdc8f5e462ffeb5e8fe6908b0097 100644 |
--- a/chrome/browser/omnibox/omnibox_field_trial.cc |
+++ b/chrome/browser/omnibox/omnibox_field_trial.cc |
@@ -265,6 +265,29 @@ void OmniboxFieldTrial::GetDemotionsByType( |
} |
} |
+void OmniboxFieldTrial::GetUndemotableTopTypes( |
+ 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. |
Mark P
2013/11/04 20:30:12
Perhaps add something about demotion scores (refer
H Fung
2013/11/04 21:39:57
Done.
|
+ 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 |
+ // 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 +301,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[] = |