blob: 865fc5c66387640c2fcc240951c113300c753324 [file] [log] [blame]
// 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 */);
}