OLD | NEW |
---|---|
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "components/omnibox/browser/omnibox_field_trial.h" | 5 #include "components/omnibox/browser/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 513 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
524 if (value_str.empty()) | 524 if (value_str.empty()) |
525 return EMPHASIZE_NEVER; | 525 return EMPHASIZE_NEVER; |
526 // This is a best-effort conversion; we trust the hand-crafted parameters | 526 // This is a best-effort conversion; we trust the hand-crafted parameters |
527 // downloaded from the server to be perfect. There's no need for handle | 527 // downloaded from the server to be perfect. There's no need for handle |
528 // errors smartly. | 528 // errors smartly. |
529 int value; | 529 int value; |
530 base::StringToInt(value_str, &value); | 530 base::StringToInt(value_str, &value); |
531 return static_cast<EmphasizeTitlesCondition>(value); | 531 return static_cast<EmphasizeTitlesCondition>(value); |
532 } | 532 } |
533 | 533 |
534 // static | |
535 bool OmniboxFieldTrial::InPhysicalWebZeroSuggestFieldTrial() { | |
536 return variations::GetVariationParamValue( | |
537 kBundledExperimentFieldTrialName, | |
538 kPhysicalWebZeroSuggestRule) == "true"; | |
539 } | |
540 | |
541 // static | |
542 bool OmniboxFieldTrial::InPhysicalWebAfterTypingFieldTrial() { | |
543 return variations::GetVariationParamValue( | |
544 kBundledExperimentFieldTrialName, | |
545 kPhysicalWebAfterTypingRule) == "true"; | |
546 } | |
547 | |
548 // static | |
549 int OmniboxFieldTrial::GetPhysicalWebZeroSuggestBaseRelevance() { | |
550 std::string param_value(variations::GetVariationParamValue( | |
551 kBundledExperimentFieldTrialName, | |
552 kPhysicalWebZeroSuggestBaseRelevanceParam)); | |
553 int base_relevance; | |
554 if (!param_value.empty() && base::StringToInt(param_value, &base_relevance)) { | |
Mark P
2016/12/22 04:58:16
nit: {} not needed
ditto below
mattreynolds
2017/01/04 01:04:03
Done.
| |
555 return base_relevance; | |
556 } | |
557 // Default relevance score of the first Physical Web URL autocomplete match | |
558 // when the user has not typed in the omnibox. This score is intended to be | |
559 // between ClipboardURLProvider and ZeroSuggestProvider. | |
560 return 700; | |
561 } | |
562 | |
563 // static | |
564 int OmniboxFieldTrial::GetPhysicalWebAfterTypingBaseRelevance() { | |
565 std::string param_value(variations::GetVariationParamValue( | |
566 kBundledExperimentFieldTrialName, | |
567 kPhysicalWebAfterTypingBaseRelevanceParam)); | |
568 int base_relevance; | |
569 if (!param_value.empty() && base::StringToInt(param_value, &base_relevance)) { | |
570 return base_relevance; | |
571 } | |
572 // Default relevance score of the first Physical Web URL autocomplete match | |
573 // when the user typed a query in the omnibox. | |
Mark P
2016/12/22 04:58:16
nit: typed -> has typed
or perhaps
is typing
also
mattreynolds
2017/01/04 01:04:03
Done.
| |
574 return 700; | |
575 } | |
576 | |
534 const char OmniboxFieldTrial::kBundledExperimentFieldTrialName[] = | 577 const char OmniboxFieldTrial::kBundledExperimentFieldTrialName[] = |
535 "OmniboxBundledExperimentV1"; | 578 "OmniboxBundledExperimentV1"; |
536 const char OmniboxFieldTrial::kDisableProvidersRule[] = "DisableProviders"; | 579 const char OmniboxFieldTrial::kDisableProvidersRule[] = "DisableProviders"; |
537 const char OmniboxFieldTrial::kShortcutsScoringMaxRelevanceRule[] = | 580 const char OmniboxFieldTrial::kShortcutsScoringMaxRelevanceRule[] = |
538 "ShortcutsScoringMaxRelevance"; | 581 "ShortcutsScoringMaxRelevance"; |
539 const char OmniboxFieldTrial::kSearchHistoryRule[] = "SearchHistory"; | 582 const char OmniboxFieldTrial::kSearchHistoryRule[] = "SearchHistory"; |
540 const char OmniboxFieldTrial::kDemoteByTypeRule[] = "DemoteByType"; | 583 const char OmniboxFieldTrial::kDemoteByTypeRule[] = "DemoteByType"; |
541 const char OmniboxFieldTrial::kHQPBookmarkValueRule[] = | 584 const char OmniboxFieldTrial::kHQPBookmarkValueRule[] = |
542 "HQPBookmarkValue"; | 585 "HQPBookmarkValue"; |
543 const char OmniboxFieldTrial::kHQPTypedValueRule[] = "HQPTypedValue"; | 586 const char OmniboxFieldTrial::kHQPTypedValueRule[] = "HQPTypedValue"; |
(...skipping 21 matching lines...) Expand all Loading... | |
565 "HQPAlsoDoHUPLikeScoring"; | 608 "HQPAlsoDoHUPLikeScoring"; |
566 const char OmniboxFieldTrial::kHUPSearchDatabaseRule[] = | 609 const char OmniboxFieldTrial::kHUPSearchDatabaseRule[] = |
567 "HUPSearchDatabase"; | 610 "HUPSearchDatabase"; |
568 const char OmniboxFieldTrial::kKeywordRequiresRegistryRule[] = | 611 const char OmniboxFieldTrial::kKeywordRequiresRegistryRule[] = |
569 "KeywordRequiresRegistry"; | 612 "KeywordRequiresRegistry"; |
570 const char OmniboxFieldTrial::kKeywordRequiresPrefixMatchRule[] = | 613 const char OmniboxFieldTrial::kKeywordRequiresPrefixMatchRule[] = |
571 "KeywordRequiresPrefixMatch"; | 614 "KeywordRequiresPrefixMatch"; |
572 const char OmniboxFieldTrial::kKeywordScoreForSufficientlyCompleteMatchRule[] = | 615 const char OmniboxFieldTrial::kKeywordScoreForSufficientlyCompleteMatchRule[] = |
573 "KeywordScoreForSufficientlyCompleteMatch"; | 616 "KeywordScoreForSufficientlyCompleteMatch"; |
574 const char OmniboxFieldTrial::kEmphasizeTitlesRule[] = "EmphasizeTitles"; | 617 const char OmniboxFieldTrial::kEmphasizeTitlesRule[] = "EmphasizeTitles"; |
618 const char OmniboxFieldTrial::kPhysicalWebZeroSuggestRule[] = | |
619 "PhysicalWebZeroSuggest"; | |
620 const char OmniboxFieldTrial::kPhysicalWebAfterTypingRule[] = | |
621 "PhysicalWebAfterTyping"; | |
575 | 622 |
576 const char OmniboxFieldTrial::kHUPNewScoringEnabledParam[] = | 623 const char OmniboxFieldTrial::kHUPNewScoringEnabledParam[] = |
577 "HUPExperimentalScoringEnabled"; | 624 "HUPExperimentalScoringEnabled"; |
578 const char OmniboxFieldTrial::kHUPNewScoringTypedCountRelevanceCapParam[] = | 625 const char OmniboxFieldTrial::kHUPNewScoringTypedCountRelevanceCapParam[] = |
579 "TypedCountRelevanceCap"; | 626 "TypedCountRelevanceCap"; |
580 const char OmniboxFieldTrial::kHUPNewScoringTypedCountHalfLifeTimeParam[] = | 627 const char OmniboxFieldTrial::kHUPNewScoringTypedCountHalfLifeTimeParam[] = |
581 "TypedCountHalfLifeTime"; | 628 "TypedCountHalfLifeTime"; |
582 const char OmniboxFieldTrial::kHUPNewScoringTypedCountScoreBucketsParam[] = | 629 const char OmniboxFieldTrial::kHUPNewScoringTypedCountScoreBucketsParam[] = |
583 "TypedCountScoreBuckets"; | 630 "TypedCountScoreBuckets"; |
584 const char OmniboxFieldTrial::kHUPNewScoringTypedCountUseDecayFactorParam[] = | 631 const char OmniboxFieldTrial::kHUPNewScoringTypedCountUseDecayFactorParam[] = |
585 "TypedCountUseDecayFactor"; | 632 "TypedCountUseDecayFactor"; |
586 const char OmniboxFieldTrial::kHUPNewScoringVisitedCountRelevanceCapParam[] = | 633 const char OmniboxFieldTrial::kHUPNewScoringVisitedCountRelevanceCapParam[] = |
587 "VisitedCountRelevanceCap"; | 634 "VisitedCountRelevanceCap"; |
588 const char OmniboxFieldTrial::kHUPNewScoringVisitedCountHalfLifeTimeParam[] = | 635 const char OmniboxFieldTrial::kHUPNewScoringVisitedCountHalfLifeTimeParam[] = |
589 "VisitedCountHalfLifeTime"; | 636 "VisitedCountHalfLifeTime"; |
590 const char OmniboxFieldTrial::kHUPNewScoringVisitedCountScoreBucketsParam[] = | 637 const char OmniboxFieldTrial::kHUPNewScoringVisitedCountScoreBucketsParam[] = |
591 "VisitedCountScoreBuckets"; | 638 "VisitedCountScoreBuckets"; |
592 const char OmniboxFieldTrial::kHUPNewScoringVisitedCountUseDecayFactorParam[] = | 639 const char OmniboxFieldTrial::kHUPNewScoringVisitedCountUseDecayFactorParam[] = |
593 "VisitedCountUseDecayFactor"; | 640 "VisitedCountUseDecayFactor"; |
594 | 641 |
595 const char OmniboxFieldTrial::kHQPExperimentalScoringBucketsParam[] = | 642 const char OmniboxFieldTrial::kHQPExperimentalScoringBucketsParam[] = |
596 "HQPExperimentalScoringBuckets"; | 643 "HQPExperimentalScoringBuckets"; |
597 const char | 644 const char |
598 OmniboxFieldTrial::kHQPExperimentalScoringTopicalityThresholdParam[] = | 645 OmniboxFieldTrial::kHQPExperimentalScoringTopicalityThresholdParam[] = |
599 "HQPExperimentalScoringTopicalityThreshold"; | 646 "HQPExperimentalScoringTopicalityThreshold"; |
600 | 647 |
648 const char OmniboxFieldTrial::kPhysicalWebExperimentalScoringParam[] = | |
649 "PhysicalWebExperimentalScoring"; | |
650 const char OmniboxFieldTrial::kPhysicalWebZeroSuggestBaseRelevanceParam[] = | |
651 "PhysicalWebZeroSuggestBaseRelevance"; | |
652 const char OmniboxFieldTrial::kPhysicalWebAfterTypingBaseRelevanceParam[] = | |
653 "PhysicalWebAfterTypingBaseRelevanceParam"; | |
654 | |
601 // static | 655 // static |
602 int OmniboxFieldTrial::kDefaultMinimumTimeBetweenSuggestQueriesMs = 100; | 656 int OmniboxFieldTrial::kDefaultMinimumTimeBetweenSuggestQueriesMs = 100; |
603 | 657 |
604 // Background and implementation details: | 658 // Background and implementation details: |
605 // | 659 // |
606 // Each experiment group in any field trial can come with an optional set of | 660 // Each experiment group in any field trial can come with an optional set of |
607 // parameters (key-value pairs). In the bundled omnibox experiment | 661 // parameters (key-value pairs). In the bundled omnibox experiment |
608 // (kBundledExperimentFieldTrialName), each experiment group comes with a | 662 // (kBundledExperimentFieldTrialName), each experiment group comes with a |
609 // list of parameters in the form: | 663 // list of parameters in the form: |
610 // key=<Rule>: | 664 // key=<Rule>: |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
656 if (it != params.end()) | 710 if (it != params.end()) |
657 return it->second; | 711 return it->second; |
658 // Fall back to the global instant extended context. | 712 // Fall back to the global instant extended context. |
659 it = params.find(rule + ":" + page_classification_str + ":*"); | 713 it = params.find(rule + ":" + page_classification_str + ":*"); |
660 if (it != params.end()) | 714 if (it != params.end()) |
661 return it->second; | 715 return it->second; |
662 // Look up rule in the global context. | 716 // Look up rule in the global context. |
663 it = params.find(rule + ":*:*"); | 717 it = params.find(rule + ":*:*"); |
664 return (it != params.end()) ? it->second : std::string(); | 718 return (it != params.end()) ? it->second : std::string(); |
665 } | 719 } |
OLD | NEW |