test_server_timing.https.html (1623B)
1 <!DOCTYPE html> 2 <head> 3 <meta charset='utf-8' /> 4 <script src="/resources/testharness.js"></script> 5 <script src="/resources/testharnessreport.js"></script> 6 <script src="/common/performance-timeline-utils.js"></script> 7 <script> 8 setup({explicit_done: true}) 9 10 delayedLoadListener(function() { 11 // there should be exactly three server-timing entries, 2 for document, 1 for img#one 12 test_entries(performance.getEntriesByType('navigation')[0].serverTiming, [{ 13 duration: 1.1, 14 name: 'metric1', 15 description: 'document', 16 }, { 17 duration: 1.2, 18 name: 'metric1', 19 description: 'document', 20 }]) 21 test_entries(performance.getEntriesByName(document.querySelector('img#one').src)[0].serverTiming, [{ 22 duration: 2.1, 23 name: 'metric2', 24 description: 'blue.png', 25 }]) 26 27 new PerformanceObserver(function(entryList, observer) { 28 // there should be exactly one server-timing entry, 1 for img#two 29 test_entries(entryList.getEntriesByName(document.querySelector('img#two').src)[0].serverTiming, [{ 30 duration: 3.1, 31 name: 'metric3', 32 description: 'green.png', 33 }]) 34 observer.disconnect() 35 done() 36 }).observe({entryTypes: ['resource']}) 37 38 var img = document.createElement('img') 39 img.id = 'two' 40 img.src = './resources/green.png' 41 document.getElementsByTagName('script')[0].parentNode.appendChild(img) 42 }) 43 </script> 44 </head> 45 <img id='one' src='resources/blue.png'>