| 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;
|
| }
|
|
|