tor-browser

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

element-request-fullscreen-namespaces.html (1565B)


      1 <!DOCTYPE html>
      2 <title>Element#requestFullscreen() for an element in null namespace</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    const supportedNS = [
     11        { ns: "http://www.w3.org/1999/xhtml", elemName: "div" },
     12        { ns: "http://www.w3.org/2000/svg", elemName: "svg" },
     13        { ns: "http://www.w3.org/1998/Math/MathML", elemName: "math" },
     14    ];
     15 
     16    const unsupportedNS = [null, "https://unknown.namespace", ""];
     17 
     18    for (const ns of unsupportedNS) {
     19        promise_test(async (t) => {
     20            const element = document.createElementNS(ns, "element");
     21            document.body.appendChild(element);
     22            document.onfullscreenchange = t.unreached_func(
     23                "fullscreenchange event"
     24            );
     25            await promise_rejects_js(t, TypeError, trusted_request(element));
     26        }, `requestFullscreen() fails for an element in ${ns} namespace`);
     27    }
     28 
     29    for (const { ns, elemName } of supportedNS) {
     30        promise_test(async (t) => {
     31            const element = document.createElementNS(ns, elemName);
     32            document.body.appendChild(element);
     33            await Promise.all([trusted_request(element), fullScreenChange()]);
     34            await document.exitFullscreen();
     35        }, `requestFullscreen() succeed for an element in ${ns} namespace`);
     36    }
     37 </script>