| 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 505 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 516 // This is a best-effort conversion; we trust the hand-crafted parameters | 516 // This is a best-effort conversion; we trust the hand-crafted parameters |
| 517 // downloaded from the server to be perfect. There's no need for handle | 517 // downloaded from the server to be perfect. There's no need for handle |
| 518 // errors smartly. | 518 // errors smartly. |
| 519 int value; | 519 int value; |
| 520 base::StringToInt(value_str, &value); | 520 base::StringToInt(value_str, &value); |
| 521 return value; | 521 return value; |
| 522 } | 522 } |
| 523 | 523 |
| 524 OmniboxFieldTrial::EmphasizeTitlesCondition | 524 OmniboxFieldTrial::EmphasizeTitlesCondition |
| 525 OmniboxFieldTrial::GetEmphasizeTitlesConditionForInput( | 525 OmniboxFieldTrial::GetEmphasizeTitlesConditionForInput( |
| 526 metrics::OmniboxInputType::Type input_type) { | 526 const AutocompleteInput& input) { |
| 527 // Look up the parameter named kEmphasizeTitlesRule + ":" + input_type, | 527 // First, check if we should emphasize titles for zero suggest suggestions. |
| 528 if (input.from_omnibox_focus() && |
| 529 base::FeatureList::IsEnabled(features::kZeroSuggestSwapTitleAndUrl)) { |
| 530 return EMPHASIZE_WHEN_NONEMPTY; |
| 531 } |
| 532 // Look up the parameter named kEmphasizeTitlesRule + ":" + input.type(), |
| 528 // find its value, and return that value as an enum. If the parameter | 533 // find its value, and return that value as an enum. If the parameter |
| 529 // isn't redefined, fall back to the generic rule kEmphasizeTitlesRule + ":*" | 534 // isn't redefined, fall back to the generic rule kEmphasizeTitlesRule + ":*" |
| 530 std::string value_str(variations::GetVariationParamValue( | 535 std::string value_str(variations::GetVariationParamValue( |
| 531 kBundledExperimentFieldTrialName, | 536 kBundledExperimentFieldTrialName, |
| 532 std::string(kEmphasizeTitlesRule) + "_" + | 537 std::string(kEmphasizeTitlesRule) + "_" + |
| 533 base::IntToString(static_cast<int>(input_type)))); | 538 base::IntToString(static_cast<int>(input.type())))); |
| 534 if (value_str.empty()) { | 539 if (value_str.empty()) { |
| 535 value_str = variations::GetVariationParamValue( | 540 value_str = variations::GetVariationParamValue( |
| 536 kBundledExperimentFieldTrialName, | 541 kBundledExperimentFieldTrialName, |
| 537 std::string(kEmphasizeTitlesRule) + "_*"); | 542 std::string(kEmphasizeTitlesRule) + "_*"); |
| 538 } | 543 } |
| 539 if (value_str.empty()) | 544 if (value_str.empty()) |
| 540 return EMPHASIZE_NEVER; | 545 return EMPHASIZE_NEVER; |
| 541 // This is a best-effort conversion; we trust the hand-crafted parameters | 546 // This is a best-effort conversion; we trust the hand-crafted parameters |
| 542 // downloaded from the server to be perfect. There's no need for handle | 547 // downloaded from the server to be perfect. There's no need for handle |
| 543 // errors smartly. | 548 // errors smartly. |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 599 kZeroSuggestRedirectToChromeServerAddressParam); | 604 kZeroSuggestRedirectToChromeServerAddressParam); |
| 600 } | 605 } |
| 601 | 606 |
| 602 // static | 607 // static |
| 603 std::string OmniboxFieldTrial::ZeroSuggestRedirectToChromeAdditionalFields() { | 608 std::string OmniboxFieldTrial::ZeroSuggestRedirectToChromeAdditionalFields() { |
| 604 return base::GetFieldTrialParamValueByFeature( | 609 return base::GetFieldTrialParamValueByFeature( |
| 605 features::kZeroSuggestRedirectToChrome, | 610 features::kZeroSuggestRedirectToChrome, |
| 606 kZeroSuggestRedirectToChromeAdditionalFieldsParam); | 611 kZeroSuggestRedirectToChromeAdditionalFieldsParam); |
| 607 } | 612 } |
| 608 | 613 |
| 614 // static |
| 615 bool OmniboxFieldTrial::InZeroSuggestSwapTitleAndUrlFieldTrial() { |
| 616 return base::FeatureList::IsEnabled(features::kZeroSuggestSwapTitleAndUrl); |
| 617 } |
| 618 |
| 609 const char OmniboxFieldTrial::kBundledExperimentFieldTrialName[] = | 619 const char OmniboxFieldTrial::kBundledExperimentFieldTrialName[] = |
| 610 "OmniboxBundledExperimentV1"; | 620 "OmniboxBundledExperimentV1"; |
| 611 const char OmniboxFieldTrial::kDisableProvidersRule[] = "DisableProviders"; | 621 const char OmniboxFieldTrial::kDisableProvidersRule[] = "DisableProviders"; |
| 612 const char OmniboxFieldTrial::kShortcutsScoringMaxRelevanceRule[] = | 622 const char OmniboxFieldTrial::kShortcutsScoringMaxRelevanceRule[] = |
| 613 "ShortcutsScoringMaxRelevance"; | 623 "ShortcutsScoringMaxRelevance"; |
| 614 const char OmniboxFieldTrial::kSearchHistoryRule[] = "SearchHistory"; | 624 const char OmniboxFieldTrial::kSearchHistoryRule[] = "SearchHistory"; |
| 615 const char OmniboxFieldTrial::kDemoteByTypeRule[] = "DemoteByType"; | 625 const char OmniboxFieldTrial::kDemoteByTypeRule[] = "DemoteByType"; |
| 616 const char OmniboxFieldTrial::kHQPBookmarkValueRule[] = | 626 const char OmniboxFieldTrial::kHQPBookmarkValueRule[] = |
| 617 "HQPBookmarkValue"; | 627 "HQPBookmarkValue"; |
| 618 const char OmniboxFieldTrial::kHQPTypedValueRule[] = "HQPTypedValue"; | 628 const char OmniboxFieldTrial::kHQPTypedValueRule[] = "HQPTypedValue"; |
| (...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 746 if (it != params.end()) | 756 if (it != params.end()) |
| 747 return it->second; | 757 return it->second; |
| 748 // Fall back to the global instant extended context. | 758 // Fall back to the global instant extended context. |
| 749 it = params.find(rule + ":" + page_classification_str + ":*"); | 759 it = params.find(rule + ":" + page_classification_str + ":*"); |
| 750 if (it != params.end()) | 760 if (it != params.end()) |
| 751 return it->second; | 761 return it->second; |
| 752 // Look up rule in the global context. | 762 // Look up rule in the global context. |
| 753 it = params.find(rule + ":*:*"); | 763 it = params.find(rule + ":*:*"); |
| 754 return (it != params.end()) ? it->second : std::string(); | 764 return (it != params.end()) ? it->second : std::string(); |
| 755 } | 765 } |
| OLD | NEW |