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 8d26e6d0f82394d44810ffa12d6990dc1abe34c0..1c50079487ccb0f90371caef261702cbfff4f298 100644 |
--- a/chrome/browser/permissions/permission_decision_auto_blocker.cc |
+++ b/chrome/browser/permissions/permission_decision_auto_blocker.cc |
@@ -18,7 +18,6 @@ |
#include "chrome/browser/profiles/profile.h" |
#include "chrome/browser/safe_browsing/safe_browsing_service.h" |
#include "chrome/common/chrome_features.h" |
-#include "components/content_settings/core/browser/host_content_settings_map.h" |
#include "components/keyed_service/content/browser_context_dependency_manager.h" |
#include "components/safe_browsing_db/database_manager.h" |
#include "components/variations/variations_associated_data.h" |
@@ -197,6 +196,43 @@ PermissionDecisionAutoBlocker* PermissionDecisionAutoBlocker::GetForProfile( |
return PermissionDecisionAutoBlocker::Factory::GetForProfile(profile); |
} |
+// static |
+PermissionResult PermissionDecisionAutoBlocker::GetEmbargoResult( |
+ HostContentSettingsMap* settings_map, |
+ const GURL& request_origin, |
+ ContentSettingsType permission, |
+ base::Time current_time) { |
+ DCHECK(settings_map); |
+ std::unique_ptr<base::DictionaryValue> dict = |
+ GetOriginDict(settings_map, request_origin); |
+ base::DictionaryValue* permission_dict = GetOrCreatePermissionDict( |
+ dict.get(), PermissionUtil::GetPermissionString(permission)); |
+ |
+ if (IsUnderEmbargo(permission_dict, features::kPermissionsBlacklist, |
+ kPermissionBlacklistEmbargoKey, current_time, |
+ base::TimeDelta::FromDays(g_blacklist_embargo_days))) { |
+ return PermissionResult(CONTENT_SETTING_BLOCK, |
+ PermissionStatusSource::SAFE_BROWSING_BLACKLIST); |
+ } |
+ |
+ if (IsUnderEmbargo(permission_dict, features::kBlockPromptsIfDismissedOften, |
+ kPermissionDismissalEmbargoKey, current_time, |
+ base::TimeDelta::FromDays(g_dismissal_embargo_days))) { |
+ return PermissionResult(CONTENT_SETTING_BLOCK, |
+ PermissionStatusSource::MULTIPLE_DISMISSALS); |
+ } |
+ |
+ if (IsUnderEmbargo(permission_dict, features::kBlockPromptsIfIgnoredOften, |
+ kPermissionIgnoreEmbargoKey, current_time, |
+ base::TimeDelta::FromDays(g_ignore_embargo_days))) { |
+ return PermissionResult(CONTENT_SETTING_BLOCK, |
+ PermissionStatusSource::MULTIPLE_IGNORES); |
+ } |
+ |
+ return PermissionResult(CONTENT_SETTING_ASK, |
+ PermissionStatusSource::UNSPECIFIED); |
+} |
+ |
// static |
void PermissionDecisionAutoBlocker::UpdateFromVariations() { |
int dismissals_before_block = -1; |
@@ -276,37 +312,9 @@ void PermissionDecisionAutoBlocker::CheckSafeBrowsingBlacklist( |
PermissionResult PermissionDecisionAutoBlocker::GetEmbargoResult( |
const GURL& request_origin, |
ContentSettingsType permission) { |
- HostContentSettingsMap* map = |
- HostContentSettingsMapFactory::GetForProfile(profile_); |
- std::unique_ptr<base::DictionaryValue> dict = |
- GetOriginDict(map, request_origin); |
- base::DictionaryValue* permission_dict = GetOrCreatePermissionDict( |
- dict.get(), PermissionUtil::GetPermissionString(permission)); |
- |
- base::Time current_time = clock_->Now(); |
- if (IsUnderEmbargo(permission_dict, features::kPermissionsBlacklist, |
- kPermissionBlacklistEmbargoKey, current_time, |
- base::TimeDelta::FromDays(g_blacklist_embargo_days))) { |
- return PermissionResult(CONTENT_SETTING_BLOCK, |
- PermissionStatusSource::SAFE_BROWSING_BLACKLIST); |
- } |
- |
- if (IsUnderEmbargo(permission_dict, features::kBlockPromptsIfDismissedOften, |
- kPermissionDismissalEmbargoKey, current_time, |
- base::TimeDelta::FromDays(g_dismissal_embargo_days))) { |
- return PermissionResult(CONTENT_SETTING_BLOCK, |
- PermissionStatusSource::MULTIPLE_DISMISSALS); |
- } |
- |
- if (IsUnderEmbargo(permission_dict, features::kBlockPromptsIfIgnoredOften, |
- kPermissionIgnoreEmbargoKey, current_time, |
- base::TimeDelta::FromDays(g_ignore_embargo_days))) { |
- return PermissionResult(CONTENT_SETTING_BLOCK, |
- PermissionStatusSource::MULTIPLE_IGNORES); |
- } |
- |
- return PermissionResult(CONTENT_SETTING_ASK, |
- PermissionStatusSource::UNSPECIFIED); |
+ return GetEmbargoResult( |
+ HostContentSettingsMapFactory::GetForProfile(profile_), request_origin, |
+ permission, clock_->Now()); |
} |
int PermissionDecisionAutoBlocker::GetDismissCount( |