| 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 017553d86979890252a23167b3a7b425e08415a0..52df41087ebea1d983e6d0a55d92ee5135613ce0 100644
|
| --- a/chrome/browser/permissions/permission_decision_auto_blocker.cc
|
| +++ b/chrome/browser/permissions/permission_decision_auto_blocker.cc
|
| @@ -13,7 +13,6 @@
|
| #include "chrome/browser/browser_process.h"
|
| #include "chrome/browser/content_settings/host_content_settings_map_factory.h"
|
| #include "chrome/browser/permissions/permission_blacklist_client.h"
|
| -#include "chrome/browser/permissions/permission_util.h"
|
| #include "chrome/browser/profiles/incognito_helpers.h"
|
| #include "chrome/browser/profiles/profile.h"
|
| #include "chrome/browser/safe_browsing/safe_browsing_service.h"
|
| @@ -270,7 +269,8 @@ void PermissionDecisionAutoBlocker::UpdateEmbargoedStatus(
|
| const GURL& request_origin,
|
| content::WebContents* web_contents,
|
| base::Callback<void(bool)> callback) {
|
| - DCHECK(!IsUnderEmbargo(permission, request_origin));
|
| + DCHECK_EQ(CONTENT_SETTING_ASK,
|
| + GetEmbargoResult(permission, request_origin).content_setting);
|
|
|
| if (base::FeatureList::IsEnabled(features::kPermissionsBlacklist) &&
|
| db_manager_) {
|
| @@ -289,7 +289,7 @@ void PermissionDecisionAutoBlocker::UpdateEmbargoedStatus(
|
| callback.Run(false /* permission blocked */);
|
| }
|
|
|
| -bool PermissionDecisionAutoBlocker::IsUnderEmbargo(
|
| +PermissionResult PermissionDecisionAutoBlocker::GetEmbargoResult(
|
| ContentSettingsType permission,
|
| const GURL& request_origin) {
|
| HostContentSettingsMap* map =
|
| @@ -299,8 +299,7 @@ bool PermissionDecisionAutoBlocker::IsUnderEmbargo(
|
| base::DictionaryValue* permission_dict = GetOrCreatePermissionDict(
|
| dict.get(), PermissionUtil::GetPermissionString(permission));
|
| double embargo_date = -1;
|
| - bool is_under_dismiss_embargo = false;
|
| - bool is_under_blacklist_embargo = false;
|
| +
|
| base::Time current_time = clock_->Now();
|
| if (base::FeatureList::IsEnabled(features::kPermissionsBlacklist) &&
|
| permission_dict->GetDouble(kPermissionBlacklistEmbargoKey,
|
| @@ -308,7 +307,8 @@ bool PermissionDecisionAutoBlocker::IsUnderEmbargo(
|
| if (current_time <
|
| base::Time::FromInternalValue(embargo_date) +
|
| base::TimeDelta::FromDays(g_blacklist_embargo_days)) {
|
| - is_under_blacklist_embargo = true;
|
| + return PermissionResult(CONTENT_SETTING_BLOCK,
|
| + PermissionStatusSource::SAFE_BROWSING_BLACKLIST);
|
| }
|
| }
|
|
|
| @@ -318,12 +318,13 @@ bool PermissionDecisionAutoBlocker::IsUnderEmbargo(
|
| if (current_time <
|
| base::Time::FromInternalValue(embargo_date) +
|
| base::TimeDelta::FromDays(g_dismissal_embargo_days)) {
|
| - is_under_dismiss_embargo = true;
|
| + return PermissionResult(CONTENT_SETTING_BLOCK,
|
| + PermissionStatusSource::MULTIPLE_DISMISSALS);
|
| }
|
| }
|
|
|
| - // If either embargo is still in effect, return true.
|
| - return is_under_dismiss_embargo || is_under_blacklist_embargo;
|
| + return PermissionResult(CONTENT_SETTING_ASK,
|
| + PermissionStatusSource::UNSPECIFIED);
|
| }
|
|
|
| void PermissionDecisionAutoBlocker::CheckSafeBrowsingResult(
|
|
|