| Index: chrome/browser/push_messaging/push_messaging_permission_context.cc
|
| diff --git a/chrome/browser/push_messaging/push_messaging_permission_context.cc b/chrome/browser/push_messaging/push_messaging_permission_context.cc
|
| index 6125f3ebfd3ab245f66518fa08ef6a867994c06e..525d6c2628197d269882c3664e6397c82638da85 100644
|
| --- a/chrome/browser/push_messaging/push_messaging_permission_context.cc
|
| +++ b/chrome/browser/push_messaging/push_messaging_permission_context.cc
|
| @@ -27,14 +27,14 @@ PushMessagingPermissionContext::PushMessagingPermissionContext(Profile* profile)
|
| PushMessagingPermissionContext::~PushMessagingPermissionContext() {}
|
|
|
| ContentSetting PushMessagingPermissionContext::GetPermissionStatus(
|
| - const GURL& requesting_origin,
|
| - const GURL& embedding_origin) const {
|
| - // It's possible for this to return CONTENT_SETTING_BLOCK in cases where
|
| - // HostContentSettingsMap::GetContentSetting returns CONTENT_SETTING_ALLOW.
|
| - // TODO(johnme): This is likely to break assumptions made elsewhere, so we
|
| - // should try to remove this quirk.
|
| + const url::Origin& requesting_origin,
|
| + const url::Origin& embedding_origin) const {
|
| +// It's possible for this to return CONTENT_SETTING_BLOCK in cases where
|
| +// HostContentSettingsMap::GetContentSetting returns CONTENT_SETTING_ALLOW.
|
| +// TODO(johnme): This is likely to break assumptions made elsewhere, so we
|
| +// should try to remove this quirk.
|
| #if defined(ENABLE_NOTIFICATIONS)
|
| - if (requesting_origin != embedding_origin)
|
| + if (!requesting_origin.IsSameOriginWith(embedding_origin))
|
| return CONTENT_SETTING_BLOCK;
|
|
|
| ContentSetting push_content_setting =
|
| @@ -74,12 +74,12 @@ ContentSetting PushMessagingPermissionContext::GetPermissionStatus(
|
| void PushMessagingPermissionContext::DecidePermission(
|
| content::WebContents* web_contents,
|
| const PermissionRequestID& id,
|
| - const GURL& requesting_origin,
|
| - const GURL& embedding_origin,
|
| + const url::Origin& requesting_origin,
|
| + const url::Origin& embedding_origin,
|
| const BrowserPermissionCallback& callback) {
|
| DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
|
| #if defined(ENABLE_NOTIFICATIONS)
|
| - if (requesting_origin != embedding_origin) {
|
| + if (!requesting_origin.IsSameOriginWith(embedding_origin)) {
|
| NotifyPermissionSet(id, requesting_origin, embedding_origin, callback,
|
| false /* persist */, CONTENT_SETTING_BLOCK);
|
| return;
|
| @@ -106,20 +106,22 @@ bool PushMessagingPermissionContext::IsRestrictedToSecureOrigins() const {
|
|
|
| void PushMessagingPermissionContext::DecidePushPermission(
|
| const PermissionRequestID& id,
|
| - const GURL& requesting_origin,
|
| - const GURL& embedding_origin,
|
| + const url::Origin& requesting_origin,
|
| + const url::Origin& embedding_origin,
|
| const BrowserPermissionCallback& callback,
|
| ContentSetting notification_content_setting) {
|
| DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
|
| + const GURL requesting_url(requesting_origin.Serialize());
|
| + const GURL embedding_url(embedding_origin.Serialize());
|
| ContentSetting push_content_setting =
|
| HostContentSettingsMapFactory::GetForProfile(profile_)
|
| ->GetContentSettingAndMaybeUpdateLastUsage(
|
| - requesting_origin, embedding_origin, content_settings_type(),
|
| + requesting_url, embedding_url, content_settings_type(),
|
| std::string());
|
|
|
| if (push_content_setting == CONTENT_SETTING_BLOCK) {
|
| DVLOG(1) << "Push permission was explicitly blocked.";
|
| - PermissionUmaUtil::PermissionDenied(permission_type(), requesting_origin);
|
| + PermissionUmaUtil::PermissionDenied(permission_type(), requesting_url);
|
| NotifyPermissionSet(id, requesting_origin, embedding_origin, callback,
|
| true /* persist */, CONTENT_SETTING_BLOCK);
|
| return;
|
| @@ -132,7 +134,7 @@ void PushMessagingPermissionContext::DecidePushPermission(
|
| return;
|
| }
|
|
|
| - PermissionUmaUtil::PermissionGranted(permission_type(), requesting_origin);
|
| + PermissionUmaUtil::PermissionGranted(permission_type(), requesting_url);
|
| NotifyPermissionSet(id, requesting_origin, embedding_origin, callback,
|
| true /* persist */, CONTENT_SETTING_ALLOW);
|
| }
|
|
|