| OLD | NEW |
| 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/metrics/field_trial.h" | 11 #include "base/metrics/field_trial.h" |
| 11 #include "base/strings/string_number_conversions.h" | 12 #include "base/strings/string_number_conversions.h" |
| 12 #include "base/strings/string_split.h" | 13 #include "base/strings/string_split.h" |
| 13 #include "base/strings/string_util.h" | 14 #include "base/strings/string_util.h" |
| 14 #include "base/strings/stringprintf.h" | 15 #include "base/strings/stringprintf.h" |
| 15 #include "base/time/time.h" | 16 #include "base/time/time.h" |
| 16 #include "chrome/browser/autocomplete/autocomplete_input.h" | 17 #include "chrome/browser/autocomplete/autocomplete_input.h" |
| 17 #include "chrome/browser/search/search.h" | 18 #include "chrome/browser/search/search.h" |
| 19 #include "chrome/common/chrome_switches.h" |
| 18 #include "chrome/common/variations/variation_ids.h" | 20 #include "chrome/common/variations/variation_ids.h" |
| 19 #include "components/variations/active_field_trials.h" | 21 #include "components/variations/active_field_trials.h" |
| 20 #include "components/variations/metrics_util.h" | 22 #include "components/variations/metrics_util.h" |
| 21 #include "components/variations/variations_associated_data.h" | 23 #include "components/variations/variations_associated_data.h" |
| 22 | 24 |
| 23 namespace { | 25 namespace { |
| 24 | 26 |
| 25 typedef std::map<std::string, std::string> VariationParams; | 27 typedef std::map<std::string, std::string> VariationParams; |
| 26 typedef HUPScoringParams::ScoreBuckets ScoreBuckets; | 28 typedef HUPScoringParams::ScoreBuckets ScoreBuckets; |
| 27 | 29 |
| (...skipping 396 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 424 kBundledExperimentFieldTrialName, | 426 kBundledExperimentFieldTrialName, |
| 425 kBookmarksIndexURLsRule) == "true"; | 427 kBookmarksIndexURLsRule) == "true"; |
| 426 } | 428 } |
| 427 | 429 |
| 428 bool OmniboxFieldTrial::DisableInlining() { | 430 bool OmniboxFieldTrial::DisableInlining() { |
| 429 return chrome_variations::GetVariationParamValue( | 431 return chrome_variations::GetVariationParamValue( |
| 430 kBundledExperimentFieldTrialName, | 432 kBundledExperimentFieldTrialName, |
| 431 kDisableInliningRule) == "true"; | 433 kDisableInliningRule) == "true"; |
| 432 } | 434 } |
| 433 | 435 |
| 436 bool OmniboxFieldTrial::EnableAnswersInSuggest() { |
| 437 const CommandLine* cl = CommandLine::ForCurrentProcess(); |
| 438 if (cl->HasSwitch(switches::kDisableAnswersInSuggest)) |
| 439 return false; |
| 440 if (cl->HasSwitch(switches::kEnableAnswersInSuggest)) |
| 441 return true; |
| 442 |
| 443 return chrome_variations::GetVariationParamValue( |
| 444 kBundledExperimentFieldTrialName, |
| 445 kAnswersInSuggestRule) == "true"; |
| 446 } |
| 447 |
| 434 const char OmniboxFieldTrial::kBundledExperimentFieldTrialName[] = | 448 const char OmniboxFieldTrial::kBundledExperimentFieldTrialName[] = |
| 435 "OmniboxBundledExperimentV1"; | 449 "OmniboxBundledExperimentV1"; |
| 436 const char OmniboxFieldTrial::kShortcutsScoringMaxRelevanceRule[] = | 450 const char OmniboxFieldTrial::kShortcutsScoringMaxRelevanceRule[] = |
| 437 "ShortcutsScoringMaxRelevance"; | 451 "ShortcutsScoringMaxRelevance"; |
| 438 const char OmniboxFieldTrial::kSearchHistoryRule[] = "SearchHistory"; | 452 const char OmniboxFieldTrial::kSearchHistoryRule[] = "SearchHistory"; |
| 439 const char OmniboxFieldTrial::kDemoteByTypeRule[] = "DemoteByType"; | 453 const char OmniboxFieldTrial::kDemoteByTypeRule[] = "DemoteByType"; |
| 440 const char OmniboxFieldTrial::kHQPBookmarkValueRule[] = | 454 const char OmniboxFieldTrial::kHQPBookmarkValueRule[] = |
| 441 "HQPBookmarkValue"; | 455 "HQPBookmarkValue"; |
| 442 const char OmniboxFieldTrial::kHQPAllowMatchInTLDRule[] = "HQPAllowMatchInTLD"; | 456 const char OmniboxFieldTrial::kHQPAllowMatchInTLDRule[] = "HQPAllowMatchInTLD"; |
| 443 const char OmniboxFieldTrial::kHQPAllowMatchInSchemeRule[] = | 457 const char OmniboxFieldTrial::kHQPAllowMatchInSchemeRule[] = |
| 444 "HQPAllowMatchInScheme"; | 458 "HQPAllowMatchInScheme"; |
| 445 const char OmniboxFieldTrial::kZeroSuggestRule[] = "ZeroSuggest"; | 459 const char OmniboxFieldTrial::kZeroSuggestRule[] = "ZeroSuggest"; |
| 446 const char OmniboxFieldTrial::kZeroSuggestVariantRule[] = "ZeroSuggestVariant"; | 460 const char OmniboxFieldTrial::kZeroSuggestVariantRule[] = "ZeroSuggestVariant"; |
| 447 const char OmniboxFieldTrial::kBookmarksIndexURLsRule[] = "BookmarksIndexURLs"; | 461 const char OmniboxFieldTrial::kBookmarksIndexURLsRule[] = "BookmarksIndexURLs"; |
| 448 const char OmniboxFieldTrial::kDisableInliningRule[] = "DisableInlining"; | 462 const char OmniboxFieldTrial::kDisableInliningRule[] = "DisableInlining"; |
| 463 const char OmniboxFieldTrial::kAnswersInSuggestRule[] = "AnswersInSuggest"; |
| 449 | 464 |
| 450 const char OmniboxFieldTrial::kHUPNewScoringEnabledParam[] = | 465 const char OmniboxFieldTrial::kHUPNewScoringEnabledParam[] = |
| 451 "HUPExperimentalScoringEnabled"; | 466 "HUPExperimentalScoringEnabled"; |
| 452 const char OmniboxFieldTrial::kHUPNewScoringTypedCountRelevanceCapParam[] = | 467 const char OmniboxFieldTrial::kHUPNewScoringTypedCountRelevanceCapParam[] = |
| 453 "TypedCountRelevanceCap"; | 468 "TypedCountRelevanceCap"; |
| 454 const char OmniboxFieldTrial::kHUPNewScoringTypedCountHalfLifeTimeParam[] = | 469 const char OmniboxFieldTrial::kHUPNewScoringTypedCountHalfLifeTimeParam[] = |
| 455 "TypedCountHalfLifeTime"; | 470 "TypedCountHalfLifeTime"; |
| 456 const char OmniboxFieldTrial::kHUPNewScoringTypedCountScoreBucketsParam[] = | 471 const char OmniboxFieldTrial::kHUPNewScoringTypedCountScoreBucketsParam[] = |
| 457 "TypedCountScoreBuckets"; | 472 "TypedCountScoreBuckets"; |
| 458 const char OmniboxFieldTrial::kHUPNewScoringVisitedCountRelevanceCapParam[] = | 473 const char OmniboxFieldTrial::kHUPNewScoringVisitedCountRelevanceCapParam[] = |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 517 if (it != params.end()) | 532 if (it != params.end()) |
| 518 return it->second; | 533 return it->second; |
| 519 // Fall back to the global instant extended context. | 534 // Fall back to the global instant extended context. |
| 520 it = params.find(rule + ":" + page_classification_str + ":*"); | 535 it = params.find(rule + ":" + page_classification_str + ":*"); |
| 521 if (it != params.end()) | 536 if (it != params.end()) |
| 522 return it->second; | 537 return it->second; |
| 523 // Look up rule in the global context. | 538 // Look up rule in the global context. |
| 524 it = params.find(rule + ":*:*"); | 539 it = params.find(rule + ":*:*"); |
| 525 return (it != params.end()) ? it->second : std::string(); | 540 return (it != params.end()) ? it->second : std::string(); |
| 526 } | 541 } |
| OLD | NEW |