diff options
Diffstat (limited to 'testing/web-platform/tests/navigation-timing/test-timing-attributes-dependent-on-document-load.html')
-rw-r--r-- | testing/web-platform/tests/navigation-timing/test-timing-attributes-dependent-on-document-load.html | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/testing/web-platform/tests/navigation-timing/test-timing-attributes-dependent-on-document-load.html b/testing/web-platform/tests/navigation-timing/test-timing-attributes-dependent-on-document-load.html new file mode 100644 index 0000000000..9eac7bd033 --- /dev/null +++ b/testing/web-platform/tests/navigation-timing/test-timing-attributes-dependent-on-document-load.html @@ -0,0 +1,85 @@ +<!DOCTYPE html> +<html> +<head> + <meta charset="utf-8" /> + <title>Navigation Timing 2 WPT</title> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script> + setup({ single_test: true }); + var reload_frame; + + // Array of navigation timing entries dependent on Document Load Timing. + var navTimingAttributes = [ + 'fetchStart', + 'loadEventEnd', + 'loadEventStart', + 'redirectCount', + 'redirectEnd', + 'redirectStart', + 'responseEnd', + 'unloadEventEnd', + 'unloadEventStart', + ]; + + // Function to run the test when the page loads. + function onload_test() { + reload_frame = document.getElementById("frameContext"); + reload_frame.onload = function() { + step_timeout(do_test, 0); + } + step_timeout(reload_the_frame, 0); + } + + /* + Function to reload the iframe and observe values for navigation timing entries: + redirectStart, redirectEnd and redirectCount dependent on Document Load Timing. + */ + function reload_the_frame() { + reload_frame.contentWindow.location.href = + "/common/redirect.py?location=/navigation-timing/resources/blank-page-green.html"; + } + + /* + Function to obtain navigation timing entries and, + check if the values are greater than 0. + */ + function do_test() { + var nav_frame = document.getElementById("frameContext").contentWindow; + var pnt1 = nav_frame.performance.getEntriesByType("navigation")[0]; + for (i in navTimingAttributes) { + assert_greater_than(pnt1[navTimingAttributes[i]], 0, + `Expected navigation timing entries: ${navTimingAttributes[i]} greater than 0`); + } + step_timeout(remove, 0); + done(); // Avoids scripting errors + } + + /* + Function to remove the iframe from the parent body and, + check if the navigation timing entries of detached iframe are 0. + */ + function remove() { + var nav_frame = document.getElementById("frameContext").contentWindow; + var pnt1 = nav_frame.performance.getEntriesByType("navigation")[0]; + document.body.removeChild(document.getElementById("frameContext")); + for (i in navTimingAttributes) { + assert_equals(pnt1[navTimingAttributes[i]], 0, + `${navTimingAttributes[i]} dependent on Document Load Timing: returns 0`); + } + } + </script> +</head> +<body onload="onload_test();"> + <h1>Description</h1> + <p>This test observes values of navigation timing entries,</p> + <p>dependent on Document Load Timing for a detached iframe.</p> + <br /> + <p>This page should be loaded with a green background frame below,</p> + <p>which disappears after the iframe is detached.</p> + <br /> + <iframe id="frameContext" + src="/navigation-timing/resources/blank-page-green.html" + style="width: 250px; height: 250px;"></iframe> +</body> +</html>
\ No newline at end of file |