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

Side by Side Diff: chrome/test/data/push_messaging/push_messaging_test_android.html

Issue 1485743002: Push API: test that default notification is shown on Android when needed. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@PushMessagingInstrumentationTest
Patch Set: Address peter's comments. Created 5 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>Android Push API instrumentation test page</title> 5 <title>Android Push API instrumentation test page</title>
6 <link rel="manifest" href="manifest.json"> 6 <link rel="manifest" href="manifest.json">
7 </head> 7 </head>
8 <body> 8 <body>
9 <!-- This page is used by the PushMessagingTest instrumentation test. --> 9 <!-- This page is used by the PushMessagingTest instrumentation test. -->
10 <script src="../notifications/notification_test_utils.js"></script> 10 <script src="../notifications/notification_test_utils.js"></script>
11 <script> 11 <script>
12 // PushMessagingTest observes changes to the tab title as an asynchronous 12 // PushMessagingTest observes changes to the tab title as an asynchronous
13 // response mechanism from JavaScript to Java. 13 // response mechanism from JavaScript to Java.
14 // TODO(mvanouwerkerk): Use DomAutomationController - crbug.com/562487 14 // TODO(mvanouwerkerk): Use DomAutomationController - crbug.com/562487
15 function respondToTest(result) { 15 var errorCounter = 0;
16 document.title = result; 16 function sendToTest(message) {
17 // Duplicate messages cannot be detected by the test, don't send them.
18 if (message == document.title) {
19 console.log('Duplicate message: ' + message);
20 message =
21 'Error ' + errorCounter + ' - duplicate message: ' + message;
22 errorCounter++;
23 }
24 document.title = message;
17 } 25 }
18 26
27 // Installs a service worker, subscribes to push, and sets up a messaging
28 // mechanism between this page and the service worker. Called by the test.
19 function subscribePush() { 29 function subscribePush() {
20 GetActivatedServiceWorker( 30 GetActivatedServiceWorker(
21 'push_messaging_test_worker_android.js', location.pathname) 31 'push_messaging_test_worker_android.js', location.pathname)
22 .then(registration => 32 .then(registration =>
23 registration.pushManager.subscribe({ userVisibleOnly: true })) 33 registration.pushManager.subscribe({ userVisibleOnly: true }))
24 .then(subscription => respondToTest('subscribe ok')) 34 .then(subscription => {
25 .catch(error => respondToTest('subscribe fail: ' + error)); 35 setupMessageHandler();
36 sendToTest('subscribe ok');
37 })
38 .catch(error => sendToTest('subscribe fail: ' + error));
39 }
40
41 // Sets whether the service worker should show a notification when it
42 // receives a push message or not. Called by the test.
43 function setNotifyOnPush(notify) {
44 sendToServiceWorker('setNotifyOnPush', notify);
45 }
46
47 // Sends a message of type |type| with a data payload of |data| to the
48 // service worker.
49 function sendToServiceWorker(type, data) {
50 navigator.serviceWorker.ready
51 .then(registration => {
Bernhard Bauer 2015/12/11 12:28:42 Nit: I think this should be indented two more spac
Michael van Ouwerkerk 2015/12/11 16:05:56 Done.
52 registration.active.postMessage(
53 JSON.stringify({'type': type, 'data': data}));
54 });
55 }
56
57 // The data for messages of type sendToTest will be passed to the test.
58 function setupMessageHandler() {
59 messagePort.addEventListener('message', event => {
60 var message = JSON.parse(event.data);
61 if (message.type == 'sendToTest') {
62 sendToTest(message.data);
63 }
64 });
26 } 65 }
27 </script> 66 </script>
28 </body> 67 </body>
29 </html> 68 </html>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698