| Index: chrome/browser/notifications/notification_permission_context_unittest.cc
|
| diff --git a/chrome/browser/notifications/notification_permission_context_unittest.cc b/chrome/browser/notifications/notification_permission_context_unittest.cc
|
| index 1c878d943b4b4d093036d789e8cd698cfff8aa22..6ae74b526918de636d79377bd890d53dd7032dfc 100644
|
| --- a/chrome/browser/notifications/notification_permission_context_unittest.cc
|
| +++ b/chrome/browser/notifications/notification_permission_context_unittest.cc
|
| @@ -34,8 +34,7 @@ void DoNothing2(blink::mojom::PermissionStatus status) {}
|
| class TestNotificationPermissionContext : public NotificationPermissionContext {
|
| public:
|
| explicit TestNotificationPermissionContext(Profile* profile)
|
| - : NotificationPermissionContext(profile,
|
| - content::PermissionType::NOTIFICATIONS),
|
| + : NotificationPermissionContext(profile),
|
| permission_set_count_(0),
|
| last_permission_set_persisted_(false),
|
| last_permission_set_setting_(CONTENT_SETTING_DEFAULT) {}
|
| @@ -76,8 +75,6 @@ class TestNotificationPermissionContext : public NotificationPermissionContext {
|
| ContentSetting last_permission_set_setting_;
|
| };
|
|
|
| -} // namespace
|
| -
|
| class NotificationPermissionContextTest
|
| : public ChromeRenderViewHostTestHarness {
|
| public:
|
| @@ -98,18 +95,12 @@ class NotificationPermissionContextTest
|
| ChromeRenderViewHostTestHarness::TearDown();
|
| }
|
|
|
| - protected:
|
| - void UpdateContentSetting(NotificationPermissionContext* context,
|
| - const GURL& requesting_origin,
|
| - const GURL& embedding_origin,
|
| - ContentSetting setting) {
|
| - context->UpdateContentSetting(requesting_origin, embedding_origin, setting);
|
| - }
|
| -
|
| private:
|
| scoped_refptr<base::SingleThreadTaskRunner> old_task_runner_;
|
| };
|
|
|
| +} // namespace
|
| +
|
| // Web Notification permission requests will completely ignore the embedder
|
| // origin. See https://crbug.com/416894.
|
| TEST_F(NotificationPermissionContextTest, IgnoresEmbedderOrigin) {
|
| @@ -117,10 +108,10 @@ TEST_F(NotificationPermissionContextTest, IgnoresEmbedderOrigin) {
|
| GURL embedding_origin("https://chrome.com");
|
| GURL different_origin("https://foobar.com");
|
|
|
| - NotificationPermissionContext context(profile(),
|
| - content::PermissionType::NOTIFICATIONS);
|
| - UpdateContentSetting(&context, requesting_origin, embedding_origin,
|
| - CONTENT_SETTING_ALLOW);
|
| + NotificationPermissionContext context(profile());
|
| + context.UpdateContentSetting(requesting_origin,
|
| + embedding_origin,
|
| + CONTENT_SETTING_ALLOW);
|
|
|
| EXPECT_EQ(CONTENT_SETTING_ALLOW,
|
| context.GetPermissionStatus(requesting_origin, embedding_origin));
|
| @@ -137,73 +128,21 @@ TEST_F(NotificationPermissionContextTest, IgnoresEmbedderOrigin) {
|
| context.GetPermissionStatus(requesting_origin, different_origin));
|
| }
|
|
|
| -// Push messaging permission requests should only succeed for top level origins
|
| -// (embedding origin == requesting origin).
|
| -TEST_F(NotificationPermissionContextTest, PushTopLevelOriginOnly) {
|
| - GURL requesting_origin("https://example.com");
|
| - GURL embedding_origin("https://chrome.com");
|
| -
|
| - NotificationPermissionContext context(
|
| - profile(), content::PermissionType::PUSH_MESSAGING);
|
| - UpdateContentSetting(&context, requesting_origin, embedding_origin,
|
| - CONTENT_SETTING_ALLOW);
|
| -
|
| - EXPECT_EQ(CONTENT_SETTING_BLOCK,
|
| - context.GetPermissionStatus(requesting_origin, embedding_origin));
|
| -
|
| - context.ResetPermission(requesting_origin, embedding_origin);
|
| -
|
| - UpdateContentSetting(&context, embedding_origin, embedding_origin,
|
| - CONTENT_SETTING_ALLOW);
|
| -
|
| - EXPECT_EQ(CONTENT_SETTING_ALLOW,
|
| - context.GetPermissionStatus(embedding_origin, embedding_origin));
|
| -
|
| - context.ResetPermission(embedding_origin, embedding_origin);
|
| -
|
| - EXPECT_EQ(CONTENT_SETTING_ASK,
|
| - context.GetPermissionStatus(embedding_origin, embedding_origin));
|
| -}
|
| -
|
| // Web Notifications do not require a secure origin when requesting permission.
|
| // See https://crbug.com/404095.
|
| TEST_F(NotificationPermissionContextTest, NoSecureOriginRequirement) {
|
| GURL origin("http://example.com");
|
|
|
| - NotificationPermissionContext context(profile(),
|
| - content::PermissionType::NOTIFICATIONS);
|
| + NotificationPermissionContext context(profile());
|
| EXPECT_EQ(CONTENT_SETTING_ASK,
|
| context.GetPermissionStatus(origin, origin));
|
|
|
| - UpdateContentSetting(&context, origin, origin, CONTENT_SETTING_ALLOW);
|
| + context.UpdateContentSetting(origin, origin, CONTENT_SETTING_ALLOW);
|
|
|
| EXPECT_EQ(CONTENT_SETTING_ALLOW,
|
| context.GetPermissionStatus(origin, origin));
|
| }
|
|
|
| -// Push notifications requires a secure origin to acquire permission.
|
| -TEST_F(NotificationPermissionContextTest, PushSecureOriginRequirement) {
|
| - GURL origin("http://example.com");
|
| - GURL secure_origin("https://example.com");
|
| -
|
| - NotificationPermissionContext context(
|
| - profile(), content::PermissionType::PUSH_MESSAGING);
|
| - EXPECT_EQ(CONTENT_SETTING_BLOCK, context.GetPermissionStatus(origin, origin));
|
| -
|
| - UpdateContentSetting(&context, origin, origin, CONTENT_SETTING_ALLOW);
|
| -
|
| - EXPECT_EQ(CONTENT_SETTING_BLOCK, context.GetPermissionStatus(origin, origin));
|
| -
|
| - EXPECT_EQ(CONTENT_SETTING_ASK,
|
| - context.GetPermissionStatus(secure_origin, secure_origin));
|
| -
|
| - UpdateContentSetting(&context, secure_origin, secure_origin,
|
| - CONTENT_SETTING_ALLOW);
|
| -
|
| - EXPECT_EQ(CONTENT_SETTING_ALLOW,
|
| - context.GetPermissionStatus(secure_origin, secure_origin));
|
| -}
|
| -
|
| // Tests auto-denial after a time delay in incognito.
|
| TEST_F(NotificationPermissionContextTest, TestDenyInIncognitoAfterDelay) {
|
| TestNotificationPermissionContext permission_context(
|
|
|