tor-browser

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

browser_swapDocShells.js (1050B)


      1 "use strict";
      2 
      3 add_task(async function () {
      4  let tab = (gBrowser.selectedTab = BrowserTestUtils.addTab(
      5    gBrowser,
      6    "about:mozilla"
      7  ));
      8  await promiseBrowserLoaded(gBrowser.selectedBrowser);
      9 
     10  let win = gBrowser.replaceTabWithWindow(tab);
     11  await promiseDelayedStartupFinished(win);
     12  await promiseBrowserHasURL(win.gBrowser.browsers[0], "about:mozilla");
     13 
     14  win.duplicateTabIn(win.gBrowser.selectedTab, "tab");
     15  await promiseTabRestored(win.gBrowser.tabs[1]);
     16 
     17  let browser = win.gBrowser.browsers[1];
     18  is(browser.currentURI.spec, "about:mozilla", "tab was duplicated");
     19 
     20  await BrowserTestUtils.closeWindow(win);
     21 });
     22 
     23 function promiseDelayedStartupFinished(win) {
     24  return new Promise(resolve => {
     25    whenDelayedStartupFinished(win, resolve);
     26  });
     27 }
     28 
     29 function promiseBrowserHasURL(browser, url) {
     30  let promise = Promise.resolve();
     31 
     32  if (
     33    browser.contentDocument.readyState === "complete" &&
     34    browser.currentURI.spec === url
     35  ) {
     36    return promise;
     37  }
     38 
     39  return promise.then(() => promiseBrowserHasURL(browser, url));
     40 }