interOriginTest2.js (1246B)
1 var t = async_test(document.title); 2 3 var frameLoadsPending = 2; 4 5 var callMasterFrame = true; 6 var testDone = false; 7 8 var masterFrameOrigin = ""; 9 var slaveFrameOrigin = ""; 10 11 var failureRegExp = new RegExp("^FAILURE"); 12 13 const framePath = "/tests/dom/tests/mochitest/localstorage/"; 14 15 window.addEventListener("message", onMessageReceived); 16 17 function onMessageReceived(event) { 18 switch (event.data) { 19 // Indication of the frame onload event 20 case "frame loaded": 21 if (--frameLoadsPending) { 22 break; 23 } 24 25 // Indication of successfully finished step of a test 26 // Just fall through... 27 case "perf": 28 if (callMasterFrame) { 29 masterFrame.postMessage("step", masterFrameOrigin); 30 } else { 31 slaveFrame.postMessage("step", slaveFrameOrigin); 32 } 33 callMasterFrame = !callMasterFrame; 34 break; 35 36 // Indication of all test parts finish (from any of the frames) 37 case "done": 38 if (testDone) { 39 break; 40 } 41 42 testDone = true; 43 t.done(); 44 break; 45 46 // Any other message indicates error, succes or todo message of a test 47 default: 48 t.step(function () { 49 assert_true(!event.data.match(failureRegExp), event.data); 50 }); 51 break; 52 } 53 }