tor-browser

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

element-request-fullscreen-screen-size.https.html (2802B)


      1 <!DOCTYPE html>
      2 <title>
      3    Element#requestFullscreen() does not affect Screen sizes
      4 </title>
      5 <script src="/resources/testharness.js"></script>
      6 <script src="/resources/testharnessreport.js"></script>
      7 <script src="/resources/testdriver.js"></script>
      8 <script src="/resources/testdriver-vendor.js"></script>
      9 <script src="../trusted-click.js"></script>
     10 <body></body>
     11 <script>
     12    promise_test(async (t) => {
     13        const screenWidth = window.screen.width;
     14        const screenHeight = window.screen.height;
     15 
     16        if ('onchange' in window.screen) {
     17            window.screen.onchange = () => {
     18                assert_equals(window.screen.width, screenWidth);
     19                assert_equals(window.screen.height, screenHeight);
     20            }
     21            t.add_cleanup(() => { window.screen.onchange = null; });
     22        }
     23 
     24        // Await a test_driver or manual click, fullscreen promise, and change.
     25        await Promise.all([trusted_request(), fullScreenChange()]);
     26        t.add_cleanup(() => { document.exitFullscreen(); });
     27        assert_not_equals(document.fullscreenElement, null);
     28 
     29        // Ensure the screen size is unchanged during fullscreen.
     30        assert_equals(window.screen.width, screenWidth);
     31        assert_equals(window.screen.height, screenHeight);
     32    }, "Screen size is unchanged during element fullscreen");
     33 
     34    promise_test(async (t) => {
     35        const screenWidth = window.screen.width;
     36        const screenHeight = window.screen.height;
     37 
     38        if ('onchange' in window.screen) {
     39            window.screen.onchange = () => {
     40                assert_equals(window.screen.width, screenWidth);
     41                assert_equals(window.screen.height, screenHeight);
     42            }
     43            t.add_cleanup(() => { window.screen.onchange = null; });
     44        }
     45 
     46        // Await a test_driver or manual click to start tab content capture.
     47        await trusted_click();
     48        const stream = await navigator.mediaDevices.getDisplayMedia(
     49            {video:{displaySurface:"browser"}, selfBrowserSurface:"include"});
     50        const capabilities = stream.getVideoTracks()[0].getCapabilities();
     51        assert_equals(capabilities.displaySurface, "browser");
     52        t.add_cleanup(() => { stream.getTracks().forEach(t => t.stop()) });
     53 
     54        // Await a test_driver or manual click, fullscreen promise, and change.
     55        await Promise.all([trusted_request(), fullScreenChange()]);
     56        t.add_cleanup(() => { document.exitFullscreen(); });
     57        assert_not_equals(document.fullscreenElement, null);
     58 
     59        // Ensure the screen size is unchanged during tab-capture fullscreen.
     60        assert_equals(window.screen.width, screenWidth);
     61        assert_equals(window.screen.height, screenHeight);
     62    }, "Screen size is unchanged during tab-capture element fullscreen");
     63 </script>