| <!DOCTYPE html> | |
| <meta charset="utf-8"> | |
| <title>Test fractional values in meta http-equiv=refresh</title> | |
| <link rel="author" title="Psychpsyo" href="mailto:psychpsyo@gmail.com"> | |
| <link rel="help" href="https://html.spec.whatwg.org/#pragma-directives"> | |
| <script src="/resources/testharness.js"></script> | |
| <script src="/resources/testharnessreport.js"></script> | |
| <body> | |
| <script> | |
| async function measureRefreshTime(src) { | |
| const frame = document.createElement("iframe"); | |
| document.body.appendChild(frame); | |
| const loadPromise = new Promise(resolve => { | |
| frame.addEventListener("load", () => { | |
| resolve(performance.now()); | |
| }); | |
| }); | |
| frame.src = src; | |
| const startTime = await loadPromise; | |
| const unloadPromise = new Promise(resolve => { | |
| frame.contentWindow.addEventListener("beforeunload", () => { | |
| resolve(performance.now()); | |
| }); | |
| }); | |
| const endTime = await unloadPromise; | |
| return endTime - startTime; | |
| } | |
| promise_test(async test => { | |
| const refreshTime = await measureRefreshTime("resources/refresh1.html"); | |
| assert_greater_than(refreshTime, 900); | |
| }, "Ensure that refresh is observed"); | |
| promise_test(async test => { | |
| const refreshTime = await measureRefreshTime("resources/refresh1.99.html"); | |
| assert_greater_than(refreshTime, 900); | |
| }, "Ensure that non-fractional part in refresh time does not get discarded"); | |
| promise_test(async test => { | |
| const refreshTime = await measureRefreshTime("resources/refresh1dotdot9dot.html"); | |
| assert_greater_than(refreshTime, 900); | |
| }, "Ensure that multiple periods in refresh time just get ignored"); | |
| </script> | |
| </body> |