| Index: third_party/WebKit/LayoutTests/external/wpt/navigation-timing/test_navigation_type_reload.html
|
| diff --git a/third_party/WebKit/LayoutTests/external/wpt/navigation-timing/test_navigation_type_reload.html b/third_party/WebKit/LayoutTests/external/wpt/navigation-timing/test_navigation_type_reload.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..c10c3bdb9c3183226c5a14c9dc5813256ee631ec
|
| --- /dev/null
|
| +++ b/third_party/WebKit/LayoutTests/external/wpt/navigation-timing/test_navigation_type_reload.html
|
| @@ -0,0 +1,108 @@
|
| +<!DOCTYPE html>
|
| +<html>
|
| + <head>
|
| + <meta charset="utf-8" />
|
| + <title>window.performance.navigation.type with a reloaded navigation</title>
|
| + <link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
|
| + <link rel="help" href="http://www.w3.org/TR/navigation-timing/#sec-navigation-timing-interface"/>
|
| + <script src="/resources/testharness.js"></script>
|
| + <script src="/resources/testharnessreport.js"></script>
|
| + <script src="resources/webperftestharness.js"></script>
|
| + <script>
|
| + setup({explicit_done: true});
|
| +
|
| + // explicitly test the namespace before we start testing
|
| + test_namespace('navigation');
|
| + var reload_frame;
|
| + var startingTime;
|
| +
|
| + function deepCopy(p, c)
|
| + {
|
| + var c = c || {};
|
| + for (var i in p)
|
| + {
|
| + if (typeof p[i] === 'object')
|
| + {
|
| + c[i] = (p[i].constructor === Array) ? [] : {};
|
| + deepCopy(p[i], c[i]);
|
| + } else c[i] = p[i];
|
| + }
|
| + return c;
|
| + }
|
| +
|
| +
|
| + function onload_test()
|
| + {
|
| + reload_frame = document.getElementById("frameContext");
|
| + reload_frame.onload = function() {
|
| + /* Need to make sure we don't examine loadEventEnd
|
| + until after the load event has finished firing */
|
| + setTimeout(do_test, 0);
|
| + }
|
| + setTimeout("reload_the_frame();", 100);
|
| + }
|
| +
|
| + function reload_the_frame()
|
| + {
|
| + //Before reloading, save the current timing
|
| + startingTime = deepCopy(reload_frame.contentWindow.performance.timing);
|
| + reload_frame.contentWindow.location.reload(true);
|
| + }
|
| +
|
| + function do_test()
|
| + {
|
| + reload_frame.onload = null;
|
| + if (performanceNamespace)
|
| + {
|
| + //Verify that the navigation type has updated to reload
|
| + test_equals(reload_frame.contentWindow.performance.navigation.type,
|
| + performanceNamespace.navigation.TYPE_RELOAD,
|
| + 'window.performance.navigation.type == TYPE_RELOAD');
|
| +
|
| + //Verify that the timing data has been updated into the future
|
| + var reloadTime = reload_frame.contentWindow.performance.timing;
|
| + for (attribute in timingAttributes)
|
| + {
|
| + var time = timingAttributes[attribute];
|
| + if (reloadTime[time] === 0)
|
| + {
|
| + test_equals(reloadTime[time],
|
| + startingTime[time],
|
| + "Reload " + time + "(" + reloadTime[time] + ")" +
|
| + " == " +
|
| + "Original " + time + "(" + startingTime[time] + ")");
|
| + }
|
| + else
|
| + {
|
| + test_greater_than(reloadTime[time],
|
| + startingTime[time],
|
| + "Reload " + time +
|
| + " > " +
|
| + "Original " + time);
|
| + }
|
| + }
|
| + }
|
| +
|
| + done();
|
| + }
|
| + </script>
|
| + </head>
|
| + <body onload="onload_test();">
|
| + <h1>Description</h1>
|
| + <p>This test validates the value of window.performance.navigation.type and the values of
|
| + window.performance.timing.* with a reloaded navigation.</p>
|
| +
|
| + <p>This page should be loaded with a green background frame below. The frame will be automatically reloaded
|
| + and then verified that
|
| + <ul>
|
| + <li>The window.performance.navigation.type = TYPE_RELOAD</li>
|
| + <li>All of the widow.performance.timing.* values after reload are > all of the window.performance.timing.* values
|
| + prior to reload.</li>
|
| + </ul>
|
| + </p>
|
| +
|
| + <div id="log"></div>
|
| + <br />
|
| + <iframe id="frameContext" src="resources/blank_page_green.html" style="width: 250px; height: 250px;"></iframe>
|
| + </body>
|
| +</html>
|
|
|