Index: chrome/test/data/push_messaging/push_messaging_test_worker_android.js |
diff --git a/chrome/test/data/push_messaging/push_messaging_test_worker_android.js b/chrome/test/data/push_messaging/push_messaging_test_worker_android.js |
index 92c8e5e8e8de791e235ceeb6d24bfa8aa952a868..2494199530b4521361b6608662459fb6e72f9e5d 100644 |
--- a/chrome/test/data/push_messaging/push_messaging_test_worker_android.js |
+++ b/chrome/test/data/push_messaging/push_messaging_test_worker_android.js |
@@ -2,12 +2,45 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
+// The MessagePort to communicate with the client. |
var messagePort = null; |
-onmessage = event => { |
- messagePort = event.data; |
- messagePort.postMessage('ready'); |
+// If true this service worker will show a notification when a push message is |
+// received. |
+var notifyOnPush = true; |
+ |
+// The number of notifications shown. |
+var notificationCounter = 0; |
+ |
+// Sends a message to the test, via the page. |
+function sendToTest(message) { |
+ messagePort.postMessage(JSON.stringify({ |
+ 'type': 'sendToTest', |
+ 'data': message |
+ })); |
+} |
+ |
+self.onmessage = event => { |
+ if (event.data instanceof MessagePort) { |
+ messagePort = event.data; |
+ messagePort.postMessage('ready'); |
+ return; |
+ } |
+ |
+ var message = JSON.parse(event.data); |
+ if (message.type == 'setNotifyOnPush') { |
+ notifyOnPush = message.data; |
+ sendToTest('setNotifyOnPush ' + message.data + ' ok'); |
+ return; |
+ } |
+ |
+ sendToTest('Unknown message type.'); |
}; |
-onpush = event => |
- event.waitUntil(registration.showNotification('push notification')); |
+self.onpush = event => { |
+ if (notifyOnPush) { |
+ notificationCounter++; |
+ event.waitUntil(registration.showNotification( |
+ 'push notification ' + notificationCounter)); |
+ } |
+}; |