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

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

Issue 2184823007: Add a feature which, when enabled, blocks permissions after X prompt dismissals. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 5 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_queue_controller.cc
diff --git a/chrome/browser/permissions/permission_queue_controller.cc b/chrome/browser/permissions/permission_queue_controller.cc
index 161e04a10e95ba1f9aa7e04b4566b523cd91aa17..4ee480a327a27b42adc820374e5e5c8b5ab901d1 100644
--- a/chrome/browser/permissions/permission_queue_controller.cc
+++ b/chrome/browser/permissions/permission_queue_controller.cc
@@ -13,6 +13,7 @@
#include "chrome/browser/notifications/notification_permission_infobar_delegate.h"
#include "chrome/browser/permissions/permission_request_id.h"
#include "chrome/browser/permissions/permission_uma_util.h"
+#include "chrome/browser/permissions/permission_util.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/tab_contents/tab_util.h"
#include "components/content_settings/core/browser/host_content_settings_map.h"
@@ -204,6 +205,15 @@ void PermissionQueueController::OnPermissionSet(
bool allowed) {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
+ // Check if we should convert a dismiss decision into a block decision. This
+ // is gated on enabling the kBlockPromptsIfDismissedOften feature.
+ if (!update_content_setting &&
+ PermissionUtil::ShouldChangeDismissalToBlock(profile_, requesting_frame,
+ permission_type_)) {
+ update_content_setting = true;
+ allowed = false;
+ }
+
// TODO(miguelg): move the permission persistence to
// PermissionContextBase once all the types are moved there.
if (update_content_setting) {

Powered by Google App Engine
This is Rietveld 408576698