| Index: chrome/browser/permissions/permission_decision_auto_blocker.cc
|
| diff --git a/chrome/browser/permissions/permission_decision_auto_blocker.cc b/chrome/browser/permissions/permission_decision_auto_blocker.cc
|
| index 204dfa0a05adb943f165c315e5bc4b45d978aa60..554565d4e277064a35e787aa9d9051f1103a7553 100644
|
| --- a/chrome/browser/permissions/permission_decision_auto_blocker.cc
|
| +++ b/chrome/browser/permissions/permission_decision_auto_blocker.cc
|
| @@ -12,7 +12,6 @@
|
| #include "base/strings/string_number_conversions.h"
|
| #include "base/values.h"
|
| #include "chrome/browser/content_settings/host_content_settings_map_factory.h"
|
| -#include "chrome/browser/permissions/permission_uma_util.h"
|
| #include "chrome/browser/permissions/permission_util.h"
|
| #include "chrome/common/chrome_features.h"
|
| #include "components/content_settings/core/browser/host_content_settings_map.h"
|
| @@ -54,6 +53,44 @@ base::DictionaryValue* GetOrCreatePermissionDict(
|
| return permission_dict;
|
| }
|
|
|
| +int RecordActionInWebsiteSettings(const GURL& url,
|
| + content::PermissionType permission,
|
| + const char* key,
|
| + Profile* profile) {
|
| + HostContentSettingsMap* map =
|
| + HostContentSettingsMapFactory::GetForProfile(profile);
|
| + std::unique_ptr<base::DictionaryValue> dict = GetOriginDict(map, url);
|
| +
|
| + base::DictionaryValue* permission_dict = GetOrCreatePermissionDict(
|
| + dict.get(), PermissionUtil::GetPermissionString(permission));
|
| +
|
| + int current_count = 0;
|
| + permission_dict->GetInteger(key, ¤t_count);
|
| + permission_dict->SetInteger(key, ++current_count);
|
| +
|
| + map->SetWebsiteSettingDefaultScope(
|
| + url, GURL(), CONTENT_SETTINGS_TYPE_PROMPT_NO_DECISION_COUNT,
|
| + std::string(), std::move(dict));
|
| +
|
| + return current_count;
|
| +}
|
| +
|
| +int GetActionCount(const GURL& url,
|
| + content::PermissionType permission,
|
| + const char* key,
|
| + Profile* profile) {
|
| + HostContentSettingsMap* map =
|
| + HostContentSettingsMapFactory::GetForProfile(profile);
|
| + std::unique_ptr<base::DictionaryValue> dict = GetOriginDict(map, url);
|
| +
|
| + base::DictionaryValue* permission_dict = GetOrCreatePermissionDict(
|
| + dict.get(), PermissionUtil::GetPermissionString(permission));
|
| +
|
| + int current_count = 0;
|
| + permission_dict->GetInteger(key, ¤t_count);
|
| + return current_count;
|
| +}
|
| +
|
| } // namespace
|
|
|
| // static
|
| @@ -88,33 +125,19 @@ void PermissionDecisionAutoBlocker::RemoveCountsByUrl(
|
| }
|
|
|
| // static
|
| -int PermissionDecisionAutoBlocker::GetDismissCount(const GURL& url,
|
| - content::PermissionType permission, Profile* profile) {
|
| +int PermissionDecisionAutoBlocker::GetDismissCount(
|
| + const GURL& url,
|
| + content::PermissionType permission,
|
| + Profile* profile) {
|
| return GetActionCount(url, permission, kPromptDismissCountKey, profile);
|
| }
|
|
|
| // static
|
| -int PermissionDecisionAutoBlocker::GetIgnoreCount(const GURL& url,
|
| - content::PermissionType permission, Profile* profile) {
|
| - return GetActionCount(url, permission, kPromptIgnoreCountKey, profile);
|
| -}
|
| -
|
| -// static
|
| -int PermissionDecisionAutoBlocker::GetActionCount(
|
| +int PermissionDecisionAutoBlocker::GetIgnoreCount(
|
| const GURL& url,
|
| content::PermissionType permission,
|
| - const char* key,
|
| Profile* profile) {
|
| - HostContentSettingsMap* map =
|
| - HostContentSettingsMapFactory::GetForProfile(profile);
|
| - std::unique_ptr<base::DictionaryValue> dict = GetOriginDict(map, url);
|
| -
|
| - base::DictionaryValue* permission_dict = GetOrCreatePermissionDict(
|
| - dict.get(), PermissionUtil::GetPermissionString(permission));
|
| -
|
| - int current_count = 0;
|
| - permission_dict->GetInteger(key, ¤t_count);
|
| - return current_count;
|
| + return GetActionCount(url, permission, kPromptIgnoreCountKey, profile);
|
| }
|
|
|
| PermissionDecisionAutoBlocker::PermissionDecisionAutoBlocker(Profile* profile)
|
| @@ -126,22 +149,15 @@ PermissionDecisionAutoBlocker::PermissionDecisionAutoBlocker(Profile* profile)
|
| int PermissionDecisionAutoBlocker::RecordIgnore(
|
| const GURL& url,
|
| content::PermissionType permission) {
|
| - int current_ignore_count =
|
| - RecordActionInWebsiteSettings(url, permission, kPromptIgnoreCountKey);
|
| -
|
| - PermissionUmaUtil::PermissionPromptIgnored(permission, current_ignore_count);
|
| -
|
| - return current_ignore_count;
|
| + return RecordActionInWebsiteSettings(url, permission, kPromptIgnoreCountKey,
|
| + profile_);
|
| }
|
|
|
| bool PermissionDecisionAutoBlocker::ShouldChangeDismissalToBlock(
|
| const GURL& url,
|
| content::PermissionType permission) {
|
| - int current_dismissal_count =
|
| - RecordActionInWebsiteSettings(url, permission, kPromptDismissCountKey);
|
| -
|
| - PermissionUmaUtil::PermissionPromptDismissed(permission,
|
| - current_dismissal_count);
|
| + int current_dismissal_count = RecordActionInWebsiteSettings(
|
| + url, permission, kPromptDismissCountKey, profile_);
|
|
|
| if (!base::FeatureList::IsEnabled(features::kBlockPromptsIfDismissedOften))
|
| return false;
|
| @@ -149,28 +165,6 @@ bool PermissionDecisionAutoBlocker::ShouldChangeDismissalToBlock(
|
| return current_dismissal_count >= prompt_dismissals_before_block_;
|
| }
|
|
|
| -int PermissionDecisionAutoBlocker::RecordActionInWebsiteSettings(
|
| - const GURL& url,
|
| - content::PermissionType permission,
|
| - const char* key) {
|
| - HostContentSettingsMap* map =
|
| - HostContentSettingsMapFactory::GetForProfile(profile_);
|
| - std::unique_ptr<base::DictionaryValue> dict = GetOriginDict(map, url);
|
| -
|
| - base::DictionaryValue* permission_dict = GetOrCreatePermissionDict(
|
| - dict.get(), PermissionUtil::GetPermissionString(permission));
|
| -
|
| - int current_count = 0;
|
| - permission_dict->GetInteger(key, ¤t_count);
|
| - permission_dict->SetInteger(key, ++current_count);
|
| -
|
| - map->SetWebsiteSettingDefaultScope(
|
| - url, GURL(), CONTENT_SETTINGS_TYPE_PROMPT_NO_DECISION_COUNT,
|
| - std::string(), std::move(dict));
|
| -
|
| - return current_count;
|
| -}
|
| -
|
| void PermissionDecisionAutoBlocker::UpdateFromVariations() {
|
| int prompt_dismissals = -1;
|
| std::string value = variations::GetVariationParamValueByFeature(
|
|
|