test_messageChannel_worker.html (1606B)
1 <!DOCTYPE HTML> 2 <html> 3 <!-- 4 https://bugzilla.mozilla.org/show_bug.cgi?id=677638 5 --> 6 <head> 7 <meta charset="utf-8"> 8 <title>Test for Bug 677638 - basic support</title> 9 <script src="/tests/SimpleTest/SimpleTest.js"></script> 10 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/> 11 </head> 12 <body> 13 <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=677638">Mozilla Bug 677638</a> 14 <p id="display"></p> 15 <div id="content" style="display: none"> 16 <iframe name="x" id="x"></iframe> 17 <iframe name="y" id="y"></iframe> 18 </div> 19 <pre id="test"> 20 </pre> 21 <script type="application/javascript"> 22 23 var tests = [ 0, 3 ]; 24 25 function runTests() { 26 if (!tests.length) { 27 SimpleTest.finish(); 28 return; 29 } 30 31 var a = new Worker('worker_messageChannel.js'); 32 a.onmessage = function(evt) { 33 if (evt.data.type == 'finish') { 34 runTests(); 35 } else if (evt.data.type == 'info') { 36 info(evt.data.message); 37 } else if (evt.data.type == 'check') { 38 ok(evt.data.check, evt.data.message); 39 } else if (evt.data.type == 'port') { 40 is(evt.ports.length, 1, "A port has been received!"); 41 evt.ports[0].onmessage = function(e) { 42 e.target.postMessage(e.data); 43 } 44 } else if (evt.data.type == 'newport') { 45 var ch = new MessageChannel(); 46 ok(ch, "MessageChannel created"); 47 ch.port1.postMessage(42); 48 a.postMessage('a gift!', [ch.port2]); 49 } 50 } 51 52 a.postMessage(tests.shift()); 53 } 54 55 SimpleTest.waitForExplicitFinish(); 56 runTests(); 57 </script> 58 </body> 59 </html>