tor-browser

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

browser_fullscreen_tab_preview.js (2438B)


      1 /* Any copyright is dedicated to the Public Domain.
      2   http://creativecommons.org/publicdomain/zero/1.0/ */
      3 
      4 "use strict";
      5 
      6 // This test ensures dismissing a tab preview does not hide the nav toolbox
      7 // when browser.fullscreen.autohide is true.
      8 
      9 add_setup(async () => {
     10  await SpecialPowers.pushPrefEnv({
     11    set: [
     12      ["browser.fullscreen.autohide", true],
     13      ["browser.tabs.hoverPreview.enabled", true],
     14      ["ui.tooltip.delay_ms", 0],
     15    ],
     16  });
     17 });
     18 
     19 add_task(async function testTabPreview() {
     20  let tab = BrowserTestUtils.addTab(gBrowser, "about:blank", {
     21    skipAnimation: true,
     22  });
     23  let onFullscreenEnter = Promise.all([
     24    BrowserTestUtils.waitForEvent(window, "fullscreen"),
     25    BrowserTestUtils.waitForEvent(
     26      window,
     27      "sizemodechange",
     28      false,
     29      () => window.fullScreen
     30    ),
     31  ]);
     32  document.getElementById("View:FullScreen").doCommand();
     33  await onFullscreenEnter;
     34  await waitForFocus(window);
     35 
     36  // make sure the toolbox is visible if it's autohidden
     37  let onToolboxShown = TestUtils.topicObserved(
     38    "fullscreen-nav-toolbox",
     39    (subject, data) => data == "shown"
     40  );
     41  FullScreen.showNavToolbox();
     42  info("Waiting for the nav toolbox to be shown");
     43  await onToolboxShown;
     44 
     45  let tabPreviewPanel = document.getElementById("tab-preview-panel");
     46  // open tab preview
     47  const previewShown = BrowserTestUtils.waitForPopupEvent(
     48    tabPreviewPanel,
     49    "shown"
     50  );
     51  EventUtils.synthesizeMouse(
     52    tab,
     53    1,
     54    1,
     55    {
     56      type: "mousemove",
     57    },
     58    window
     59  );
     60  info("waiting for preview to show");
     61  await previewShown;
     62 
     63  // close tab preview
     64  const previewHidden = BrowserTestUtils.waitForPopupEvent(
     65    tabPreviewPanel,
     66    "hidden"
     67  );
     68  EventUtils.synthesizeMouse(
     69    document.getElementById("tabs-newtab-button"),
     70    1,
     71    1,
     72    { type: "mousemove" }
     73  );
     74  info("waiting for preview to hide");
     75  await previewHidden;
     76  // navtoolbox should still be visible
     77  Assert.ok(
     78    !FullScreen._isChromeCollapsed,
     79    "Toolbar remains visible after tab preview is hidden"
     80  );
     81  BrowserTestUtils.removeTab(tab);
     82  let onExitFullscreen = Promise.all([
     83    BrowserTestUtils.waitForEvent(window, "fullscreen"),
     84    BrowserTestUtils.waitForEvent(
     85      window,
     86      "sizemodechange",
     87      false,
     88      () => !window.fullScreen
     89    ),
     90  ]);
     91  document.getElementById("View:FullScreen").doCommand();
     92  info("waiting for fullscreen exit");
     93  await onExitFullscreen;
     94 });