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 51d8ebbb0a4f05b4233d4301cd7c5dbab359481d..0bae04421a4bb6364659d6bfde02151695ae6d71 100644 |
--- a/LayoutTests/http/tests/serviceworker/resources/test-helpers.js |
+++ b/LayoutTests/http/tests/serviceworker/resources/test-helpers.js |
@@ -59,8 +59,16 @@ function normalizeURL(url) { |
return new URL(url, document.location).toString().replace(/#.*$/, ''); |
} |
+function wait_for_update(test, registration) { |
+ return new Promise(test.step_func(function(resolve) { |
+ registration.addEventListener('updatefound', test.step_func(function() { |
+ resolve(registration.installing); |
+ })); |
+ })); |
+} |
+ |
function wait_for_state(test, worker, state) { |
- return new Promise(test.step_func(function(resolve, reject) { |
+ return new Promise(test.step_func(function(resolve) { |
worker.addEventListener('statechange', test.step_func(function() { |
if (worker.state === state) |
resolve(state); |
@@ -112,6 +120,9 @@ function wait_for_state(test, worker, state) { |
var test = async_test(description); |
service_worker_unregister_and_register(test, url, scope) |
+ .then(function(registration) { |
+ return wait_for_update(test, registration); |
+ }) |
.then(function(worker) { return fetch_tests_from_worker(worker); }) |
.then(function() { return navigator.serviceWorker.unregister(scope); }) |
.then(function() { test.done(); }) |