| Index: chrome/test/data/push_messaging/test.html
|
| diff --git a/chrome/test/data/push_messaging/test.html b/chrome/test/data/push_messaging/test.html
|
| index dd4315029c577a9b2d66afe66913b219c17f6cfd..3ad79289188b69afc420915c08652c6fad71b372 100644
|
| --- a/chrome/test/data/push_messaging/test.html
|
| +++ b/chrome/test/data/push_messaging/test.html
|
| @@ -4,8 +4,13 @@
|
| <title>Push API Test</title>
|
| <link rel="manifest" href="manifest.json">
|
| <script>
|
| + var pushData = new FutureData();
|
| +
|
| + // Sends data back to the test. This must be in response to an earlier
|
| + // request, but it's ok to respond asynchronously. The request blocks until
|
| + // the response is sent.
|
| function sendResultToTest(result) {
|
| - console.log(result);
|
| + console.log('sendResultToTest: ' + result);
|
| if (window.domAutomationController) {
|
| domAutomationController.send('' + result);
|
| }
|
| @@ -15,21 +20,67 @@
|
| sendResultToTest(error.name + ' - ' + error.message);
|
| }
|
|
|
| + // A container for a single piece of data. The data does not have to be
|
| + // available yet when the getter is called, as all responses to the test are
|
| + // asynchronous.
|
| + function FutureData() {
|
| + this.data = null;
|
| + this.waiting = false;
|
| + }
|
| +
|
| + // Sends the data to the test if it is available. Otherwise sets the
|
| + // |waiting| flag.
|
| + FutureData.prototype.get = function() {
|
| + if (this.data) {
|
| + sendResultToTest(this.data);
|
| + } else {
|
| + this.waiting = true;
|
| + }
|
| + };
|
| +
|
| + // Sets a new data value. If the |waiting| flag is on, it is turned off and
|
| + // the data is sent to the test.
|
| + FutureData.prototype.set = function(data) {
|
| + this.data = data;
|
| + if (this.waiting) {
|
| + sendResultToTest(data);
|
| + this.waiting = false;
|
| + }
|
| + };
|
| +
|
| function registerServiceWorker() {
|
| - navigator.serviceWorker.register('service_worker.js', {scope: './'}).then(function(swRegistration) {
|
| - console.log(swRegistration);
|
| - sendResultToTest('ok');
|
| - }, sendErrorToTest);
|
| + navigator.serviceWorker.register('service_worker.js', {scope: './'}).then(
|
| + function(swRegistration) {
|
| + sendResultToTest('ok - service worker registered');
|
| + }, sendErrorToTest);
|
| }
|
|
|
| function registerPush() {
|
| navigator.serviceWorker.ready.then(function() {
|
| navigator.push.register().then(function(pushRegistration) {
|
| - sendResultToTest(pushRegistration.pushEndpoint + ' - ' + pushRegistration.pushRegistrationId);
|
| + sendResultToTest(pushRegistration.pushEndpoint + ' - ' +
|
| + pushRegistration.pushRegistrationId);
|
| }, sendErrorToTest);
|
| }, sendErrorToTest);
|
| }
|
| +
|
| + function isControlled() {
|
| + if (navigator.serviceWorker.controller) {
|
| + sendResultToTest('true - is controlled');
|
| + } else {
|
| + sendResultToTest('false - is not controlled');
|
| + }
|
| + }
|
| +
|
| + addEventListener('message', function(event) {
|
| + var message = JSON.parse(event.data);
|
| + if (message.type == 'push') {
|
| + pushData.set(message.data);
|
| + }
|
| + }, false);
|
| </script>
|
| </head>
|
| - <body>Push API Test</body>
|
| + <body>
|
| + <h1>Push API Test</h1>
|
| + </body>
|
| </html>
|
|
|