| // Copyright 2019 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "chrome/browser/permissions/quiet_notification_permission_ui_config.h" |
| |
| #include "base/metrics/field_trial_params.h" |
| #include "chrome/common/chrome_features.h" |
| |
| // static |
| const char QuietNotificationPermissionUiConfig::kEnableAdaptiveActivation[] = |
| "enable_adaptive_activation"; |
| |
| // static |
| const char |
| QuietNotificationPermissionUiConfig::kEnableAdaptiveActivationDryRun[] = |
| "enable_adaptive_activation_dry_run"; |
| |
| // static |
| const char QuietNotificationPermissionUiConfig:: |
| kAdaptiveActivationActionWindowSizeInDays[] = |
| "adaptive_activation_windows_size_in_days"; |
| |
| // static |
| const char QuietNotificationPermissionUiConfig::kEnableCrowdDenyTriggering[] = |
| "enable_crowd_deny_triggering"; |
| |
| // static |
| const char QuietNotificationPermissionUiConfig::kCrowdDenyHoldBackChance[] = |
| "crowd_deny_hold_back_chance"; |
| |
| // static |
| const char |
| QuietNotificationPermissionUiConfig::kEnableAbusiveRequestBlocking[] = |
| "enable_abusive_request_triggering"; |
| |
| // static |
| const char QuietNotificationPermissionUiConfig::kEnableAbusiveRequestWarning[] = |
| "enable_abusive_request_warning"; |
| |
| // static |
| const char QuietNotificationPermissionUiConfig:: |
| kEnableAbusiveContentTriggeredRequestBlocking[] = |
| "enable_abusive_content_triggering"; |
| |
| // static |
| const char QuietNotificationPermissionUiConfig:: |
| kEnableAbusiveContentTriggeredRequestWarning[] = |
| "enable_abusive_content_warning"; |
| |
| // static |
| const char QuietNotificationPermissionUiConfig::kMiniInfobarExpandLinkText[] = |
| "mini_infobar_expand_link_text"; |
| |
| // static |
| bool QuietNotificationPermissionUiConfig::IsAdaptiveActivationEnabled() { |
| if (!base::FeatureList::IsEnabled(features::kQuietNotificationPrompts)) |
| return false; |
| |
| return base::GetFieldTrialParamByFeatureAsBool( |
| features::kQuietNotificationPrompts, kEnableAdaptiveActivation, |
| false /* default */); |
| } |
| |
| // static |
| bool QuietNotificationPermissionUiConfig::IsAdaptiveActivationDryRunEnabled() { |
| if (!base::FeatureList::IsEnabled(features::kQuietNotificationPrompts)) |
| return false; |
| |
| return base::GetFieldTrialParamByFeatureAsBool( |
| features::kQuietNotificationPrompts, kEnableAdaptiveActivationDryRun, |
| false /* default */); |
| } |
| |
| // static |
| base::TimeDelta |
| QuietNotificationPermissionUiConfig::GetAdaptiveActivationWindowSize() { |
| if (!base::FeatureList::IsEnabled(features::kQuietNotificationPrompts)) |
| return base::Days(90); |
| |
| return base::Days(base::GetFieldTrialParamByFeatureAsInt( |
| features::kQuietNotificationPrompts, |
| kAdaptiveActivationActionWindowSizeInDays, 90 /* default */)); |
| } |
| |
| // static |
| bool QuietNotificationPermissionUiConfig::IsCrowdDenyTriggeringEnabled() { |
| if (!base::FeatureList::IsEnabled(features::kQuietNotificationPrompts)) |
| return false; |
| |
| return base::GetFieldTrialParamByFeatureAsBool( |
| features::kQuietNotificationPrompts, kEnableCrowdDenyTriggering, |
| true /* default */); |
| } |
| |
| // static |
| double QuietNotificationPermissionUiConfig::GetCrowdDenyHoldBackChance() { |
| return base::GetFieldTrialParamByFeatureAsDouble( |
| features::kQuietNotificationPrompts, kCrowdDenyHoldBackChance, 0.3); |
| } |
| |
| // static |
| QuietNotificationPermissionUiConfig::InfobarLinkTextVariation |
| QuietNotificationPermissionUiConfig::GetMiniInfobarExpandLinkText() { |
| return base::GetFieldTrialParamByFeatureAsInt( |
| features::kQuietNotificationPrompts, kMiniInfobarExpandLinkText, 0) |
| ? InfobarLinkTextVariation::kManage |
| : InfobarLinkTextVariation::kDetails; |
| } |
| |
| // static |
| bool QuietNotificationPermissionUiConfig::IsAbusiveRequestBlockingEnabled() { |
| if (!base::FeatureList::IsEnabled(features::kQuietNotificationPrompts)) |
| return false; |
| |
| return base::GetFieldTrialParamByFeatureAsBool( |
| features::kQuietNotificationPrompts, kEnableAbusiveRequestBlocking, |
| true /* default */); |
| } |
| |
| // static |
| bool QuietNotificationPermissionUiConfig::IsAbusiveRequestWarningEnabled() { |
| if (!base::FeatureList::IsEnabled(features::kQuietNotificationPrompts)) |
| return false; |
| |
| return base::GetFieldTrialParamByFeatureAsBool( |
| features::kQuietNotificationPrompts, kEnableAbusiveRequestWarning, |
| true /* default */); |
| } |
| |
| // static |
| bool QuietNotificationPermissionUiConfig:: |
| IsAbusiveContentTriggeredRequestBlockingEnabled() { |
| if (!base::FeatureList::IsEnabled(features::kQuietNotificationPrompts)) |
| return false; |
| |
| return base::GetFieldTrialParamByFeatureAsBool( |
| features::kQuietNotificationPrompts, |
| kEnableAbusiveContentTriggeredRequestBlocking, true /* default */); |
| } |
| |
| // static |
| bool QuietNotificationPermissionUiConfig:: |
| IsAbusiveContentTriggeredRequestWarningEnabled() { |
| if (!base::FeatureList::IsEnabled(features::kQuietNotificationPrompts)) |
| return false; |
| |
| return base::GetFieldTrialParamByFeatureAsBool( |
| features::kQuietNotificationPrompts, |
| kEnableAbusiveContentTriggeredRequestWarning, true /* default */); |
| } |