diff options
author | mlamouri <mlamouri@chromium.org> | 2015-03-05 08:56:02 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-03-05 16:57:37 +0000 |
commit | 504d249963f4e47add3d32dfb98a45bc967fad04 (patch) | |
tree | ef508c52d1b1ad3f2f7502fa273d5a12503c12e9 /content/renderer/notification_permission_dispatcher.cc | |
parent | 3dca802a2fb55ec7c998d392e0c2d7fabbef0bb4 (diff) | |
download | chromium_src-504d249963f4e47add3d32dfb98a45bc967fad04.zip chromium_src-504d249963f4e47add3d32dfb98a45bc967fad04.tar.gz chromium_src-504d249963f4e47add3d32dfb98a45bc967fad04.tar.bz2 |
PermissionService::RequestPermission returns the new permission status.
This is also using this new information for the Notifications API.
This is a web exposed behaviour: it is now possible for a web page to know
whether a Notifications permission was granted, denied or dismissed/ignored.
BUG=434547,436414
Review URL: https://codereview.chromium.org/794203004
Cr-Commit-Position: refs/heads/master@{#319265}
Diffstat (limited to 'content/renderer/notification_permission_dispatcher.cc')
-rw-r--r-- | content/renderer/notification_permission_dispatcher.cc | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/content/renderer/notification_permission_dispatcher.cc b/content/renderer/notification_permission_dispatcher.cc index fae8aad..60cac36 100644 --- a/content/renderer/notification_permission_dispatcher.cc +++ b/content/renderer/notification_permission_dispatcher.cc @@ -46,13 +46,19 @@ void NotificationPermissionDispatcher::OnPermissionRequestComplete( pending_requests_.Lookup(request_id); DCHECK(callback); - // TODO(mlamouri): we should have a switch to handle all cases but for now, - // the Notification code is assuming allowed/denied. - // See http://crbug.com/434547 and http://crbug.com/436414 blink::WebNotificationPermission permission = - status == PERMISSION_STATUS_GRANTED - ? blink::WebNotificationPermissionAllowed - : blink::WebNotificationPermissionDenied; + blink::WebNotificationPermissionDefault; + switch (status) { + case PERMISSION_STATUS_GRANTED: + permission = blink::WebNotificationPermissionAllowed; + break; + case PERMISSION_STATUS_DENIED: + permission = blink::WebNotificationPermissionDenied; + break; + case PERMISSION_STATUS_ASK: + permission = blink::WebNotificationPermissionDefault; + break; + } callback->permissionRequestComplete(permission); pending_requests_.Remove(request_id); |