tor-browser

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

browser_pageinfo_separate_private.js (1541B)


      1 /**
      2 * Any copyright is dedicated to the Public Domain.
      3 * http://creativecommons.org/publicdomain/zero/1.0/
      4 */
      5 
      6 add_task(async function () {
      7  let tab = await BrowserTestUtils.openNewForegroundTab(
      8    gBrowser,
      9    "https://example.com"
     10  );
     11  let browser = tab.linkedBrowser;
     12  let pageInfo = BrowserCommands.pageInfo(browser.currentURI.spec);
     13  await BrowserTestUtils.waitForEvent(pageInfo, "page-info-init");
     14  Assert.strictEqual(
     15    pageInfo.docShell.QueryInterface(Ci.nsILoadContext).usePrivateBrowsing,
     16    false,
     17    "non-private window opened private page info window"
     18  );
     19 
     20  let privateWindow = await BrowserTestUtils.openNewBrowserWindow({
     21    private: true,
     22  });
     23  let privateTab = await BrowserTestUtils.openNewForegroundTab(
     24    privateWindow.gBrowser,
     25    "https://example.com"
     26  );
     27  let privateBrowser = privateTab.linkedBrowser;
     28  let privatePageInfo = privateWindow.BrowserCommands.pageInfo(
     29    privateBrowser.currentURI.spec
     30  );
     31  await BrowserTestUtils.waitForEvent(privatePageInfo, "page-info-init");
     32  Assert.strictEqual(
     33    privatePageInfo.docShell.QueryInterface(Ci.nsILoadContext)
     34      .usePrivateBrowsing,
     35    true,
     36    "private window opened non-private page info window"
     37  );
     38 
     39  Assert.notEqual(
     40    pageInfo,
     41    privatePageInfo,
     42    "private and non-private windows shouldn't have shared the same page info window"
     43  );
     44  pageInfo.close();
     45  privatePageInfo.close();
     46  BrowserTestUtils.removeTab(tab);
     47  BrowserTestUtils.removeTab(privateTab);
     48  await BrowserTestUtils.closeWindow(privateWindow);
     49 });