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

Unified Diff: chrome/browser/notifications/notification_permission_context.cc

Issue 2149883002: Use the same codepath for NOTIFICATIONS and PUSH_MESSAGING permissions (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/notifications/notification_permission_context.cc
diff --git a/chrome/browser/notifications/notification_permission_context.cc b/chrome/browser/notifications/notification_permission_context.cc
index 89ae620b21f2d6ed9cd8c29f1066d84bdb797e80..9bea149c07b280bb658d11c3eb8876055117eb93 100644
--- a/chrome/browser/notifications/notification_permission_context.cc
+++ b/chrome/browser/notifications/notification_permission_context.cc
@@ -159,14 +159,32 @@ void VisibilityTimerTabHelper::RunTask(const base::Closure& task) {
DEFINE_WEB_CONTENTS_USER_DATA_KEY(VisibilityTimerTabHelper);
-NotificationPermissionContext::NotificationPermissionContext(Profile* profile)
+NotificationPermissionContext::NotificationPermissionContext(
+ Profile* profile,
+ content::PermissionType permission_type)
: PermissionContextBase(profile,
- content::PermissionType::NOTIFICATIONS,
+ permission_type,
CONTENT_SETTINGS_TYPE_NOTIFICATIONS),
- weak_factory_ui_thread_(this) {}
+ weak_factory_ui_thread_(this) {
+ DCHECK(permission_type == content::PermissionType::NOTIFICATIONS ||
+ permission_type == content::PermissionType::PUSH_MESSAGING);
+}
NotificationPermissionContext::~NotificationPermissionContext() {}
+ContentSetting NotificationPermissionContext::GetPermissionStatus(
+ const GURL& requesting_origin,
+ const GURL& embedding_origin) const {
+ // Push messaging is only allowed to be granted on top-level origins.
+ if (permission_type() == content::PermissionType::PUSH_MESSAGING &&
+ requesting_origin != embedding_origin) {
+ return CONTENT_SETTING_BLOCK;
+ }
+
+ return PermissionContextBase::GetPermissionStatus(requesting_origin,
+ embedding_origin);
+}
+
void NotificationPermissionContext::ResetPermission(
const GURL& requesting_origin,
const GURL& embedder_origin) {
@@ -241,5 +259,5 @@ void NotificationPermissionContext::UpdateContentSetting(
}
bool NotificationPermissionContext::IsRestrictedToSecureOrigins() const {
- return false;
+ return permission_type() == content::PermissionType::PUSH_MESSAGING;
}

Powered by Google App Engine
This is Rietveld 408576698