tor-browser

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

browser_restore_private_tab_os.js (1940B)


      1 /* This Source Code Form is subject to the terms of the Mozilla Public
      2 * License, v. 2.0. If a copy of the MPL was not distributed with this
      3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
      4 
      5 "use strict";
      6 
      7 const TEST_URI =
      8  "https://example.com/" +
      9  "browser/browser/components/sessionstore/test/empty.html";
     10 
     11 add_setup(async function () {
     12  await SpecialPowers.pushPrefEnv({
     13    set: [
     14      // Set the pref to true so we know exactly how many tabs should be restoring at
     15      // any given time. This guarantees that a finishing load won't start another.
     16      ["browser.sessionstore.restore_on_demand", true],
     17      // Don't restore tabs lazily.
     18      ["browser.sessionstore.restore_tabs_lazily", true],
     19      // don't preload tabs so we don't have extra XULFrameLoaderCreated events
     20      // firing
     21      ["browser.newtab.preload", false],
     22    ],
     23  });
     24 });
     25 
     26 add_task(async function testRestore() {
     27  // Clear the list of closed windows.
     28  forgetClosedWindows();
     29 
     30  // Create a new private window
     31  let win = await promiseNewWindowLoaded({ private: true });
     32 
     33  // Create a new private tab
     34  let tab = BrowserTestUtils.addTab(win.gBrowser, TEST_URI);
     35  let browser = tab.linkedBrowser;
     36  await promiseBrowserLoaded(browser);
     37  await TabStateFlusher.flush(browser);
     38 
     39  // Ensure that closed tabs in a private windows can be restored.
     40  win.gBrowser.removeTab(tab);
     41  is(ss.getClosedTabCountForWindow(win), 1, "there is a single tab to restore");
     42 
     43  tab = SessionStore.undoCloseTab(win, 0);
     44  info(`Undo close tab`);
     45  browser = tab.linkedBrowser;
     46  await promiseTabRestored(tab);
     47  info(`Private tab restored`);
     48 
     49  let expectedRemoteType = gFissionBrowser
     50    ? "webIsolated=https://example.com^privateBrowsingId=1"
     51    : "web";
     52  is(browser.remoteType, expectedRemoteType, "correct remote type");
     53 
     54  await BrowserTestUtils.closeWindow(win);
     55 
     56  // Cleanup
     57  info("Forgetting closed tabs");
     58  forgetClosedTabs(window);
     59 });