tor-browser

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

refresh-time.html (1645B)


      1 <!DOCTYPE html>
      2 <meta charset="utf-8">
      3 <title>Test fractional values in meta http-equiv=refresh</title>
      4 <link rel="author" title="Psychpsyo"  href="mailto:psychpsyo@gmail.com">
      5 <link rel="help" href="https://html.spec.whatwg.org/#pragma-directives">
      6 <script src="/resources/testharness.js"></script>
      7 <script src="/resources/testharnessreport.js"></script>
      8 
      9 <body>
     10 <script>
     11  async function measureRefreshTime(src) {
     12    const frame = document.createElement("iframe");
     13    document.body.appendChild(frame);
     14 
     15    const loadPromise = new Promise(resolve => {
     16      frame.addEventListener("load", () => {
     17        resolve(performance.now());
     18      });
     19    });
     20    frame.src = src;
     21    const startTime = await loadPromise;
     22 
     23    const unloadPromise = new Promise(resolve => {
     24      frame.contentWindow.addEventListener("beforeunload", () => {
     25        resolve(performance.now());
     26      });
     27    });
     28    const endTime = await unloadPromise;
     29    return endTime - startTime;
     30  }
     31 
     32  promise_test(async test => {
     33    const refreshTime = await measureRefreshTime("resources/refresh1.html");
     34    assert_greater_than(refreshTime, 900);
     35  }, "Ensure that refresh is observed");
     36 
     37  promise_test(async test => {
     38    const refreshTime = await measureRefreshTime("resources/refresh1.99.html");
     39    assert_greater_than(refreshTime, 900);
     40  }, "Ensure that non-fractional part in refresh time does not get discarded");
     41 
     42  promise_test(async test => {
     43    const refreshTime = await measureRefreshTime("resources/refresh1dotdot9dot.html");
     44    assert_greater_than(refreshTime, 900);
     45  }, "Ensure that multiple periods in refresh time just get ignored");
     46 </script>
     47 </body>