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>