OLD | NEW |
---|---|
1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
2 <title>Service Worker: the response of FetchEvent using XMLHttpRequest</title> | 2 <title>Service Worker: the response of FetchEvent using XMLHttpRequest</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="/common/get-host-info.sub.js"></script> | 5 <script src="/common/get-host-info.sub.js"></script> |
6 <script src="resources/test-helpers.sub.js?pipe=sub"></script> | 6 <script src="resources/test-helpers.sub.js?pipe=sub"></script> |
Marijn Kruisselbrink
2017/05/05 23:59:00
nit: don't need pipe=sub
mike3
2017/05/08 18:41:40
Done.
| |
7 <script> | 7 <script> |
8 async_test(function(t) { | 8 async_test(function(t) { |
9 var SCOPE = 'resources/fetch-response-xhr-iframe.https.html'; | 9 var SCOPE = 'resources/fetch-response-xhr-iframe.https.html'; |
10 var SCRIPT = 'resources/fetch-response-xhr-worker.js'; | 10 var SCRIPT = 'resources/fetch-response-xhr-worker.js'; |
11 var host_info = get_host_info(); | 11 var host_info = get_host_info(); |
12 | 12 |
13 window.addEventListener('message', t.step_func(on_message), false); | 13 window.addEventListener('message', t.step_func(on_message), false); |
14 function on_message(e) { | 14 function on_message(e) { |
15 assert_equals(e.data.results, 'foo, bar'); | 15 t.step(function() { |
Marijn Kruisselbrink
2017/05/05 23:59:00
why this t.step? on_message is already wrapped in
mike3
2017/05/08 18:41:41
Using `t.step` like this ensures that the protocol
| |
16 t.done(); | 16 assert_equals(e.data.results, 'foo, bar'); |
17 }); | |
18 e.source.postMessage('ACK', host_info['HTTPS_ORIGIN']); | |
17 } | 19 } |
18 | 20 |
19 service_worker_unregister_and_register(t, SCRIPT, SCOPE) | 21 service_worker_unregister_and_register(t, SCRIPT, SCOPE) |
20 .then(function(registration) { | 22 .then(function(registration) { |
21 return wait_for_state(t, registration.installing, 'activated'); | 23 return wait_for_state(t, registration.installing, 'activated'); |
22 }) | 24 }) |
23 .then(function() { return with_iframe(SCOPE); }) | 25 .then(function() { return with_iframe(SCOPE); }) |
24 .then(function(frame) { | 26 .then(function(frame) { |
25 var channel = new MessageChannel(); | 27 var channel; |
26 channel.port1.onmessage = t.step_func(function(e) { | 28 |
27 assert_equals(e.data.results, 'finish'); | 29 t.add_cleanup(function() { |
28 frame.remove(); | 30 frame.remove(); |
29 service_worker_unregister_and_done(t, SCOPE); | 31 service_worker_unregister_and_done(t, SCOPE); |
30 }); | 32 }); |
31 frame.contentWindow.postMessage({}, | 33 |
34 channel = new MessageChannel(); | |
35 channel.port1.onmessage = t.step_func(function(e) { | |
36 assert_equals(e.data.results, 'finish'); | |
37 t.done(); | |
38 }); | |
39 frame.contentWindow.postMessage('START', | |
32 host_info['HTTPS_ORIGIN'], | 40 host_info['HTTPS_ORIGIN'], |
33 [channel.port2]); | 41 [channel.port2]); |
34 }) | 42 }) |
35 .catch(unreached_rejection(t)); | 43 .catch(unreached_rejection(t)); |
36 }, 'Verify the response of FetchEvent using XMLHttpRequest'); | 44 }, 'Verify the response of FetchEvent using XMLHttpRequest'); |
37 </script> | 45 </script> |
OLD | NEW |