| OLD | NEW |
| 1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
| 2 <script src="/js-test-resources/js-test.js"></script> | 2 <title>Service Worker: postMessage</title> |
| 3 <script src="../resources/testharness.js"></script> |
| 4 <script src="../resources/testharnessreport.js"></script> |
| 3 <script> | 5 <script> |
| 6 var test = async_test('postMessage to a ServiceWorker (and back via MessagePort)
'); |
| 7 test.step(function() { |
| 4 | 8 |
| 5 description("Tests postMessage to and from a ServiceWorker"); | 9 navigator.serviceWorker.register('resources/postmessage-worker.js').then( |
| 6 var jsTestIsAsync = true; | 10 test.step_func(function(worker) { |
| 11 var messageChannel = new MessageChannel(); |
| 12 messageChannel.port1.onmessage = test.step_func(onMessage); |
| 7 | 13 |
| 8 evalAndLog("messageChannel = new MessageChannel()"); | 14 worker.postMessage({port: messageChannel.port2}, [messageChannel.por
t2]); |
| 9 evalAndLog("messageChannel.port1.onmessage = onMessageHandler"); | |
| 10 | 15 |
| 11 debug(""); | 16 worker.postMessage({value: 1}); |
| 12 evalAndLog("navigator.serviceWorker.register('postmessage-worker.js')").then( | 17 worker.postMessage({value: 2}); |
| 13 function(result) { | 18 worker.postMessage({done: true}); |
| 14 serviceWorker = result; | 19 }), |
| 20 test.step_func(function(reason) { |
| 21 assert_equals(reason.name, 'DisabledError'); |
| 22 test.done(); |
| 23 })); |
| 15 | 24 |
| 16 evalAndLog("serviceWorker.postMessage({port: messageChannel.port2}, [mes
sageChannel.port2])"); | 25 var result = []; |
| 17 evalAndLog("serviceWorker.postMessage({value: 1})"); | 26 var expected = [ |
| 18 evalAndLog("serviceWorker.postMessage({value: 2})"); | 27 'Acking value: 1', |
| 19 evalAndLog("serviceWorker.postMessage({done: true})"); | 28 'Acking value: 2', |
| 20 }, | 29 ]; |
| 21 function(reason) { | |
| 22 testFailed(reason.name); | |
| 23 finishJSTest(); | |
| 24 }); | |
| 25 | 30 |
| 26 function onMessageHandler(e) { | 31 function onMessage(e) { |
| 27 message = e.data; | 32 var message = e.data; |
| 28 debug(""); | 33 if (message === 'quit') { |
| 29 debug("onMessageHandler: " + JSON.stringify(message)); | 34 assert_array_equals(result, expected); |
| 30 | 35 test.done(); |
| 31 if (message === "quit") | 36 } else { |
| 32 finishJSTest(); | 37 result.push(message); |
| 33 } | 38 } |
| 39 }; |
| 40 }); |
| 34 </script> | 41 </script> |
| OLD | NEW |