tor-browser

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

test_popup_blocker_anchor_blank.html (1356B)


      1 <!DOCTYPE html>
      2 <html>
      3 <head>
      4 <meta charset="utf-8">
      5 <title>Popup blocker a target=_blank</title>
      6 <script src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
      7 <link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css"/>
      8 </head>
      9 <body>
     10 <button>click</button>
     11 <a target=_blank href="https://example.com">Link</a>
     12 <script>
     13 const {BrowserTestUtils} = ChromeUtils.importESModule(
     14  "resource://testing-common/BrowserTestUtils.sys.mjs"
     15 );
     16 const gBrowser = Services.wm.getMostRecentWindow("navigator:browser").gBrowser;
     17 
     18 add_task(async function() {
     19  SpecialPowers.wrap(document).notifyUserGestureActivation();
     20  let button = document.querySelector("button");
     21 
     22  const promise = new Promise(resolve => {
     23    button.addEventListener("click", () => {
     24      document.querySelector("a").dispatchEvent(
     25        new PointerEvent("click", {
     26          bubbles: true,
     27          cancelable: true,
     28          view: window,
     29        })
     30      );
     31 
     32      BrowserTestUtils.waitForNewTab(gBrowser, null, true).then(function(aNewTab) {
     33        ok(true, "A new tab was opened");
     34        BrowserTestUtils.removeTab(aNewTab);
     35        resolve();
     36      });
     37    });
     38  });
     39 
     40  button.dispatchEvent(new PointerEvent("click", {
     41    bubbles: true,
     42    cancelable: true,
     43    view: window,
     44  }));
     45 
     46  await promise;
     47 });
     48 </script>
     49 </body>