interOriginTest2.js (1595B)
1 var frameLoadsPending = 2; 2 3 var callMasterFrame = true; 4 var testDone = false; 5 6 var masterFrameOrigin = ""; 7 var slaveFrameOrigin = ""; 8 9 var failureRegExp = new RegExp("^FAILURE"); 10 var todoRegExp = new RegExp("^TODO"); 11 12 const framePath = "/tests/dom/tests/mochitest/storageevent/"; 13 14 window.addEventListener("message", onMessageReceived); 15 16 function onMessageReceived(event) { 17 switch (event.data) { 18 // Indication of the frame onload event 19 case "frame loaded": 20 if (--frameLoadsPending) { 21 break; 22 } 23 24 // Indication of successfully finished step of a test 25 // Just fall through... 26 case "perf": 27 if (callMasterFrame) { 28 masterFrame.postMessage("step", "*"); 29 } else if (slaveFrame) { 30 slaveFrame.postMessage("step", "*"); 31 } else if (masterFrame.slaveFrame) { 32 masterFrame.slaveFrame.postMessage("step", "*"); 33 } 34 callMasterFrame = !callMasterFrame; 35 break; 36 37 // Indication of all test parts finish (from any of the frames) 38 case "done": 39 if (testDone) { 40 break; 41 } 42 43 testDone = true; 44 SimpleTest.finish(); 45 break; 46 47 // Any other message indicates error, succes or todo message of a test 48 default: 49 if (typeof event.data == "undefined") { 50 break; 51 } // XXXkhuey this receives undefined values 52 // (which used to become empty strings) on occasion ... 53 if (event.data.match(todoRegExp)) { 54 SimpleTest.todo(false, event.data); 55 } else { 56 SimpleTest.ok(!event.data.match(failureRegExp), event.data); 57 } 58 break; 59 } 60 }