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 |