Index: chrome/test/data/push_messaging/push_test.js |
diff --git a/chrome/test/data/push_messaging/push_test.js b/chrome/test/data/push_messaging/push_test.js |
index be99f626758be52981619306697ee0e4d1853747..490febcfad40e27c1f4e906a49ebc3805471a7b8 100644 |
--- a/chrome/test/data/push_messaging/push_test.js |
+++ b/chrome/test/data/push_messaging/push_test.js |
@@ -92,8 +92,23 @@ function removeManifest() { |
} |
} |
+// TODO(xiang): Remove this function after "ready" CL landed. |
+function getReadyRegistration() { |
+ return navigator.serviceWorker.getRegistration().then(function(r) { |
+ if (r.active) |
+ return r; |
+ var worker = r.waiting ? r.waiting : r.installing; |
+ return new Promise(function(resolve) { |
+ worker.onstatechange = function() { |
+ if (worker.state === 'activating') |
+ resolve(r); |
+ }; |
+ }); |
+ }); |
+} |
+ |
function registerPush() { |
- navigator.serviceWorker.ready.then(function(swRegistration) { |
+ getReadyRegistration().then(function(swRegistration) { |
var registerMethodName = |
swRegistration.pushManager.register ? 'register' : 'subscribe'; |
return swRegistration.pushManager[registerMethodName]() |
@@ -106,7 +121,7 @@ function registerPush() { |
} |
function hasPermission() { |
- navigator.serviceWorker.ready.then(function(swRegistration) { |
+ getReadyRegistration().then(function(swRegistration) { |
return swRegistration.pushManager.hasPermission() |
.then(function(permission) { |
sendResultToTest('permission status - ' + permission); |
@@ -138,7 +153,7 @@ function unregister() { |
} |
function hasRegistration() { |
- navigator.serviceWorker.ready.then(function(swRegistration) { |
+ getReadyRegistration().then(function(swRegistration) { |
return swRegistration.pushManager.getSubscription(); |
}).then(function(subscription) { |
sendResultToTest(subscription ? 'true - registered' |