2 <script src=
"../resources/testharness.js"></script>
3 <script src=
"../resources/testharness-helpers.js"></script>
4 <script src=
"../resources/testharnessreport.js"></script>
5 <script src=
"resources/test-helpers.js"></script>
7 promise_test(function(t
) {
8 var script
= 'resources/extendable-event-async-waituntil.js';
9 var scope
= 'resources/async-waituntil';
12 return service_worker_unregister_and_register(t
, script
, scope
)
13 .then(function(registration
) {
14 worker
= registration
.installing
;
15 return wait_for_state(t
, worker
, 'activated');
18 var channel
= new MessageChannel();
19 var saw_message
= new Promise(function(resolve
) {
20 channel
.port1
.onmessage = function(e
) { resolve(e
.data
); }
22 worker
.postMessage({port
: channel
.port2
}, [channel
.port2
]);
25 .then(function(message
) {
26 assert_equals(message
, 'PASS');
27 return service_worker_unregister_and_done(t
, scope
);
29 }, 'Calling waitUntil asynchronously throws an exception');