Index: chrome/test/data/extensions/api_test/service_worker/update_without_skip_waiting/v2/page.js |
diff --git a/chrome/test/data/extensions/api_test/service_worker/update_without_skip_waiting/v2/page.js b/chrome/test/data/extensions/api_test/service_worker/update_without_skip_waiting/v2/page.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..ac755f70dc9e01a9b02eae14ef7a065ee3148447 |
--- /dev/null |
+++ b/chrome/test/data/extensions/api_test/service_worker/update_without_skip_waiting/v2/page.js |
@@ -0,0 +1,41 @@ |
+// Copyright 2015 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+var controllerChangePromise = new Promise(function(resolve, reject) { |
+ navigator.serviceWorker.oncontrollerchange = function(e) { |
+ navigator.serviceWorker.ready.then(function(registration) { |
+ resolve(registration.active); |
+ }).catch(function(err) { |
+ reject('oncontrollerchange failure'); |
+ }); |
+ }; |
+}); |
falken
2015/12/09 03:59:16
Remove this dead code.
lazyboy
2015/12/09 21:47:56
Done.
|
+ |
+var registerServiceWorkerPromise = new Promise(function(resolve, reject) { |
+ var serviceWorkerRegistration; |
+ navigator.serviceWorker.register('sw.js').then(function() { |
+ return navigator.serviceWorker.ready; |
+ }).then(function(registration) { |
+ serviceWorkerRegistration = registration; |
+ return registration.update(); |
+ }).then(function() { |
+ resolve(serviceWorkerRegistration.active); |
falken
2015/12/09 03:59:16
This is kind of tricky. The update() promise resol
lazyboy
2015/12/09 21:47:56
OK, I'm waiting for registration.onupdatefound now
|
+ }).catch(function(err) { |
+ reject(err); |
+ }); |
+}); |
+ |
+Promise.all([registerServiceWorkerPromise]) |
+ .then(function(results) { |
+ var serviceWorker = results[0]; |
+ var channel = new MessageChannel(); |
+ channel.port1.onmessage = function(e) { |
+ console.log('Message received from SW: ' + e.data); |
+ chrome.test.sendMessage(e.data); |
+ }; |
+ serviceWorker.postMessage('ping', [channel.port2]); |
+}).catch(function(err) { |
+ console.log(err); |
+ chrome.test.sendMessage('FAILURE_V2'); |
+}); |