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

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

Issue 412943002: Move variations component code to variations namespace. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 6 years, 5 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 <cmath> 7 #include <cmath>
8 #include <string> 8 #include <string>
9 9
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after
247 base::TimeDelta OmniboxFieldTrial::StopTimerFieldTrialDuration() { 247 base::TimeDelta OmniboxFieldTrial::StopTimerFieldTrialDuration() {
248 int stop_timer_ms; 248 int stop_timer_ms;
249 if (base::StringToInt( 249 if (base::StringToInt(
250 base::FieldTrialList::FindFullName(kStopTimerFieldTrialName), 250 base::FieldTrialList::FindFullName(kStopTimerFieldTrialName),
251 &stop_timer_ms)) 251 &stop_timer_ms))
252 return base::TimeDelta::FromMilliseconds(stop_timer_ms); 252 return base::TimeDelta::FromMilliseconds(stop_timer_ms);
253 return base::TimeDelta::FromMilliseconds(1500); 253 return base::TimeDelta::FromMilliseconds(1500);
254 } 254 }
255 255
256 bool OmniboxFieldTrial::InZeroSuggestFieldTrial() { 256 bool OmniboxFieldTrial::InZeroSuggestFieldTrial() {
257 if (chrome_variations::GetVariationParamValue( 257 if (variations::GetVariationParamValue(
258 kBundledExperimentFieldTrialName, kZeroSuggestRule) == "true") 258 kBundledExperimentFieldTrialName, kZeroSuggestRule) == "true")
259 return true; 259 return true;
260 if (chrome_variations::GetVariationParamValue( 260 if (variations::GetVariationParamValue(
261 kBundledExperimentFieldTrialName, kZeroSuggestRule) == "false") 261 kBundledExperimentFieldTrialName, kZeroSuggestRule) == "false")
262 return false; 262 return false;
263 #if defined(OS_WIN) || defined(OS_CHROMEOS) || defined(OS_LINUX) || \ 263 #if defined(OS_WIN) || defined(OS_CHROMEOS) || defined(OS_LINUX) || \
264 (defined(OS_MACOSX) && !defined(OS_IOS)) 264 (defined(OS_MACOSX) && !defined(OS_IOS))
265 return true; 265 return true;
266 #else 266 #else
267 return false; 267 return false;
268 #endif 268 #endif
269 } 269 }
270 270
271 bool OmniboxFieldTrial::InZeroSuggestMostVisitedFieldTrial() { 271 bool OmniboxFieldTrial::InZeroSuggestMostVisitedFieldTrial() {
272 return chrome_variations::GetVariationParamValue( 272 return variations::GetVariationParamValue(
273 kBundledExperimentFieldTrialName, 273 kBundledExperimentFieldTrialName,
274 kZeroSuggestVariantRule) == "MostVisited"; 274 kZeroSuggestVariantRule) == "MostVisited";
275 } 275 }
276 276
277 bool OmniboxFieldTrial::InZeroSuggestAfterTypingFieldTrial() { 277 bool OmniboxFieldTrial::InZeroSuggestAfterTypingFieldTrial() {
278 return chrome_variations::GetVariationParamValue( 278 return variations::GetVariationParamValue(
279 kBundledExperimentFieldTrialName, 279 kBundledExperimentFieldTrialName,
280 kZeroSuggestVariantRule) == "AfterTyping"; 280 kZeroSuggestVariantRule) == "AfterTyping";
281 } 281 }
282 282
283 bool OmniboxFieldTrial::InZeroSuggestPersonalizedFieldTrial() { 283 bool OmniboxFieldTrial::InZeroSuggestPersonalizedFieldTrial() {
284 return chrome_variations::GetVariationParamValue( 284 return variations::GetVariationParamValue(
285 kBundledExperimentFieldTrialName, 285 kBundledExperimentFieldTrialName,
286 kZeroSuggestVariantRule) == "Personalized"; 286 kZeroSuggestVariantRule) == "Personalized";
287 } 287 }
288 288
289 bool OmniboxFieldTrial::ShortcutsScoringMaxRelevance( 289 bool OmniboxFieldTrial::ShortcutsScoringMaxRelevance(
290 OmniboxEventProto::PageClassification current_page_classification, 290 OmniboxEventProto::PageClassification current_page_classification,
291 int* max_relevance) { 291 int* max_relevance) {
292 // The value of the rule is a string that encodes an integer containing 292 // The value of the rule is a string that encodes an integer containing
293 // the max relevance. 293 // the max relevance.
294 const std::string& max_relevance_str = 294 const std::string& max_relevance_str =
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
346 static_cast<float>(v) / 100.0f; 346 static_cast<float>(v) / 100.0f;
347 } 347 }
348 } 348 }
349 } 349 }
350 350
351 void OmniboxFieldTrial::GetExperimentalHUPScoringParams( 351 void OmniboxFieldTrial::GetExperimentalHUPScoringParams(
352 HUPScoringParams* scoring_params) { 352 HUPScoringParams* scoring_params) {
353 scoring_params->experimental_scoring_enabled = false; 353 scoring_params->experimental_scoring_enabled = false;
354 354
355 VariationParams params; 355 VariationParams params;
356 if (!chrome_variations::GetVariationParams(kBundledExperimentFieldTrialName, 356 if (!variations::GetVariationParams(kBundledExperimentFieldTrialName,
357 &params)) 357 &params))
358 return; 358 return;
359 359
360 VariationParams::const_iterator it = params.find(kHUPNewScoringEnabledParam); 360 VariationParams::const_iterator it = params.find(kHUPNewScoringEnabledParam);
361 if (it != params.end()) { 361 if (it != params.end()) {
362 int enabled = 0; 362 int enabled = 0;
363 if (base::StringToInt(it->second, &enabled)) 363 if (base::StringToInt(it->second, &enabled))
364 scoring_params->experimental_scoring_enabled = (enabled != 0); 364 scoring_params->experimental_scoring_enabled = (enabled != 0);
365 } 365 }
366 366
367 InitializeScoreBuckets(params, kHUPNewScoringTypedCountRelevanceCapParam, 367 InitializeScoreBuckets(params, kHUPNewScoringTypedCountRelevanceCapParam,
368 kHUPNewScoringTypedCountHalfLifeTimeParam, 368 kHUPNewScoringTypedCountHalfLifeTimeParam,
369 kHUPNewScoringTypedCountScoreBucketsParam, 369 kHUPNewScoringTypedCountScoreBucketsParam,
370 &scoring_params->typed_count_buckets); 370 &scoring_params->typed_count_buckets);
371 InitializeScoreBuckets(params, kHUPNewScoringVisitedCountRelevanceCapParam, 371 InitializeScoreBuckets(params, kHUPNewScoringVisitedCountRelevanceCapParam,
372 kHUPNewScoringVisitedCountHalfLifeTimeParam, 372 kHUPNewScoringVisitedCountHalfLifeTimeParam,
373 kHUPNewScoringVisitedCountScoreBucketsParam, 373 kHUPNewScoringVisitedCountScoreBucketsParam,
374 &scoring_params->visited_count_buckets); 374 &scoring_params->visited_count_buckets);
375 } 375 }
376 376
377 int OmniboxFieldTrial::HQPBookmarkValue() { 377 int OmniboxFieldTrial::HQPBookmarkValue() {
378 std::string bookmark_value_str = chrome_variations:: 378 std::string bookmark_value_str =
379 GetVariationParamValue(kBundledExperimentFieldTrialName, 379 variations::GetVariationParamValue(kBundledExperimentFieldTrialName,
380 kHQPBookmarkValueRule); 380 kHQPBookmarkValueRule);
381 if (bookmark_value_str.empty()) 381 if (bookmark_value_str.empty())
382 return 10; 382 return 10;
383 // This is a best-effort conversion; we trust the hand-crafted parameters 383 // This is a best-effort conversion; we trust the hand-crafted parameters
384 // downloaded from the server to be perfect. There's no need for handle 384 // downloaded from the server to be perfect. There's no need for handle
385 // errors smartly. 385 // errors smartly.
386 int bookmark_value; 386 int bookmark_value;
387 base::StringToInt(bookmark_value_str, &bookmark_value); 387 base::StringToInt(bookmark_value_str, &bookmark_value);
388 return bookmark_value; 388 return bookmark_value;
389 } 389 }
390 390
391 bool OmniboxFieldTrial::HQPAllowMatchInTLDValue() { 391 bool OmniboxFieldTrial::HQPAllowMatchInTLDValue() {
392 return chrome_variations::GetVariationParamValue( 392 return variations::GetVariationParamValue(
393 kBundledExperimentFieldTrialName, 393 kBundledExperimentFieldTrialName,
394 kHQPAllowMatchInTLDRule) == "true"; 394 kHQPAllowMatchInTLDRule) == "true";
395 } 395 }
396 396
397 bool OmniboxFieldTrial::HQPAllowMatchInSchemeValue() { 397 bool OmniboxFieldTrial::HQPAllowMatchInSchemeValue() {
398 return chrome_variations::GetVariationParamValue( 398 return variations::GetVariationParamValue(
399 kBundledExperimentFieldTrialName, 399 kBundledExperimentFieldTrialName,
400 kHQPAllowMatchInSchemeRule) == "true"; 400 kHQPAllowMatchInSchemeRule) == "true";
401 } 401 }
402 402
403 bool OmniboxFieldTrial::BookmarksIndexURLsValue() { 403 bool OmniboxFieldTrial::BookmarksIndexURLsValue() {
404 return chrome_variations::GetVariationParamValue( 404 return variations::GetVariationParamValue(
405 kBundledExperimentFieldTrialName, 405 kBundledExperimentFieldTrialName,
406 kBookmarksIndexURLsRule) == "true"; 406 kBookmarksIndexURLsRule) == "true";
407 } 407 }
408 408
409 bool OmniboxFieldTrial::DisableInlining() { 409 bool OmniboxFieldTrial::DisableInlining() {
410 return chrome_variations::GetVariationParamValue( 410 return variations::GetVariationParamValue(
411 kBundledExperimentFieldTrialName, 411 kBundledExperimentFieldTrialName,
412 kDisableInliningRule) == "true"; 412 kDisableInliningRule) == "true";
413 } 413 }
414 414
415 bool OmniboxFieldTrial::EnableAnswersInSuggest() { 415 bool OmniboxFieldTrial::EnableAnswersInSuggest() {
416 const CommandLine* cl = CommandLine::ForCurrentProcess(); 416 const CommandLine* cl = CommandLine::ForCurrentProcess();
417 if (cl->HasSwitch(switches::kDisableAnswersInSuggest)) 417 if (cl->HasSwitch(switches::kDisableAnswersInSuggest))
418 return false; 418 return false;
419 if (cl->HasSwitch(switches::kEnableAnswersInSuggest)) 419 if (cl->HasSwitch(switches::kEnableAnswersInSuggest))
420 return true; 420 return true;
421 421
422 return chrome_variations::GetVariationParamValue( 422 return variations::GetVariationParamValue(
423 kBundledExperimentFieldTrialName, 423 kBundledExperimentFieldTrialName,
424 kAnswersInSuggestRule) == "true"; 424 kAnswersInSuggestRule) == "true";
425 } 425 }
426 426
427 bool OmniboxFieldTrial::AddUWYTMatchEvenIfPromotedURLs() { 427 bool OmniboxFieldTrial::AddUWYTMatchEvenIfPromotedURLs() {
428 return chrome_variations::GetVariationParamValue( 428 return variations::GetVariationParamValue(
429 kBundledExperimentFieldTrialName, 429 kBundledExperimentFieldTrialName,
430 kAddUWYTMatchEvenIfPromotedURLsRule) == "true"; 430 kAddUWYTMatchEvenIfPromotedURLsRule) == "true";
431 } 431 }
432 432
433 bool OmniboxFieldTrial::DisplayHintTextWhenPossible() { 433 bool OmniboxFieldTrial::DisplayHintTextWhenPossible() {
434 return chrome_variations::GetVariationParamValue( 434 return variations::GetVariationParamValue(
435 kBundledExperimentFieldTrialName, 435 kBundledExperimentFieldTrialName,
436 kDisplayHintTextWhenPossibleRule) == "true"; 436 kDisplayHintTextWhenPossibleRule) == "true";
437 } 437 }
438 438
439 const char OmniboxFieldTrial::kBundledExperimentFieldTrialName[] = 439 const char OmniboxFieldTrial::kBundledExperimentFieldTrialName[] =
440 "OmniboxBundledExperimentV1"; 440 "OmniboxBundledExperimentV1";
441 const char OmniboxFieldTrial::kShortcutsScoringMaxRelevanceRule[] = 441 const char OmniboxFieldTrial::kShortcutsScoringMaxRelevanceRule[] =
442 "ShortcutsScoringMaxRelevance"; 442 "ShortcutsScoringMaxRelevance";
443 const char OmniboxFieldTrial::kSearchHistoryRule[] = "SearchHistory"; 443 const char OmniboxFieldTrial::kSearchHistoryRule[] = "SearchHistory";
444 const char OmniboxFieldTrial::kDemoteByTypeRule[] = "DemoteByType"; 444 const char OmniboxFieldTrial::kDemoteByTypeRule[] = "DemoteByType";
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
502 // 502 //
503 // In short, this function tries to find the value associated with key 503 // In short, this function tries to find the value associated with key
504 // |rule|:|page_classification|:|instant_extended|, failing that it looks up 504 // |rule|:|page_classification|:|instant_extended|, failing that it looks up
505 // |rule|:*:|instant_extended|, failing that it looks up 505 // |rule|:*:|instant_extended|, failing that it looks up
506 // |rule|:|page_classification|:*, failing that it looks up |rule|:*:*, 506 // |rule|:|page_classification|:*, failing that it looks up |rule|:*:*,
507 // and failing that it returns the empty string. 507 // and failing that it returns the empty string.
508 std::string OmniboxFieldTrial::GetValueForRuleInContext( 508 std::string OmniboxFieldTrial::GetValueForRuleInContext(
509 const std::string& rule, 509 const std::string& rule,
510 OmniboxEventProto::PageClassification page_classification) { 510 OmniboxEventProto::PageClassification page_classification) {
511 VariationParams params; 511 VariationParams params;
512 if (!chrome_variations::GetVariationParams(kBundledExperimentFieldTrialName, 512 if (!variations::GetVariationParams(kBundledExperimentFieldTrialName,
513 &params)) { 513 &params)) {
514 return std::string(); 514 return std::string();
515 } 515 }
516 const std::string page_classification_str = 516 const std::string page_classification_str =
517 base::IntToString(static_cast<int>(page_classification)); 517 base::IntToString(static_cast<int>(page_classification));
518 const std::string instant_extended = 518 const std::string instant_extended =
519 chrome::IsInstantExtendedAPIEnabled() ? "1" : "0"; 519 chrome::IsInstantExtendedAPIEnabled() ? "1" : "0";
520 // Look up rule in this exact context. 520 // Look up rule in this exact context.
521 VariationParams::const_iterator it = params.find( 521 VariationParams::const_iterator it = params.find(
522 rule + ":" + page_classification_str + ":" + instant_extended); 522 rule + ":" + page_classification_str + ":" + instant_extended);
523 if (it != params.end()) 523 if (it != params.end())
524 return it->second; 524 return it->second;
525 // Fall back to the global page classification context. 525 // Fall back to the global page classification context.
526 it = params.find(rule + ":*:" + instant_extended); 526 it = params.find(rule + ":*:" + instant_extended);
527 if (it != params.end()) 527 if (it != params.end())
528 return it->second; 528 return it->second;
529 // Fall back to the global instant extended context. 529 // Fall back to the global instant extended context.
530 it = params.find(rule + ":" + page_classification_str + ":*"); 530 it = params.find(rule + ":" + page_classification_str + ":*");
531 if (it != params.end()) 531 if (it != params.end())
532 return it->second; 532 return it->second;
533 // Look up rule in the global context. 533 // Look up rule in the global context.
534 it = params.find(rule + ":*:*"); 534 it = params.find(rule + ":*:*");
535 return (it != params.end()) ? it->second : std::string(); 535 return (it != params.end()) ? it->second : std::string();
536 } 536 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698