test_postMessage_structured_clone.html (2056B)
1 <!DOCTYPE html> 2 <html> 3 <!-- 4 https://bugzilla.mozilla.org/show_bug.cgi?id=553125 5 --> 6 <head> 7 <title>postMessage uses structured clone</title> 8 <script src="/tests/SimpleTest/SimpleTest.js"></script> 9 <script type="application/javascript" 10 src="postMessage_structured_clone_helper.js"></script> 11 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" /> 12 </head> 13 <body> 14 <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=553125">Mozilla Bug 553125</a> 15 <p id="display"></p> 16 <div id="content" style="display: none"></div> 17 18 <iframe src="http://mochi.test:8888/tests/dom/tests/mochitest/whatwg/postMessage_structured_clone_helper.html" 19 name="sameDomain"></iframe> 20 <iframe src="http://example.org:8000/tests/dom/tests/mochitest/whatwg/postMessage_structured_clone_helper.html" 21 name="crossDomain"></iframe> 22 23 24 <pre id="test"> 25 <script class="testbody" type="application/javascript"> 26 /** Test for Bug 553125 */ 27 28 SimpleTest.waitForExplicitFinish(); 29 30 var lastMessage = null; 31 var crossOrigin = false; 32 var generator = getTestContent(); 33 34 function runNextSameOrigin() { 35 let {done, value} = generator.next(); 36 if (done) { 37 generator = getTestContent(); 38 crossOrigin = true; 39 runNextCrossOrigin(); 40 return; 41 } 42 lastMessage = value; 43 window.frames.sameDomain.postMessage(lastMessage, "http://mochi.test:8888"); 44 } 45 46 function runNextCrossOrigin() { 47 let {done, value} = generator.next(); 48 if (done) { 49 SimpleTest.finish(); 50 return; 51 } 52 lastMessage = value; 53 window.frames.crossDomain.postMessage(lastMessage, "http://example.org:8000"); 54 } 55 56 function receiveMessage(evt) { 57 if (evt.data == "TEST-PASS") 58 SimpleTest.ok(true, "structured clone of | " + lastMessage + " | succeeded"); 59 else 60 SimpleTest.ok(false, "structured clone of | " + lastMessage + " | failed"); 61 setTimeout(crossOrigin ? runNextCrossOrigin : runNextSameOrigin, 0); 62 } 63 64 window.addEventListener("message", receiveMessage); 65 window.addEventListener("load", runNextSameOrigin); 66 67 </script> 68 </pre> 69 </body> 70 </html>