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"></script> |
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 assert_equals(e.data.results, 'foo, bar'); |
16 t.done(); | 16 e.source.postMessage('ACK', host_info['HTTPS_ORIGIN']); |
17 } | 17 } |
18 | 18 |
19 service_worker_unregister_and_register(t, SCRIPT, SCOPE) | 19 service_worker_unregister_and_register(t, SCRIPT, SCOPE) |
20 .then(function(registration) { | 20 .then(function(registration) { |
21 return wait_for_state(t, registration.installing, 'activated'); | 21 return wait_for_state(t, registration.installing, 'activated'); |
22 }) | 22 }) |
23 .then(function() { return with_iframe(SCOPE); }) | 23 .then(function() { return with_iframe(SCOPE); }) |
24 .then(function(frame) { | 24 .then(function(frame) { |
25 var channel = new MessageChannel(); | 25 var channel; |
26 channel.port1.onmessage = t.step_func(function(e) { | 26 |
27 assert_equals(e.data.results, 'finish'); | 27 t.add_cleanup(function() { |
28 frame.remove(); | 28 frame.remove(); |
29 service_worker_unregister_and_done(t, SCOPE); | 29 service_worker_unregister_and_done(t, SCOPE); |
30 }); | 30 }); |
31 frame.contentWindow.postMessage({}, | 31 |
| 32 channel = new MessageChannel(); |
| 33 channel.port1.onmessage = t.step_func(function(e) { |
| 34 assert_equals(e.data.results, 'finish'); |
| 35 t.done(); |
| 36 }); |
| 37 frame.contentWindow.postMessage('START', |
32 host_info['HTTPS_ORIGIN'], | 38 host_info['HTTPS_ORIGIN'], |
33 [channel.port2]); | 39 [channel.port2]); |
34 }) | 40 }) |
35 .catch(unreached_rejection(t)); | 41 .catch(unreached_rejection(t)); |
36 }, 'Verify the response of FetchEvent using XMLHttpRequest'); | 42 }, 'Verify the response of FetchEvent using XMLHttpRequest'); |
37 </script> | 43 </script> |
OLD | NEW |