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

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

Issue 2709213004: Make the PermissionDecisionAutoBlocker API consistent. (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 52df41087ebea1d983e6d0a55d92ee5135613ce0..f6edf74c4721a6df449c016a42f848acc0abab19 100644
--- a/chrome/browser/permissions/permission_decision_auto_blocker.cc
+++ b/chrome/browser/permissions/permission_decision_auto_blocker.cc
@@ -168,73 +168,6 @@ PermissionDecisionAutoBlocker* PermissionDecisionAutoBlocker::GetForProfile(
return PermissionDecisionAutoBlocker::Factory::GetForProfile(profile);
}
-PermissionDecisionAutoBlocker::PermissionDecisionAutoBlocker(Profile* profile)
- : profile_(profile),
- db_manager_(nullptr),
- safe_browsing_timeout_(kCheckUrlTimeoutMs),
- clock_(new base::DefaultClock()) {
- safe_browsing::SafeBrowsingService* sb_service =
- g_browser_process->safe_browsing_service();
- if (sb_service)
- db_manager_ = sb_service->database_manager();
-}
-
-PermissionDecisionAutoBlocker::~PermissionDecisionAutoBlocker() {}
-
-void PermissionDecisionAutoBlocker::RemoveCountsByUrl(
- base::Callback<bool(const GURL& url)> filter) {
- HostContentSettingsMap* map =
- HostContentSettingsMapFactory::GetForProfile(profile_);
-
- std::unique_ptr<ContentSettingsForOneType> settings(
- new ContentSettingsForOneType);
- map->GetSettingsForOneType(CONTENT_SETTINGS_TYPE_PERMISSION_AUTOBLOCKER_DATA,
- std::string(), settings.get());
-
- for (const auto& site : *settings) {
- GURL origin(site.primary_pattern.ToString());
-
- if (origin.is_valid() && filter.Run(origin)) {
- map->SetWebsiteSettingDefaultScope(
- origin, GURL(), CONTENT_SETTINGS_TYPE_PERMISSION_AUTOBLOCKER_DATA,
- std::string(), nullptr);
- }
- }
-}
-
-int PermissionDecisionAutoBlocker::GetDismissCount(
- const GURL& url,
- ContentSettingsType permission) {
- return GetActionCount(url, permission, kPromptDismissCountKey, profile_);
-}
-
-int PermissionDecisionAutoBlocker::GetIgnoreCount(
- const GURL& url,
- ContentSettingsType permission) {
- return GetActionCount(url, permission, kPromptIgnoreCountKey, profile_);
-}
-
-bool PermissionDecisionAutoBlocker::RecordDismissAndEmbargo(
- const GURL& url,
- ContentSettingsType permission) {
- int current_dismissal_count = RecordActionInWebsiteSettings(
- url, permission, kPromptDismissCountKey, profile_);
-
- if (base::FeatureList::IsEnabled(features::kBlockPromptsIfDismissedOften) &&
- current_dismissal_count >= g_prompt_dismissals_before_block) {
- PlaceUnderEmbargo(permission, url, kPermissionDismissalEmbargoKey);
- return true;
- }
- return false;
-}
-
-int PermissionDecisionAutoBlocker::RecordIgnore(
- const GURL& url,
- ContentSettingsType permission) {
- return RecordActionInWebsiteSettings(url, permission, kPromptIgnoreCountKey,
- profile_);
-}
-
// static
void PermissionDecisionAutoBlocker::UpdateFromVariations() {
int prompt_dismissals = -1;
@@ -264,13 +197,13 @@ void PermissionDecisionAutoBlocker::UpdateFromVariations() {
}
}
-void PermissionDecisionAutoBlocker::UpdateEmbargoedStatus(
- ContentSettingsType permission,
- const GURL& request_origin,
+void PermissionDecisionAutoBlocker::CheckSafeBrowsingBlacklist(
content::WebContents* web_contents,
+ const GURL& request_origin,
+ ContentSettingsType permission,
base::Callback<void(bool)> callback) {
DCHECK_EQ(CONTENT_SETTING_ASK,
- GetEmbargoResult(permission, request_origin).content_setting);
+ GetEmbargoResult(request_origin, permission).content_setting);
if (base::FeatureList::IsEnabled(features::kPermissionsBlacklist) &&
db_manager_) {
@@ -278,10 +211,10 @@ void PermissionDecisionAutoBlocker::UpdateEmbargoedStatus(
// destroyed before a result is received. In that case this object will have
// been destroyed by that point.
PermissionBlacklistClient::CheckSafeBrowsingBlacklist(
- db_manager_, permission, request_origin, web_contents,
+ web_contents, db_manager_, request_origin, permission,
safe_browsing_timeout_,
base::Bind(&PermissionDecisionAutoBlocker::CheckSafeBrowsingResult,
- base::Unretained(this), permission, request_origin,
+ base::Unretained(this), request_origin, permission,
callback));
return;
}
@@ -290,8 +223,8 @@ void PermissionDecisionAutoBlocker::UpdateEmbargoedStatus(
}
PermissionResult PermissionDecisionAutoBlocker::GetEmbargoResult(
- ContentSettingsType permission,
- const GURL& request_origin) {
+ const GURL& request_origin,
+ ContentSettingsType permission) {
HostContentSettingsMap* map =
HostContentSettingsMapFactory::GetForProfile(profile_);
std::unique_ptr<base::DictionaryValue> dict =
@@ -327,23 +260,90 @@ PermissionResult PermissionDecisionAutoBlocker::GetEmbargoResult(
PermissionStatusSource::UNSPECIFIED);
}
+int PermissionDecisionAutoBlocker::GetDismissCount(
+ const GURL& url,
+ ContentSettingsType permission) {
+ return GetActionCount(url, permission, kPromptDismissCountKey, profile_);
+}
+
+int PermissionDecisionAutoBlocker::GetIgnoreCount(
+ const GURL& url,
+ ContentSettingsType permission) {
+ return GetActionCount(url, permission, kPromptIgnoreCountKey, profile_);
+}
+
+bool PermissionDecisionAutoBlocker::RecordDismissAndEmbargo(
+ const GURL& url,
+ ContentSettingsType permission) {
+ int current_dismissal_count = RecordActionInWebsiteSettings(
+ url, permission, kPromptDismissCountKey, profile_);
+
+ if (base::FeatureList::IsEnabled(features::kBlockPromptsIfDismissedOften) &&
+ current_dismissal_count >= g_prompt_dismissals_before_block) {
+ PlaceUnderEmbargo(url, permission, kPermissionDismissalEmbargoKey);
+ return true;
+ }
+ return false;
+}
+
+int PermissionDecisionAutoBlocker::RecordIgnore(
+ const GURL& url,
+ ContentSettingsType permission) {
+ return RecordActionInWebsiteSettings(url, permission, kPromptIgnoreCountKey,
+ profile_);
+}
+
+void PermissionDecisionAutoBlocker::RemoveCountsByUrl(
+ base::Callback<bool(const GURL& url)> filter) {
+ HostContentSettingsMap* map =
+ HostContentSettingsMapFactory::GetForProfile(profile_);
+
+ std::unique_ptr<ContentSettingsForOneType> settings(
+ new ContentSettingsForOneType);
+ map->GetSettingsForOneType(CONTENT_SETTINGS_TYPE_PERMISSION_AUTOBLOCKER_DATA,
+ std::string(), settings.get());
+
+ for (const auto& site : *settings) {
+ GURL origin(site.primary_pattern.ToString());
+
+ if (origin.is_valid() && filter.Run(origin)) {
+ map->SetWebsiteSettingDefaultScope(
+ origin, GURL(), CONTENT_SETTINGS_TYPE_PERMISSION_AUTOBLOCKER_DATA,
+ std::string(), nullptr);
+ }
+ }
+}
+
+PermissionDecisionAutoBlocker::PermissionDecisionAutoBlocker(Profile* profile)
+ : profile_(profile),
+ db_manager_(nullptr),
+ safe_browsing_timeout_(kCheckUrlTimeoutMs),
+ clock_(new base::DefaultClock()) {
+ safe_browsing::SafeBrowsingService* sb_service =
+ g_browser_process->safe_browsing_service();
+ if (sb_service)
+ db_manager_ = sb_service->database_manager();
+}
+
+PermissionDecisionAutoBlocker::~PermissionDecisionAutoBlocker() {}
+
void PermissionDecisionAutoBlocker::CheckSafeBrowsingResult(
- ContentSettingsType permission,
const GURL& request_origin,
+ ContentSettingsType permission,
base::Callback<void(bool)> callback,
bool should_be_embargoed) {
if (should_be_embargoed) {
// Requesting site is blacklisted for this permission, update the content
// setting to place it under embargo.
- PlaceUnderEmbargo(permission, request_origin,
+ PlaceUnderEmbargo(request_origin, permission,
kPermissionBlacklistEmbargoKey);
}
callback.Run(should_be_embargoed /* permission blocked */);
}
void PermissionDecisionAutoBlocker::PlaceUnderEmbargo(
- ContentSettingsType permission,
const GURL& request_origin,
+ ContentSettingsType permission,
const char* key) {
HostContentSettingsMap* map =
HostContentSettingsMapFactory::GetForProfile(profile_);

Powered by Google App Engine
This is Rietveld 408576698