tor-browser

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

browser_bug623893.js (1543B)


      1 add_task(async function test() {
      2  await BrowserTestUtils.withNewTab(
      3    "data:text/plain;charset=utf-8,1",
      4    async function (browser) {
      5      BrowserTestUtils.startLoadingURIString(
      6        browser,
      7        "data:text/plain;charset=utf-8,2"
      8      );
      9      await BrowserTestUtils.browserLoaded(browser);
     10 
     11      BrowserTestUtils.startLoadingURIString(
     12        browser,
     13        "data:text/plain;charset=utf-8,3"
     14      );
     15      await BrowserTestUtils.browserLoaded(browser);
     16 
     17      await duplicate(0, "maintained the original index");
     18      BrowserTestUtils.removeTab(gBrowser.selectedTab);
     19 
     20      await duplicate(-1, "went back");
     21      await duplicate(1, "went forward");
     22      BrowserTestUtils.removeTab(gBrowser.selectedTab);
     23      BrowserTestUtils.removeTab(gBrowser.selectedTab);
     24    }
     25  );
     26 });
     27 
     28 async function promiseGetIndex(browser) {
     29  if (!SpecialPowers.Services.appinfo.sessionHistoryInParent) {
     30    return SpecialPowers.spawn(browser, [], function () {
     31      let shistory =
     32        docShell.browsingContext.childSessionHistory.legacySHistory;
     33      return shistory.index;
     34    });
     35  }
     36 
     37  let shistory = browser.browsingContext.sessionHistory;
     38  return shistory.index;
     39 }
     40 
     41 let duplicate = async function (delta, msg) {
     42  var startIndex = await promiseGetIndex(gBrowser.selectedBrowser);
     43 
     44  duplicateTabIn(gBrowser.selectedTab, "tab", delta);
     45 
     46  await BrowserTestUtils.waitForEvent(gBrowser.tabContainer, "SSTabRestored");
     47 
     48  let endIndex = await promiseGetIndex(gBrowser.selectedBrowser);
     49  is(endIndex, startIndex + delta, msg);
     50 };