tor-browser

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

test_sync_xhr_nested.html (1262B)


      1 <!DOCTYPE HTML>
      2 <!-- vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: -->
      3 <html>
      4 <head>
      5  <script src="/tests/SimpleTest/SimpleTest.js"></script>
      6  <script src="/tests/SimpleTest/EventUtils.js"></script>
      7  <link rel="stylesheet" href="/tests/SimpleTest/test.css">
      8 </head>
      9 <body >
     10  <script type="text/javascript">
     11  SimpleTest.waitForExplicitFinish();
     12 
     13  var childXHRFinished = false;
     14  var xhrFinished = false;
     15  var subTab = null;
     16 
     17  function receivedInput() {
     18    ok(xhrFinished, "Input event should be handled after the sync xhr");
     19    SimpleTest.finish();
     20  }
     21 
     22  function startSlowXHR() {
     23    var xhr = new XMLHttpRequest();
     24    xhr.open("GET", "slow.sjs", false);
     25    subTab.startSlowXHR();
     26    xhr.send(null);
     27 
     28    // Above xhr.send(null) should spin up an event loop to process the inner XHR first
     29    ok(childXHRFinished, "Child's XHR should be finished first");
     30    xhrFinished = true;
     31  }
     32 
     33  async function runTest() {
     34    await SpecialPowers.pushPrefEnv({
     35      set: [["dom.input_events.canSuspendInBCG.enabled", true]]
     36    });
     37    subTab = window.open("file_sync_xhr_nested_helper.html");
     38    await new Promise((r) => {
     39      subTab.addEventListener("load", r);
     40    });
     41    startSlowXHR();
     42  }
     43 
     44  runTest();
     45  </script>
     46 </body>
     47 </html>