Chromium Code Reviews| 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..7dbc2b53de861151f4c734209f904c6990caa9f0 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(GetEmbargoResult(permission, request_origin).content_setting == |
| + CONTENT_SETTING_ASK); |
|
raymes
2017/02/22 23:13:50
nit: DCHECK_EQ(CONTENT_SETTING_ASK, ...)
dominickn
2017/02/22 23:38:54
Done.
|
| 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,9 @@ 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; |
| + |
| + PermissionStatusSource reason = PermissionStatusSource::UNSPECIFIED; |
| + ContentSetting setting = CONTENT_SETTING_ASK; |
| base::Time current_time = clock_->Now(); |
| if (base::FeatureList::IsEnabled(features::kPermissionsBlacklist) && |
| permission_dict->GetDouble(kPermissionBlacklistEmbargoKey, |
| @@ -308,7 +309,8 @@ bool PermissionDecisionAutoBlocker::IsUnderEmbargo( |
| if (current_time < |
| base::Time::FromInternalValue(embargo_date) + |
| base::TimeDelta::FromDays(g_blacklist_embargo_days)) { |
| - is_under_blacklist_embargo = true; |
| + reason = PermissionStatusSource::SAFE_BROWSING_BLACKLIST; |
| + setting = CONTENT_SETTING_BLOCK; |
|
raymes
2017/02/22 23:13:50
Can we just
return PermissionResult(CONTENT_SETTI
dominickn
2017/02/22 23:38:54
Done.
|
| } |
| } |
| @@ -318,12 +320,12 @@ bool PermissionDecisionAutoBlocker::IsUnderEmbargo( |
| if (current_time < |
| base::Time::FromInternalValue(embargo_date) + |
| base::TimeDelta::FromDays(g_dismissal_embargo_days)) { |
| - is_under_dismiss_embargo = true; |
| + reason = PermissionStatusSource::MULTIPLE_DISMISSALS; |
| + setting = CONTENT_SETTING_BLOCK; |
| } |
| } |
| - // If either embargo is still in effect, return true. |
| - return is_under_dismiss_embargo || is_under_blacklist_embargo; |
| + return PermissionResult(setting, reason); |
| } |
| void PermissionDecisionAutoBlocker::CheckSafeBrowsingResult( |