OLD | NEW |
1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
2 <title>InstallPhaseEvent: waitUntil</title> | 2 <title>InstallPhaseEvent: waitUntil</title> |
3 <script src="../resources/testharness.js"></script> | 3 <script src="../resources/testharness.js"></script> |
4 <script src="../resources/testharnessreport.js"></script> | 4 <script src="../resources/testharnessreport.js"></script> |
5 <script src="resources/test-helpers.js"></script> | 5 <script src="resources/test-helpers.js"></script> |
6 <script> | 6 <script> |
| 7 // FIXME: Use the test-helpers.js version once it can handle workers that |
| 8 // don't install successfully. |
| 9 function unregisterAndRegister(test, script, scope) { |
| 10 var empty_worker = 'resources/empty-worker.js'; |
| 11 return navigator.serviceWorker.register(empty_worker, {scope: scope}) |
| 12 .then(function(registration) { |
| 13 return registration.unregister(); |
| 14 }) |
| 15 .then(function() { |
| 16 return navigator.serviceWorker.register(script, {scope: scope}); |
| 17 }) |
| 18 .catch(unreached_rejection(test)); |
| 19 } |
| 20 |
7 function runTest(test, scope, onRegister) { | 21 function runTest(test, scope, onRegister) { |
8 var script = 'resources/install-phase-event-waituntil.js'; | 22 var script = 'resources/install-phase-event-waituntil.js'; |
9 test.step(function() { | 23 test.step(function() { |
10 service_worker_unregister_and_register(test, script, scope) | 24 unregisterAndRegister(test, script, scope) |
11 .then(function(registration) { | 25 .then(function(registration) { |
12 return wait_for_update(test, registration); | 26 return wait_for_update(test, registration); |
13 }) | 27 }) |
14 .then(test.step_func(onRegister)); | 28 .then(test.step_func(onRegister)); |
15 }); | 29 }); |
16 } | 30 } |
17 | 31 |
18 function syncWorker(test, worker, obj) { | 32 function syncWorker(test, worker, obj) { |
19 var channel = new MessageChannel(); | 33 var channel = new MessageChannel(); |
20 channel.port1.onmessage = test.step_func(function(e) { | 34 channel.port1.onmessage = test.step_func(function(e) { |
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
113 var scope = 'activate-reject-precedence'; | 127 var scope = 'activate-reject-precedence'; |
114 var onRegister = function(worker) { | 128 var onRegister = function(worker) { |
115 worker.onstatechange = t.step_func(function() { | 129 worker.onstatechange = t.step_func(function() { |
116 if (worker.state == 'redundant') | 130 if (worker.state == 'redundant') |
117 service_worker_unregister_and_done(t, scope); | 131 service_worker_unregister_and_done(t, scope); |
118 }); | 132 }); |
119 }; | 133 }; |
120 runTest(t, scope, onRegister); | 134 runTest(t, scope, onRegister); |
121 }, 'Test InstallPhaseEvent waitUntil reject precedence.'); | 135 }, 'Test InstallPhaseEvent waitUntil reject precedence.'); |
122 </script> | 136 </script> |
OLD | NEW |