Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(143)

Side by Side Diff: chrome/browser/omnibox/omnibox_field_trial.cc

Issue 22364007: AutocompleteInput::PageClassification -> AutocompleteInput::OmniboxContext. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/omnibox/omnibox_field_trial.h" 5 #include "chrome/browser/omnibox/omnibox_field_trial.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/metrics/field_trial.h" 9 #include "base/metrics/field_trial.h"
10 #include "base/strings/string_number_conversions.h" 10 #include "base/strings/string_number_conversions.h"
(...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after
215 if (!base::StringToInt(base::StringPiece( 215 if (!base::StringToInt(base::StringPiece(
216 group_name.substr(strlen(kMaxRelevanceGroupPrefix))), 216 group_name.substr(strlen(kMaxRelevanceGroupPrefix))),
217 max_relevance)) { 217 max_relevance)) {
218 LOG(WARNING) << "Malformed MaxRelevance string: " << group_name; 218 LOG(WARNING) << "Malformed MaxRelevance string: " << group_name;
219 return false; 219 return false;
220 } 220 }
221 return true; 221 return true;
222 } 222 }
223 223
224 bool OmniboxFieldTrial::SearchHistoryPreventInlining( 224 bool OmniboxFieldTrial::SearchHistoryPreventInlining(
225 AutocompleteInput::PageClassification current_page_classification) { 225 AutocompleteInput::OmniboxContext omnibox_context) {
226 return OmniboxFieldTrial::GetValueForRuleInContext( 226 return OmniboxFieldTrial::GetValueForRuleInContext(
227 kSearchHistoryRule, current_page_classification) == "PreventInlining"; 227 kSearchHistoryRule, omnibox_context) == "PreventInlining";
228 } 228 }
229 229
230 bool OmniboxFieldTrial::SearchHistoryDisable( 230 bool OmniboxFieldTrial::SearchHistoryDisable(
231 AutocompleteInput::PageClassification current_page_classification) { 231 AutocompleteInput::OmniboxContext omnibox_context) {
232 return OmniboxFieldTrial::GetValueForRuleInContext( 232 return OmniboxFieldTrial::GetValueForRuleInContext(
233 kSearchHistoryRule, current_page_classification) == "Disable"; 233 kSearchHistoryRule, omnibox_context) == "Disable";
234 } 234 }
235 235
236 // Background and implementation details: 236 // Background and implementation details:
237 // 237 //
238 // Each experiment group in any field trial can come with an optional set of 238 // Each experiment group in any field trial can come with an optional set of
239 // parameters (key-value pairs). In the bundled omnibox experiment 239 // parameters (key-value pairs). In the bundled omnibox experiment
240 // (kBundledExperimentFieldTrialName), each experiment group comes with a 240 // (kBundledExperimentFieldTrialName), each experiment group comes with a
241 // list of parameters in the form: 241 // list of parameters in the form:
242 // key=<Rule>:<AutocompleteInput::PageClassification (as an int)> 242 // key=<Rule>:<AutocompleteInput::OmniboxContext (as an int)>
243 // value=<arbitrary string> 243 // value=<arbitrary string>
244 // The AutocompleteInput::PageClassification can also be "*", which means 244 // The AutocompleteInput::OmniboxContext can also be "*", which means
245 // this rule applies in all page classification contexts. 245 // this rule applies in all page classification contexts.
246 // One example parameter is 246 // One example parameter is
247 // key=SearchHistory:6 247 // key=SearchHistory:6
248 // value=PreventInlining 248 // value=PreventInlining
249 // This means in page classification context 6 (a search result page doing 249 // This means in page classification context 6 (a search result page doing
250 // search term replacement), the SearchHistory experiment should 250 // search term replacement), the SearchHistory experiment should
251 // PreventInlining. 251 // PreventInlining.
252 // 252 //
253 // In short, this function tries to find the value associated with key 253 // In short, this function tries to find the value associated with key
254 // |rule|:|page_classification|, failing that it looks up |rule|:*, 254 // |rule|:|omnibox_context|, failing that it looks up |rule|:*,
255 // and failing that it returns the empty string. 255 // and failing that it returns the empty string.
256 std::string OmniboxFieldTrial::GetValueForRuleInContext( 256 std::string OmniboxFieldTrial::GetValueForRuleInContext(
257 const std::string& rule, 257 const std::string& rule,
258 AutocompleteInput::PageClassification page_classification) { 258 AutocompleteInput::OmniboxContext omnibox_context) {
259 std::map<std::string, std::string> params; 259 std::map<std::string, std::string> params;
260 if (!chrome_variations::GetVariationParams(kBundledExperimentFieldTrialName, 260 if (!chrome_variations::GetVariationParams(kBundledExperimentFieldTrialName,
261 &params)) { 261 &params)) {
262 return std::string(); 262 return std::string();
263 } 263 }
264 // Look up rule in this exact context. 264 // Look up rule in this exact context.
265 std::map<std::string, std::string>::iterator it = 265 std::map<std::string, std::string>::iterator it =
266 params.find(rule + ":" + base::IntToString( 266 params.find(rule + ":" + base::IntToString(
267 static_cast<int>(page_classification))); 267 static_cast<int>(omnibox_context)));
268 if (it != params.end()) 268 if (it != params.end())
269 return it->second; 269 return it->second;
270 // Look up rule in the global context. 270 // Look up rule in the global context.
271 it = params.find(rule + ":*"); 271 it = params.find(rule + ":*");
272 return (it != params.end()) ? it->second : std::string(); 272 return (it != params.end()) ? it->second : std::string();
273 } 273 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698