tor-browser

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

document-exit-fullscreen-twice.html (1725B)


      1 <!DOCTYPE html>
      2 <title>Document#exitFullscreen() called twice</title>
      3 <script src="/resources/testharness.js"></script>
      4 <script src="/resources/testharnessreport.js"></script>
      5 <script src="/resources/testdriver.js"></script>
      6 <script src="/resources/testdriver-vendor.js"></script>
      7 <script src="../trusted-click.js"></script>
      8 <div id="log"></div>
      9 <script>
     10    promise_test(async (t) => {
     11        const once = { once: true };
     12        const div = document.querySelector("div");
     13        document.onfullscreenerror = t.unreached_func("fullscreenerror event");
     14 
     15        await Promise.all([
     16            fullScreenChange(),
     17            trusted_request(div),
     18        ]);
     19 
     20        // We are now in fullscreen.
     21        assert_equals(document.fullscreenElement, div);
     22 
     23        // Exit fullscreen twice.
     24        const firstPromise = document.exitFullscreen();
     25        assert_equals(
     26            document.fullscreenElement,
     27            div,
     28            "fullscreenElement after first exitFullscreen()"
     29        );
     30 
     31        const secondPromise = document.exitFullscreen();
     32        assert_equals(
     33            document.fullscreenElement,
     34            div,
     35            "fullscreenElement after second exitFullscreen()"
     36        );
     37        const eventChange = new Promise((resolve) => {
     38            document.addEventListener("fullscreenchange", () => {
     39                document.addEventListener("fullscreenchange", t.unreached_func("second event fired"), once);
     40                resolve();
     41            }, once);
     42        });
     43 
     44        await Promise.all([
     45            fullScreenChange,
     46            firstPromise,
     47            secondPromise,
     48            eventChange,
     49        ]);
     50        assert_equals(document.fullscreenElement, null);
     51    });
     52 </script>