tor-browser

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

test_bug1640766.html (1525B)


      1 <!DOCTYPE HTML>
      2 <html>
      3 <!--
      4 https://bugzilla.mozilla.org/show_bug.cgi?id=1640766
      5 -->
      6 <head>
      7  <title>Test for Bug 1640766</title>
      8  <script src="/tests/SimpleTest/SimpleTest.js"></script>
      9  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
     10 </head>
     11 <body>
     12 <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1640766">Mozilla Bug 1640766</a>
     13 <p id="display"></p>
     14 <div id="content" style="display: none">
     15 </div>
     16 <pre id="test">
     17 <script type="application/javascript">
     18 
     19 /** Test for Bug 1640766 */
     20 
     21 function waitForMessage(aMsg) {
     22  return new Promise((aResolve) => {
     23    window.addEventListener("message", function handler(e) {
     24      if (e.data != aMsg) {
     25        return;
     26      }
     27 
     28      info(`receive: ${e.data}`);
     29      window.removeEventListener("message", handler);
     30      aResolve(e.source);
     31    });
     32  });
     33 }
     34 
     35 async function testSuspend(aWindow) {
     36  let timerRan = false;
     37  let timer = aWindow.setTimeout(function() {
     38    timerRan = true;
     39  }, 0);
     40 
     41  return new Promise((aResolve) => {
     42    setTimeout(function() {
     43      ok(!timerRan, "timer should not run as the window is suspended");
     44      clearTimeout(timer);
     45      aResolve();
     46    }, 0);
     47  });
     48 }
     49 
     50 add_task(async function() {
     51  let w = window.open("iframe1_bug1640766.html");
     52  let inner = await waitForMessage("ready");
     53 
     54  var utils = SpecialPowers.getDOMWindowUtils(w);
     55  utils.enterModalState();
     56 
     57  await testSuspend(w);
     58  await testSuspend(inner);
     59 
     60  utils.leaveModalState();
     61  w.close();
     62 });
     63 
     64 </script>
     65 </pre>
     66 </body>
     67 </html>