blob: 69018ff0d458efa10b410a49c2b404e36a4fcf6f [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 Tommasi376f9b32024-12-04 08:08:1175extern bool IsMerchantTrustFeatureEnabled(const std::string& country_code,
76 const std::string& locale) {
77 if (kMerchantTrustForceShowUIForTesting.Get()) {
78 return true;
79 }
80
81 return base::FeatureList::IsEnabled(kMerchantTrust) &&
82 base::ToLowerASCII(country_code) == kMerchantTrustEnabledForCountry &&
83 base::ToLowerASCII(locale) == kMerchantTrustEnabledForLocale;
84}
Olesia Marukhno72f47472021-12-13 16:53:3785
Olesia Marukhno3bb73c982025-01-22 22:30:3886BASE_FEATURE(kMerchantTrustEvaluationControlSurvey,
87 "MerchantTrustEvaluationControlSurvey",
88 base::FEATURE_DISABLED_BY_DEFAULT);
89
Olesia Marukhnob924ba92025-01-27 15:43:1390const base::FeatureParam<base::TimeDelta>
91 kMerchantTrustEvaluationControlMinTimeToShowSurvey{
92 &kMerchantTrustEvaluationControlSurvey, "MinTimeToShowSurvey",
93 base::Minutes(2)};
94
95const base::FeatureParam<base::TimeDelta>
96 kMerchantTrustEvaluationControlMaxTimeToShowSurvey{
97 &kMerchantTrustEvaluationControlSurvey, "MaxTimeToShowSurvey",
98 base::Minutes(60)};
99
Olesia Marukhno3bb73c982025-01-22 22:30:38100BASE_FEATURE(kMerchantTrustEvaluationExperimentSurvey,
101 "MerchantTrustEvaluationExperimentSurvey",
102 base::FEATURE_DISABLED_BY_DEFAULT);
103
Olesia Marukhnob924ba92025-01-27 15:43:13104const base::FeatureParam<base::TimeDelta>
105 kMerchantTrustEvaluationExperimentMinTimeToShowSurvey{
106 &kMerchantTrustEvaluationExperimentSurvey, "MinTimeToShowSurvey",
107 base::Minutes(2)};
108
109const base::FeatureParam<base::TimeDelta>
110 kMerchantTrustEvaluationExperimentMaxTimeToShowSurvey{
111 &kMerchantTrustEvaluationExperimentSurvey, "MaxTimeToShowSurvey",
112 base::Minutes(60)};
113
114const base::FeatureParam<base::TimeDelta>
115 kMerchantTrustRequiredInteractionDuration{
116 &kMerchantTrustEvaluationExperimentSurvey,
117 "RequiredInteractionDuration", base::Seconds(5)};
118
Olesia Marukhno9b9c8f2d2025-01-29 12:19:50119BASE_FEATURE(kMerchantTrustLearnSurvey,
120 "MerchantTrustLearnSurvey",
121 base::FEATURE_DISABLED_BY_DEFAULT);
122
Olesia Marukhno4d09c9072021-04-08 09:43:23123} // namespace page_info