tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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 }