Revision d1ff75d461706581ce257bd1b17a6e74f9052c16 authored by jgraham on 20 April 2016, 15:21:24 UTC, committed by jgraham on 20 April 2016, 15:21:24 UTC
Merge pull request #2853 from sync_fca53aa2393eff0ca07453922e9cc5af92ed1c5b
2 parent s f59a959 + fca53aa
Raw File
test_cross_frame_start.html
<!DOCTYPE html>
<html>
  <head>
        <meta charset="utf-8" >
        <title>window.performance.now across frames</title>
        <link rel="author" title="Google" href="http://www.google.com/">
        <link rel="help" href="http://www.w3.org/TR/hr-time/#sec-extenstions-performance-interface">

        <script src="/resources/testharness.js"></script>
        <script src="/resources/testharnessreport.js"></script>

        <script type="text/javascript">
            setup({explicit_done: true});

            function start_test() {
              setTimeout(function() {
                var iframe = document.createElement('iframe');
                iframe.id = 'frameContext';
                iframe.onload = finish_test;
                iframe.src = "resources/now_frame.html";
                document.body.appendChild(iframe);
              }, 1000);
            }

            function finish_test() {
              var childWindow = document.getElementById('frameContext').contentWindow;

              // Verify a positive number is returned for both the frame and parent.
              test(function() { assert_true(window.performance.now() > 0); }, 'parent performance.now() > 0');
              test(function() { assert_true(childWindow.performance.now() > 0); }, 'child performance.now() > 0');

              // Verify that the test properly created the child at least a second after the parent.
              test(function () { assert_true(childWindow.performance.timing.navigationStart > (window.performance.timing.navigationStart + 1000)); },
                                'Child created at least 1 second after parent');

              test(function () {
                var parentNow = window.performance.now();
                var childNow = childWindow.performance.now();
                var childParentSkew = Math.abs(childNow - parentNow);
                assert_true(childParentSkew > 1000, 'Child and parent\'s now()s have different bases (skewed more than 1 second)');

                var childLoadTime = childWindow.performance.timing.loadEventStart - childWindow.performance.timing.navigationStart;
                assert_true(1000 > (childNow - childLoadTime), 'Child\'s now() is based on its document\'s navigationStart');
              }, 'Child and parent time bases are correct');

              done();
            }
        </script>

    </head>
    <body onload="start_test()">
        <h1>Description</h1>
        <p>This test validates the values of the window.performance.now() are based on the current document's navigationStart.</p>
        <div id="log"></div>
    </body>
</html>
back to top