summaryrefslogtreecommitdiffstats
path: root/content/renderer/notification_permission_dispatcher.cc
diff options
context:
space:
mode:
authormlamouri <mlamouri@chromium.org>2015-03-05 08:56:02 -0800
committerCommit bot <commit-bot@chromium.org>2015-03-05 16:57:37 +0000
commit504d249963f4e47add3d32dfb98a45bc967fad04 (patch)
treeef508c52d1b1ad3f2f7502fa273d5a12503c12e9 /content/renderer/notification_permission_dispatcher.cc
parent3dca802a2fb55ec7c998d392e0c2d7fabbef0bb4 (diff)
downloadchromium_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.cc18
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);