tor-browser

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

test_window_open_popupBlockerEnabled.html (1370B)


      1 <!DOCTYPE HTML>
      2 <html>
      3 <head>
      4  <title>Bug 1901139 - Test Sec-Fetch-User for window.open when popup blocker is enabled</title>
      5  <script src="/tests/SimpleTest/SimpleTest.js"></script>
      6  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
      7 </head>
      8 
      9 <body>
     10 <script>
     11 
     12 add_setup(async function () {
     13  await SpecialPowers.pushPrefEnv({
     14    set: [
     15      // Enable popup blocker
     16      ["dom.disable_open_during_load", true],
     17    ],
     18  });
     19 });
     20 
     21 add_task(async function() {
     22  var script = SpecialPowers.loadChromeScript(() => {
     23    /* eslint-env mozilla/chrome-script */
     24    Services.obs.addObserver(function onExamResp(subject) {
     25    let channel = subject.QueryInterface(Ci.nsIHttpChannel);
     26      info("request observed: " + channel.URI.spec);
     27      if (!channel.URI.spec.startsWith("https://example.org")) {
     28        return;
     29      }
     30 
     31      try {
     32        is(channel.getRequestHeader("Sec-Fetch-User"), "?1", "testing sec-fetch-user");
     33      } catch (e) {
     34        ok(false, "sec-fetch-user should be set");
     35      }
     36 
     37      sendAsyncMessage("test-pass");
     38    }, "http-on-stop-request");
     39  });
     40 
     41  let promise = new Promise(resolve => script.addMessageListener("test-pass", resolve));
     42 
     43  SpecialPowers.wrap(document).notifyUserGestureActivation();
     44  let win = window.open("https://example.org");
     45 
     46  await promise;
     47 
     48  win.close();
     49 });
     50 
     51 </script>
     52 </body>
     53 </html>