tor-browser

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

browser_1087303_button_fullscreen.js (1759B)


      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 /* eslint-disable mozilla/no-arbitrary-setTimeout */
      5 
      6 "use strict";
      7 
      8 add_task(async function () {
      9  info("Check fullscreen button existence and functionality");
     10 
     11  CustomizableUI.addWidgetToArea(
     12    "fullscreen-button",
     13    CustomizableUI.AREA_FIXED_OVERFLOW_PANEL
     14  );
     15  registerCleanupFunction(() => CustomizableUI.reset());
     16 
     17  await waitForOverflowButtonShown();
     18 
     19  await document.getElementById("nav-bar").overflowable.show();
     20 
     21  let fullscreenButton = document.getElementById("fullscreen-button");
     22  ok(fullscreenButton, "Fullscreen button appears in Panel Menu");
     23 
     24  let fullscreenPromise = promiseFullscreenChange();
     25  fullscreenButton.click();
     26  await fullscreenPromise;
     27 
     28  ok(window.fullScreen, "Fullscreen mode was opened");
     29 
     30  // exit full screen mode
     31  fullscreenPromise = promiseFullscreenChange();
     32  window.fullScreen = !window.fullScreen;
     33  await fullscreenPromise;
     34 
     35  ok(!window.fullScreen, "Successfully exited fullscreen");
     36 });
     37 
     38 function promiseFullscreenChange() {
     39  return new Promise((resolve, reject) => {
     40    info("Wait for fullscreen change");
     41 
     42    let timeoutId = setTimeout(() => {
     43      window.removeEventListener("fullscreen", onFullscreenChange, true);
     44      reject("Fullscreen change did not happen within " + 20000 + "ms");
     45    }, 20000);
     46 
     47    function onFullscreenChange() {
     48      clearTimeout(timeoutId);
     49      window.removeEventListener("fullscreen", onFullscreenChange, true);
     50      info("Fullscreen event received");
     51      resolve();
     52    }
     53    window.addEventListener("fullscreen", onFullscreenChange, true);
     54  });
     55 }