Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5753)

Unified Diff: chrome/browser/permissions/permission_decision_auto_blocker.cc

Issue 2701343002: Implement permission embargo suppression metrics. (Closed)
Patch Set: Rebase Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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(

Powered by Google App Engine
This is Rietveld 408576698