browser_scroll-to-text-fragment-from-window-open.js (2013B)
1 "use strict"; 2 3 add_setup(async function () { 4 await SpecialPowers.pushPrefEnv({ 5 set: [ 6 ["test.wait300msAfterTabSwitch", true], 7 // Enable popup blocker 8 ["dom.disable_open_during_load", true], 9 ], 10 }); 11 }); 12 13 /** Test for Bug 1901139 */ 14 15 add_task(async function () { 16 await BrowserTestUtils.withNewTab( 17 { 18 gBrowser, 19 url: `http://mochi.test:8888/browser/browser/base/content/test/scroll-to-text-fragment/dummy_page.html`, 20 }, 21 async function (browser) { 22 const url = 23 "https://example.org/browser/browser/base/content/test/scroll-to-text-fragment/scroll-to-text-fragment-from-browser-chrome-target.html#:~:text=This%20is%20the%20text%20fragment%20to%20scroll%20to"; 24 await SpecialPowers.spawn(browser, [url], aUrl => { 25 let container = content.document.createElement("div"); 26 container.innerHTML = `<button id='button' onclick='window.open("${aUrl}", "_blank", "noopener");'>Click here</button>`; 27 content.document.documentElement.appendChild(container); 28 }); 29 30 let newTabPromise = BrowserTestUtils.waitForNewTab(gBrowser, null, true); 31 info("Trigger click event and wait for new tab opened."); 32 BrowserTestUtils.synthesizeMouseAtCenter("#button", {}, browser); 33 let newTab = await newTabPromise; 34 35 info("New tab is opened."); 36 ok( 37 await SpecialPowers.spawn(newTab.linkedBrowser, [], () => { 38 let element = content.document.getElementById("target"); 39 let rect = element.getBoundingClientRect(); 40 return ( 41 rect.top >= 0 && 42 rect.top <= content.window.innerHeight && 43 rect.left >= 0 && 44 rect.left <= content.window.innerWidth 45 ); 46 }), 47 "check if new tab scrolled to right position" 48 ); 49 50 info("Close opened new tab."); 51 let tabClosedPromise = BrowserTestUtils.waitForTabClosing(newTab); 52 await BrowserTestUtils.removeTab(newTab); 53 await tabClosedPromise; 54 } 55 ); 56 });