Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(52)

Side by Side Diff: chrome/test/data/notifications/platform_notification_service.html

Issue 2534443002: Use notification display service to collect persistent notifications. (Closed)
Patch Set: revert unit test Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 <!doctype html> 1 <!doctype html>
2 <html lang="en"> 2 <html lang="en">
3 <head> 3 <head>
4 <meta charset="utf-8"> 4 <meta charset="utf-8">
5 <title>Platform Notification Service BrowserTest service page</title> 5 <title>Platform Notification Service BrowserTest service page</title>
6 </head> 6 </head>
7 <body> 7 <body>
8 <!-- This page is intended to be used by the cross-platform 8 <!-- This page is intended to be used by the cross-platform
9 PlatformNotificationServiceBrowserTest. --> 9 PlatformNotificationServiceBrowserTest. -->
10 <script src="notification_test_utils.js"></script> 10 <script src="notification_test_utils.js"></script>
11 <script> 11 <script>
12 var messagePort = null, 12 var messagePort = null,
13 messageStack = [], 13 messageStack = [],
14 expectingMessage = false; 14 expectingMessage = false;
15 15
16 // Requests permission to display Web Notifications. Will return the 16 // Requests permission to display Web Notifications. Will return the
17 // permission level to the DOM Automation Controller. 17 // permission level to the DOM Automation Controller.
18 function RequestPermission() { 18 function RequestPermission() {
19 Notification.requestPermission(function (level) { 19 Notification.requestPermission(function (level) {
20 domAutomationController.send(level); 20 domAutomationController.send(level);
21 }); 21 });
22 } 22 }
23 23
24 function DisplayNonPersistentNotification(title, options) {
25 options = options || { body: 'Hello, world!',
26 icon: 'icon.png' };
27 var notification = null;
28 try {
29 notification = new Notification(title, options);
30 domAutomationController.send('ok');
31 } catch (error) {
32 domAutomationController.send('' + error);
33 }
Peter Beverloo 2016/12/02 13:43:34 There's no reason for the Notification constructor
Miguel Garcia 2016/12/06 12:01:18 It will throw on Android. Then again these tests a
34 }
35
24 // Renews the registered Service Worker registration for this page, then 36 // Renews the registered Service Worker registration for this page, then
25 // displays a notification on the activated ServiceWorkerRegistration. 37 // displays a notification on the activated ServiceWorkerRegistration.
26 function DisplayPersistentNotification(title, options) { 38 function DisplayPersistentNotification(title, options) {
27 options = options || { body: 'Hello, world!', 39 options = options || { body: 'Hello, world!',
28 icon: 'icon.png' }; 40 icon: 'icon.png' };
29 41
30 GetActivatedServiceWorker('platform_notification_service.js', 42 GetActivatedServiceWorker('platform_notification_service.js',
31 location.pathname) 43 location.pathname)
32 .then(function (registration) { 44 .then(function (registration) {
33 return registration.showNotification(title, options); 45 return registration.showNotification(title, options);
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
120 function DisplayPersistentNotificationWithReplyButton() { 132 function DisplayPersistentNotificationWithReplyButton() {
121 DisplayPersistentNotification('action_button_click', { 133 DisplayPersistentNotification('action_button_click', {
122 body: 'Contents', 134 body: 'Contents',
123 actions: [ 135 actions: [
124 { action: 'actionId1', title: 'actionTitle1', icon: 'icon.png', 136 { action: 'actionId1', title: 'actionTitle1', icon: 'icon.png',
125 type: 'text' } 137 type: 'text' }
126 ] 138 ]
127 }); 139 });
128 } 140 }
129 141
142 // Gets a comma separated list of currently displayed notification titles
143 function GetDisplayedNotifications() {
144 GetActivatedServiceWorker('platform_notification_service.js',
145 location.pathname)
146 .then(function (sw) {
147 return sw.getNotifications();
148 }).then(function (notifications) {
149 var notificationResult = '';
150 for (var i = 0; i < notifications.length; ++i) {
151 notificationResult = notificationResult.concat(notifications[i]. title);
152 if (i < (notifications.length -1))
153 notificationResult = notificationResult.concat(',');
154 }
155 if (expectingMessage)
156 domAutomationController.send(notificationResult);
157 else
158 messageStack.push(notificationResult);
159
160 domAutomationController.send('ok');
161 }).catch(function (error) {
162 domAutomationController.send('' + error);
163 });
Peter Beverloo 2016/12/02 13:43:34 Please stick to Chromium's two-space indentation r
164 }
165
130 // Returns the latest received message from the worker. If no message has 166 // Returns the latest received message from the worker. If no message has
131 // been received, nothing will be done. For successfully registered 167 // been received, nothing will be done. For successfully registered
132 // Service Workers this is OK, however, since the "message" event handler 168 // Service Workers this is OK, however, since the "message" event handler
133 // in DisplayPersistentNotification will take care of notifying the DOM 169 // in DisplayPersistentNotification will take care of notifying the DOM
134 // Automation Controller instead. 170 // Automation Controller instead.
135 function GetMessageFromWorker() { 171 function GetMessageFromWorker() {
136 if (!messageStack.length) { 172 if (!messageStack.length) {
137 expectingMessage = true; 173 expectingMessage = true;
138 return; 174 return;
139 } 175 }
140 176
141 domAutomationController.send('' + messageStack.pop()); 177 domAutomationController.send('' + messageStack.pop());
142 } 178 }
143 </script> 179 </script>
144 </body> 180 </body>
145 </html> 181 </html>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698