longtask-attributes.html (1836B)
1 <!DOCTYPE HTML> 2 <meta charset=utf-8> 3 <title>LongTask Timing: validate long task attributes</title> 4 <body> 5 6 <script src="/resources/testharness.js"></script> 7 <script src="/resources/testharnessreport.js"></script> 8 <script src="resources/utils.js"></script> 9 10 <h1>Long Task Attributes</h1> 11 <div id="log"></div> 12 <script> 13 async_test(function (t) { 14 assert_implements(window.PerformanceLongTaskTiming, 'Longtasks are not supported.'); 15 const observer = new PerformanceObserver( 16 t.step_func(function (entryList) { 17 const entries = entryList.getEntries(); 18 assert_equals(entries.length, 1, 19 'Exactly one entry is expected.'); 20 const longtask = entries[0]; 21 checkLongTaskEntry(longtask); 22 // Assert the TaskAttributionTiming entry in attribution. 23 assert_equals(longtask.attribution.length, 1, 24 'Exactly one attribution entry is expected'); 25 const attribution = longtask.attribution[0]; 26 assert_equals(attribution.entryType, 'taskattribution'); 27 assert_equals(attribution.name, 'unknown'); 28 assert_equals(attribution.duration, 0); 29 assert_equals(attribution.startTime, 0); 30 assert_equals(attribution.containerType, 'window'); 31 assert_equals(attribution.containerId, ''); 32 assert_equals(attribution.containerName, ''); 33 assert_equals(attribution.containerSrc, ''); 34 observer.disconnect(); 35 t.done(); 36 }) 37 ); 38 observer.observe({entryTypes: ['longtask']}); 39 40 window.onload = () => { 41 /* Generate a slow task */ 42 const begin = window.performance.now(); 43 while (window.performance.now() < begin + 60); 44 }; 45 }, 'Performance longtask entries are observable.'); 46 </script> 47 48 </body>