| 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(); })
|
|
|