blob: 7ccc7814d4559e806d3c8c11154ed122a3ca8f16 [file] [log] [blame]
Avi Drissman8ba1bad2022-09-13 19:22:361// Copyright 2020 The Chromium Authors
Ehimare Okoyomon2eccb6072020-05-12 12:22:272// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
Olesia Marukhno46ccd432021-12-03 08:50:275#include "components/page_info/core/features.h"
Ehimare Okoyomon2eccb6072020-05-12 12:22:276
Christian Dullweber48eacbd2024-01-29 10:11:377#include <string_view>
Nicola Tommasic8d73c442024-11-25 11:36:358
Christian Dullweber94b26012023-03-16 10:52:249#include "base/containers/contains.h"
Christian Dullweber48eacbd2024-01-29 10:11:3710#include "base/containers/fixed_flat_set.h"
Ehimare Okoyomon2eccb6072020-05-12 12:22:2711#include "base/feature_list.h"
12#include "base/metrics/field_trial_params.h"
Nicola Tommasi376f9b32024-12-04 08:08:1113#include "base/strings/string_util.h"
Xiaohan Wangd9e3b1f02022-01-14 14:48:3514#include "build/build_config.h"
Christian Dullweber329dad32022-04-20 17:45:3815#include "ui/base/l10n/l10n_util.h"
Ehimare Okoyomon2eccb6072020-05-12 12:22:2716
17namespace page_info {
Christian Dullweber48eacbd2024-01-29 10:11:3718constexpr auto kDefaultLangs = base::MakeFixedFlatSet<std::string_view>({
19 "ar", "bg", "ca", "cs", "da", "de", "el", "en", "es", "et",
20 "fi", "fr", "he", "hi", "hr", "hu", "id", "it", "ja", "ko",
21 "lt", "lv", "nb", "nl", "pl", "pt", "ro", "ru", "sk", "sl",
22 "sr", "sv", "sw", "th", "tr", "uk", "vi", "zh",
23});
Christian Dullweber94b26012023-03-16 10:52:2424
Christian Dullweber329dad32022-04-20 17:45:3825extern bool IsAboutThisSiteFeatureEnabled(const std::string& locale) {
Christian Dullweber94b26012023-03-16 10:52:2426 std::string lang = l10n_util::GetLanguage(locale);
Christian Dullweber48eacbd2024-01-29 10:11:3727 if (base::Contains(kDefaultLangs, lang)) {
Christian Dullweber686e52c2023-06-15 08:52:1828 return base::FeatureList::IsEnabled(kPageInfoAboutThisSite);
Christian Dullweber329dad32022-04-20 17:45:3829 }
Christian Dullweber686e52c2023-06-15 08:52:1830 return base::FeatureList::IsEnabled(kPageInfoAboutThisSiteMoreLangs);
Christian Dullweber329dad32022-04-20 17:45:3831}
Olesia Marukhno0fc754b2021-09-17 15:05:0632
Christian Dullweber686e52c2023-06-15 08:52:1833BASE_FEATURE(kPageInfoAboutThisSite,
34 "PageInfoAboutThisSite",
Nicola Tommasic8d73c442024-11-25 11:36:3535 base::FEATURE_ENABLED_BY_DEFAULT);
Christian Dullweber686e52c2023-06-15 08:52:1836BASE_FEATURE(kPageInfoAboutThisSiteMoreLangs,
37 "PageInfoAboutThisSiteMoreLangs",
Daniel Chengd2879972022-09-26 09:12:2038 base::FEATURE_DISABLED_BY_DEFAULT);
Christian Dullweber329dad32022-04-20 17:45:3839
Christian Dullweber686e52c2023-06-15 08:52:1840const base::FeatureParam<bool> kShowSampleContent{&kPageInfoAboutThisSite,
Christian Dullweber8303ced2022-01-28 13:53:2241 "ShowSampleContent", false};
Christian Dullweberd933ad52021-10-28 09:31:2342
Xiaohan Wangd9e3b1f02022-01-14 14:48:3543#if !BUILDFLAG(IS_ANDROID)
Daniel Chengd2879972022-09-26 09:12:2044BASE_FEATURE(kPageInfoHistoryDesktop,
45 "PageInfoHistoryDesktop",
46 base::FEATURE_DISABLED_BY_DEFAULT);
Zofia Salata1f9c6ae2022-07-21 16:23:3147
Daniel Chengd2879972022-09-26 09:12:2048BASE_FEATURE(kPageInfoHideSiteSettings,
49 "PageInfoHideSiteSettings",
50 base::FEATURE_DISABLED_BY_DEFAULT);
Zofia Salata2a841f52022-07-27 10:55:1051
Nicola Tommasic8d73c442024-11-25 11:36:3552#endif // !BUILDFLAG(IS_ANDROID)
53
54BASE_FEATURE(kMerchantTrust,
55 "MerchantTrust",
56 base::FEATURE_DISABLED_BY_DEFAULT);
57
58const char kMerchantTrustEnabledWithSampleDataName[] =
59 "enabled-with-sample-data";
60const base::FeatureParam<bool> kMerchantTrustEnabledWithSampleData{
61 &kMerchantTrust, kMerchantTrustEnabledWithSampleDataName, false};
62
Nicola Tommasi376f9b32024-12-04 08:08:1163const char kMerchantTrustEnabledForCountry[] = "us";
64const char kMerchantTrustEnabledForLocale[] = "en-us";
65
66const char kMerchantTrustForceShowUIForTestingName[] =
67 "force-show-ui-for-testing";
68const base::FeatureParam<bool> kMerchantTrustForceShowUIForTesting{
69 &kMerchantTrust, kMerchantTrustForceShowUIForTestingName, false};
70
Nicola Tommasibad4c652025-01-22 11:15:3471const char kMerchantTrustEnableOmniboxChipName[] = "enable-omnibox-chip";
72const base::FeatureParam<bool> kMerchantTrustEnableOmniboxChip{
73 &kMerchantTrust, kMerchantTrustEnableOmniboxChipName, false};
74
Nicola Tommasia3b08332025-02-28 12:57:4275const char kMerchantTrustWithoutSummaryName[] = "enable-without-summary";
76const base::FeatureParam<bool> kMerchantTrustWithoutSummary{
77 &kMerchantTrust, kMerchantTrustWithoutSummaryName, true};
78
79bool IsMerchantTrustWithoutSummaryEnabled() {
80 return base::GetFieldTrialParamByFeatureAsBool(
81 kMerchantTrust, kMerchantTrustWithoutSummaryName, true);
82}
83
Nicola Tommasi376f9b32024-12-04 08:08:1184extern bool IsMerchantTrustFeatureEnabled(const std::string& country_code,
85 const std::string& locale) {
86 if (kMerchantTrustForceShowUIForTesting.Get()) {
87 return true;
88 }
89
90 return base::FeatureList::IsEnabled(kMerchantTrust) &&
91 base::ToLowerASCII(country_code) == kMerchantTrustEnabledForCountry &&
92 base::ToLowerASCII(locale) == kMerchantTrustEnabledForLocale;
93}
Olesia Marukhno72f47472021-12-13 16:53:3794
Olesia Marukhno3bb73c982025-01-22 22:30:3895BASE_FEATURE(kMerchantTrustEvaluationControlSurvey,
96 "MerchantTrustEvaluationControlSurvey",
97 base::FEATURE_DISABLED_BY_DEFAULT);
98
Olesia Marukhnob924ba92025-01-27 15:43:1399const base::FeatureParam<base::TimeDelta>
100 kMerchantTrustEvaluationControlMinTimeToShowSurvey{
101 &kMerchantTrustEvaluationControlSurvey, "MinTimeToShowSurvey",
102 base::Minutes(2)};
103
104const base::FeatureParam<base::TimeDelta>
105 kMerchantTrustEvaluationControlMaxTimeToShowSurvey{
106 &kMerchantTrustEvaluationControlSurvey, "MaxTimeToShowSurvey",
107 base::Minutes(60)};
108
Olesia Marukhno3bb73c982025-01-22 22:30:38109BASE_FEATURE(kMerchantTrustEvaluationExperimentSurvey,
110 "MerchantTrustEvaluationExperimentSurvey",
111 base::FEATURE_DISABLED_BY_DEFAULT);
112
Olesia Marukhnob924ba92025-01-27 15:43:13113const base::FeatureParam<base::TimeDelta>
114 kMerchantTrustEvaluationExperimentMinTimeToShowSurvey{
115 &kMerchantTrustEvaluationExperimentSurvey, "MinTimeToShowSurvey",
116 base::Minutes(2)};
117
118const base::FeatureParam<base::TimeDelta>
119 kMerchantTrustEvaluationExperimentMaxTimeToShowSurvey{
120 &kMerchantTrustEvaluationExperimentSurvey, "MaxTimeToShowSurvey",
121 base::Minutes(60)};
122
123const base::FeatureParam<base::TimeDelta>
124 kMerchantTrustRequiredInteractionDuration{
125 &kMerchantTrustEvaluationExperimentSurvey,
126 "RequiredInteractionDuration", base::Seconds(5)};
127
Olesia Marukhno9b9c8f2d2025-01-29 12:19:50128BASE_FEATURE(kMerchantTrustLearnSurvey,
129 "MerchantTrustLearnSurvey",
130 base::FEATURE_DISABLED_BY_DEFAULT);
131
Nicola Tommasi931805622025-02-11 17:30:24132const base::FeatureParam<std::string> kMerchantTrustLearnSurveyTriggerId{
133 &kMerchantTrustLearnSurvey, "trigger_id", "EA14LFXPG0ugnJ3q1cK0Y6Gtj3De"};
134
135extern const base::FeatureParam<double> kMerchantTrustLearnSurveyProbability{
136 &kMerchantTrustLearnSurvey, "probability", 1.0};
137
138extern const base::FeatureParam<bool> kMerchantTrustLearnSurveyUserPrompted{
139 &kMerchantTrustLearnSurvey, "user_prompted", true};
140
Olesia Marukhno4d09c9072021-04-08 09:43:23141} // namespace page_info