<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Navigation Timing 2 WPT</title> <link rel="author" title="Google" href="http://www.google.com/" /> <link rel="help" href="http://www.w3.org/TR/navigation-timing-2/#sec-PerformanceNavigationTiming"/> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="/common/get-host-info.sub.js"></script> </head> <body> <h1>Description</h1> <p>This test validates that nav timing 2 instance can be accessed by three different accessors once available: window.performance.getEntries()/getEntriesByType("navigation")/getEntriesByName("document")</p> <script> var host_info = get_host_info(); var expectedUrl = "http://" + host_info.ORIGINAL_HOST + ":" + host_info.HTTP_PORT + "/navigation-timing/nav2-test-instance-accessors.html"; var navTiming2Attributes = [ 'connectEnd', 'connectStart', 'decodedBodySize', 'domComplete', 'domContentLoadedEventEnd', 'domContentLoadedEventStart', 'domInteractive', 'domainLookupEnd', 'domainLookupStart', 'duration', 'encodedBodySize', 'entryType', 'fetchStart', 'initiatorType', 'loadEventEnd', 'loadEventStart', 'name', 'redirectCount', 'redirectEnd', 'redirectStart', 'requestStart', 'responseEnd', 'responseStart', 'secureConnectionStart', 'transferSize', 'type', 'unloadEventEnd', 'unloadEventStart', 'workerStart' ]; async_test(function (t) { var observer = new PerformanceObserver( t.step_func(function (entryList) { var instance1 = performance.getEntries()[0]; var instance2 = performance.getEntriesByType("navigation")[0]; var instance3 = performance.getEntriesByName(expectedUrl)[0]; assert_equals(performance.getEntriesByType("navigation").length, 1, "Expected there is only one navigation timing instance."); assert_equals(performance.getEntriesByName(expectedUrl).length, 1, "Expected there is only one navigation timing instance."); for (var i = 0; i < navTiming2Attributes.length; i++) { assert_equals(instance1[navTiming2Attributes[i]], instance2[navTiming2Attributes[i]]); } for (var i = 0; i < navTiming2Attributes.length; i++) { assert_equals(instance1[navTiming2Attributes[i]], instance3[navTiming2Attributes[i]]); } observer.disconnect(); t.done(); }) ); observer.observe({entryTypes: ["navigation"]}); }, "Performance navigation timing entries are accessible through three different accessors."); </script> </body> </html>