| Index: LayoutTests/http/tests/serviceworker/unregister-then-register.html
|
| diff --git a/LayoutTests/http/tests/serviceworker/unregister-then-register.html b/LayoutTests/http/tests/serviceworker/unregister-then-register.html
|
| index c15e86a04c29168976fe7f97ef497e39135dd7c1..25ff0c47ba3ce8121abce7cf6ae509b7c8bb5dd1 100644
|
| --- a/LayoutTests/http/tests/serviceworker/unregister-then-register.html
|
| +++ b/LayoutTests/http/tests/serviceworker/unregister-then-register.html
|
| @@ -8,24 +8,24 @@ var worker_url = 'resources/empty-worker.js';
|
| async_test(function(t) {
|
| var scope = 'scope/re-register-resolves-to-new-value';
|
| var iframe;
|
| - var previous_registration;
|
| + var registration;
|
|
|
| service_worker_unregister_and_register(t, worker_url, scope)
|
| - .then(function(registration) {
|
| - previous_registration = registration;
|
| + .then(function(r) {
|
| + registration = r;
|
| return wait_for_update(t, registration);
|
| })
|
| .then(function(worker) {
|
| return wait_for_state(t, worker, 'activated');
|
| })
|
| .then(function() {
|
| - return navigator.serviceWorker.unregister(scope);
|
| + return registration.unregister();
|
| })
|
| .then(function() {
|
| return navigator.serviceWorker.register(worker_url, { scope: scope });
|
| })
|
| - .then(function(registration) {
|
| - assert_not_equals(previous_registration, registration,
|
| + .then(function(new_registration) {
|
| + assert_not_equals(registration, new_registration,
|
| 'register should resolve to a new value');
|
| service_worker_unregister_and_done(t, scope);
|
| })
|
| @@ -34,11 +34,11 @@ async_test(function(t) {
|
|
|
| async_test(function(t) {
|
| var scope = 'scope/re-register-while-old-registration-in-use';
|
| - var previous_registration;
|
| + var registration;
|
|
|
| service_worker_unregister_and_register(t, worker_url, scope)
|
| - .then(function(registration) {
|
| - previous_registration = registration;
|
| + .then(function(r) {
|
| + registration = r;
|
| return wait_for_update(t, registration);
|
| })
|
| .then(function(worker) {
|
| @@ -48,13 +48,13 @@ async_test(function(t) {
|
| return with_iframe(scope);
|
| })
|
| .then(function(frame) {
|
| - return navigator.serviceWorker.unregister(scope);
|
| + return registration.unregister();
|
| })
|
| .then(function() {
|
| return navigator.serviceWorker.register(worker_url, { scope: scope });
|
| })
|
| - .then(function(registration) {
|
| - assert_equals(previous_registration, registration,
|
| + .then(function(new_registration) {
|
| + assert_equals(registration, new_registration,
|
| 'register should resolve to the same value');
|
| service_worker_unregister_and_done(t, scope);
|
| })
|
| @@ -65,21 +65,24 @@ async_test(function(t) {
|
| async_test(function(t) {
|
| var scope = 'scope/re-register-does-not-affect-existing-controllee';
|
| var iframe;
|
| + var registration;
|
| + var controller;
|
|
|
| service_worker_unregister_and_register(t, worker_url, scope)
|
| - .then(function(registration) {
|
| + .then(function(r) {
|
| + registration = r;
|
| return wait_for_update(t, registration);
|
| })
|
| - .then(function(registered_worker) {
|
| - return wait_for_state(t, registered_worker, 'activated');
|
| + .then(function(worker) {
|
| + return wait_for_state(t, worker, 'activated');
|
| })
|
| .then(function() {
|
| return with_iframe(scope);
|
| })
|
| .then(function(frame) {
|
| iframe = frame;
|
| - worker = iframe.contentWindow.navigator.serviceWorker.controller;
|
| - return navigator.serviceWorker.unregister(scope);
|
| + controller = iframe.contentWindow.navigator.serviceWorker.controller;
|
| + return registration.unregister();
|
| })
|
| .then(function() {
|
| return navigator.serviceWorker.register(worker_url, { scope: scope });
|
| @@ -89,7 +92,8 @@ async_test(function(t) {
|
| 'installing version is null');
|
| assert_equals(registration.waiting, null, 'waiting version is null');
|
| assert_equals(
|
| - iframe.contentWindow.navigator.serviceWorker.controller, worker,
|
| + iframe.contentWindow.navigator.serviceWorker.controller,
|
| + controller,
|
| 'the worker from the first registration is the controller');
|
| service_worker_unregister_and_done(t, scope);
|
| })
|
| @@ -99,27 +103,27 @@ async_test(function(t) {
|
| async_test(function(t) {
|
| var scope = 'scope/resurrection';
|
| var iframe;
|
| - var worker;
|
| + var registration;
|
|
|
| service_worker_unregister_and_register(t, worker_url, scope)
|
| - .then(function(registration) {
|
| + .then(function(r) {
|
| + registration = r;
|
| return wait_for_update(t, registration);
|
| })
|
| - .then(function(registered_worker) {
|
| - return wait_for_state(t, registered_worker, 'activated');
|
| + .then(function(worker) {
|
| + return wait_for_state(t, worker, 'activated');
|
| })
|
| .then(function() {
|
| return with_iframe(scope);
|
| })
|
| .then(function(frame) {
|
| iframe = frame;
|
| - worker = iframe.contentWindow.navigator.serviceWorker.controller;
|
| - return navigator.serviceWorker.unregister(scope);
|
| + return registration.unregister();
|
| })
|
| .then(function() {
|
| return navigator.serviceWorker.register(worker_url, { scope: scope });
|
| })
|
| - .then(function(registered_worker) {
|
| + .then(function() {
|
| return unload_iframe(iframe);
|
| })
|
| .then(function() {
|
| @@ -135,134 +139,4 @@ async_test(function(t) {
|
| })
|
| .catch(unreached_rejection(t));
|
| }, 'Unregister then register resurrects the registration');
|
| -
|
| -async_test(function(t) {
|
| - var scope = 'scope/new-worker';
|
| - var new_worker_url = worker_url + '?new';
|
| - var iframe;
|
| -
|
| - service_worker_unregister_and_register(t, worker_url, scope)
|
| - .then(function(registration) {
|
| - return wait_for_update(t, registration);
|
| - })
|
| - .then(function(worker) {
|
| - return wait_for_state(t, worker, 'activated');
|
| - })
|
| - .then(function() {
|
| - return with_iframe(scope);
|
| - })
|
| - .then(function(frame) {
|
| - iframe = frame;
|
| - return navigator.serviceWorker.unregister(scope);
|
| - })
|
| - .then(function() {
|
| - // FIXME: Register should not resolve until controllees are unloaded.
|
| - return navigator.serviceWorker.register(new_worker_url,
|
| - { scope: scope });
|
| - })
|
| - .then(function(registration) {
|
| - return wait_for_update(t, registration);
|
| - })
|
| - .then(function(worker) {
|
| - return wait_for_state(t, worker, 'activated');
|
| - })
|
| - .then(function() {
|
| - return with_iframe(scope);
|
| - })
|
| - .then(function(frame) {
|
| - assert_equals(frame.contentWindow.navigator.serviceWorker.controller.scriptURL,
|
| - normalizeURL(new_worker_url),
|
| - 'document controller is the new worker');
|
| - service_worker_unregister_and_done(t, scope);
|
| - })
|
| - .catch(unreached_rejection(t));
|
| -}, 'Unregister then register a new script URL');
|
| -
|
| -async_test(function(t) {
|
| - var scope = 'scope/non-existent-worker';
|
| - var iframe;
|
| -
|
| - service_worker_unregister_and_register(t, worker_url, scope)
|
| - .then(function(registration) {
|
| - return wait_for_update(t, registration);
|
| - })
|
| - .then(function(worker) {
|
| - return wait_for_state(t, worker, 'activated');
|
| - })
|
| - .then(function() {
|
| - return with_iframe(scope);
|
| - })
|
| - .then(function(frame) {
|
| - iframe = frame;
|
| - return navigator.serviceWorker.unregister(scope);
|
| - })
|
| - .then(function() {
|
| - // FIXME: Register should not resolve until controllees are unloaded.
|
| - return navigator.serviceWorker.register('this-will-404',
|
| - { scope: scope });
|
| - })
|
| - .then(
|
| - function() {
|
| - assert_unreached('register should reject the promise');
|
| - },
|
| - function() {
|
| - return unload_iframe(iframe);
|
| - })
|
| - .then(function() {
|
| - return with_iframe(scope);
|
| - })
|
| - .then(function(frame) {
|
| - assert_equals(frame.contentWindow.navigator.serviceWorker.controller,
|
| - null,
|
| - 'document should not load with a controller');
|
| - service_worker_unregister_and_done(t, scope);
|
| - })
|
| - .catch(unreached_rejection(t));
|
| -}, 'Registering a new script URL that 404s does not resurrect an ' +
|
| - 'unregistered registration');
|
| -
|
| -async_test(function(t) {
|
| - var scope = 'scope/reject-install-worker';
|
| - var iframe;
|
| -
|
| - service_worker_unregister_and_register(t, worker_url, scope)
|
| - .then(function(registration) {
|
| - return wait_for_update(t, registration);
|
| - })
|
| - .then(function(worker) {
|
| - return wait_for_state(t, worker, 'activated');
|
| - })
|
| - .then(function() {
|
| - return with_iframe(scope);
|
| - })
|
| - .then(function(frame) {
|
| - iframe = frame;
|
| - return navigator.serviceWorker.unregister();
|
| - })
|
| - .then(function() {
|
| - // FIXME: Register should not resolve until controllees are unloaded.
|
| - return navigator.serviceWorker.register(
|
| - 'resources/reject-install-worker.js', { scope: scope });
|
| - })
|
| - .then(function(registration) {
|
| - return wait_for_update(t, registration);
|
| - })
|
| - .then(function(worker) {
|
| - return wait_for_state(t, worker, 'redundant');
|
| - })
|
| - .then(function(worker) {
|
| - return unload_iframe(iframe);
|
| - })
|
| - .then(function() {
|
| - return with_iframe(scope);
|
| - })
|
| - .then(function(frame) {
|
| - assert_equals(frame.contentWindow.navigator.serviceWorker.controller,
|
| - null,
|
| - 'document should not load with a controller');
|
| - service_worker_unregister_and_done(t, scope);
|
| - })
|
| - .catch(unreached_rejection(t));
|
| - }, 'Registering a new script URL that fails to install does not resurrect ' +
|
| - 'an unregistered registration');
|
| </script>
|
|
|