Index: LayoutTests/http/tests/serviceworker/resources/test-helpers.js |
diff --git a/LayoutTests/http/tests/serviceworker/resources/test-helpers.js b/LayoutTests/http/tests/serviceworker/resources/test-helpers.js |
index 0bae04421a4bb6364659d6bfde02151695ae6d71..bd9f888e9d406f58ded0513e4ad25f0bb12caae0 100644 |
--- a/LayoutTests/http/tests/serviceworker/resources/test-helpers.js |
+++ b/LayoutTests/http/tests/serviceworker/resources/test-helpers.js |
@@ -1,17 +1,19 @@ |
// Adapter for testharness.js-style tests with Service Workers |
+// Can only be used with a worker that installs successfully, since it |
+// first registers to acquire a ServiceWorkerRegistration object to |
+// unregister. |
+// FIXME: Use getRegistration() when implemented. |
function service_worker_unregister_and_register(test, url, scope) { |
- var options = scope ? { scope: scope } : {}; |
- return navigator.serviceWorker.unregister(scope).then( |
- test.step_func(function() { |
- return navigator.serviceWorker.register(url, options); |
- }), |
- unreached_rejection(test, 'Unregister should not fail') |
- ).then(test.step_func(function(worker) { |
- return Promise.resolve(worker); |
- }), |
- unreached_rejection(test, 'Registration should not fail') |
- ); |
+ var options = scope ? { scope: scope } : {}; |
+ return navigator.serviceWorker.register(url, options) |
+ .then(function(registration) { |
+ return registration.unregister(); |
+ }) |
+ .then(function() { |
+ return navigator.serviceWorker.register(url, options); |
+ }) |
+ .catch(unreached_rejection(test)); |
} |
function service_worker_unregister_and_done(test, scope) { |