| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 'use strict'; | 5 'use strict'; |
| 6 | 6 |
| 7 var resultQueue = new ResultQueue(); | 7 var resultQueue = new ResultQueue(); |
| 8 var pushSubscription = null; | 8 var pushSubscription = null; |
| 9 | 9 |
| 10 // NIST P-256 public key made available to tests. Must be an uncompressed | |
| 11 // point in accordance with SEC1 2.3.3. | |
| 12 var applicationServerKey = new Uint8Array([ | |
| 13 0x04, 0x55, 0x52, 0x6A, 0xA5, 0x6E, 0x8E, 0xAA, 0x47, 0x97, 0x36, 0x10, 0xC1, | |
| 14 0x66, 0x3C, 0x1E, 0x65, 0xBF, 0xA1, 0x7B, 0xEE, 0x48, 0xC9, 0xC6, 0xBB, 0xBF, | |
| 15 0x02, 0x18, 0x53, 0x72, 0x1D, 0x0C, 0x7B, 0xA9, 0xE3, 0x11, 0xB7, 0x03, 0x52, | |
| 16 0x21, 0xD3, 0x71, 0x90, 0x13, 0xA8, 0xC1, 0xCF, 0xED, 0x20, 0xF7, 0x1F, 0xD1, | |
| 17 0x7F, 0xF2, 0x76, 0xB6, 0x01, 0x20, 0xD8, 0x35, 0xA5, 0xD9, 0x3C, 0x43, 0xFD | |
| 18 ]); | |
| 19 | |
| 20 var pushSubscriptionOptions = { | 10 var pushSubscriptionOptions = { |
| 21 userVisibleOnly: true | 11 userVisibleOnly: true |
| 22 }; | 12 }; |
| 23 | 13 |
| 24 // Sends data back to the test. This must be in response to an earlier | 14 // Sends data back to the test. This must be in response to an earlier |
| 25 // request, but it's ok to respond asynchronously. The request blocks until | 15 // request, but it's ok to respond asynchronously. The request blocks until |
| 26 // the response is sent. | 16 // the response is sent. |
| 27 function sendResultToTest(result) { | 17 function sendResultToTest(result) { |
| 28 console.log('sendResultToTest: ' + result); | 18 console.log('sendResultToTest: ' + result); |
| 29 if (window.domAutomationController) { | 19 if (window.domAutomationController) { |
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 109 function swapManifestNoSenderId() { | 99 function swapManifestNoSenderId() { |
| 110 var element = document.querySelector('link[rel="manifest"]'); | 100 var element = document.querySelector('link[rel="manifest"]'); |
| 111 if (element) { | 101 if (element) { |
| 112 element.href = 'manifest_no_sender_id.json'; | 102 element.href = 'manifest_no_sender_id.json'; |
| 113 sendResultToTest('sender id removed from manifest'); | 103 sendResultToTest('sender id removed from manifest'); |
| 114 } else { | 104 } else { |
| 115 sendResultToTest('unable to find manifest element'); | 105 sendResultToTest('unable to find manifest element'); |
| 116 } | 106 } |
| 117 } | 107 } |
| 118 | 108 |
| 119 // This is the old style of push subscriptions which we are phasing away | |
| 120 // from, where the subscription used a sender ID instead of public key. | |
| 121 function subscribePushWithoutKey() { | |
| 122 navigator.serviceWorker.ready.then(function(swRegistration) { | |
| 123 return swRegistration.pushManager.subscribe( | |
| 124 pushSubscriptionOptions) | |
| 125 .then(function(subscription) { | |
| 126 pushSubscription = subscription; | |
| 127 sendResultToTest(subscription.endpoint); | |
| 128 }); | |
| 129 }).catch(sendErrorToTest); | |
| 130 } | |
| 131 | |
| 132 function subscribePush() { | 109 function subscribePush() { |
| 133 navigator.serviceWorker.ready.then(function(swRegistration) { | 110 navigator.serviceWorker.ready.then(function(swRegistration) { |
| 134 pushSubscriptionOptions.applicationServerKey = applicationServerKey.buffer; | |
| 135 return swRegistration.pushManager.subscribe(pushSubscriptionOptions) | 111 return swRegistration.pushManager.subscribe(pushSubscriptionOptions) |
| 136 .then(function(subscription) { | 112 .then(function(subscription) { |
| 137 pushSubscription = subscription; | 113 pushSubscription = subscription; |
| 138 sendResultToTest(subscription.endpoint); | |
| 139 }); | |
| 140 }).catch(sendErrorToTest); | |
| 141 } | |
| 142 | |
| 143 function subscribePushBadKey() { | |
| 144 navigator.serviceWorker.ready.then(function(swRegistration) { | |
| 145 var invalidApplicationServerKey = Uint8Array.from(applicationServerKey); | |
| 146 invalidApplicationServerKey[0] = 0x05; | |
| 147 pushSubscriptionOptions.applicationServerKey = | |
| 148 invalidApplicationServerKey.buffer; | |
| 149 return swRegistration.pushManager.subscribe(pushSubscriptionOptions) | |
| 150 .then(function(subscription) { | |
| 151 pushSubscription = subscription; | |
| 152 sendResultToTest(subscription.endpoint); | 114 sendResultToTest(subscription.endpoint); |
| 153 }); | 115 }); |
| 154 }).catch(sendErrorToTest); | 116 }).catch(sendErrorToTest); |
| 155 } | 117 } |
| 156 | 118 |
| 157 function GetP256dh() { | 119 function GetP256dh() { |
| 158 navigator.serviceWorker.ready.then(function(swRegistration) { | 120 navigator.serviceWorker.ready.then(function(swRegistration) { |
| 159 return swRegistration.pushManager.getSubscription() | 121 return swRegistration.pushManager.getSubscription() |
| 160 .then(function(subscription) { | 122 .then(function(subscription) { |
| 161 sendResultToTest(btoa(String.fromCharCode.apply(null, | 123 sendResultToTest(btoa(String.fromCharCode.apply(null, |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 201 sendResultToTest(subscription ? 'true - subscribed' | 163 sendResultToTest(subscription ? 'true - subscribed' |
| 202 : 'false - not subscribed'); | 164 : 'false - not subscribed'); |
| 203 }).catch(sendErrorToTest); | 165 }).catch(sendErrorToTest); |
| 204 } | 166 } |
| 205 | 167 |
| 206 navigator.serviceWorker.addEventListener('message', function(event) { | 168 navigator.serviceWorker.addEventListener('message', function(event) { |
| 207 var message = JSON.parse(event.data); | 169 var message = JSON.parse(event.data); |
| 208 if (message.type == 'push') | 170 if (message.type == 'push') |
| 209 resultQueue.push(message.data); | 171 resultQueue.push(message.data); |
| 210 }, false); | 172 }, false); |
| OLD | NEW |