observe-empty-attribute.html (1610B)
1 <!DOCTYPE HTML> 2 <meta charset=utf-8> 3 <title>Element Timing: observe with empty elementtiming attribute</title> 4 <script src="/resources/testharness.js"></script> 5 <script src="/resources/testharnessreport.js"></script> 6 <script src="resources/element-timing-helpers.js"></script> 7 <script> 8 let beforeRender; 9 async_test(function (t) { 10 assert_implements(window.PerformanceElementTiming, "PerformanceElementTiming is not implemented"); 11 let observedImage = false; 12 let observedText = false; 13 const observer = new PerformanceObserver( 14 t.step_func(function(entryList) { 15 entryList.getEntries().forEach(entry => { 16 if (entry.name === 'image-paint') { 17 assert_false(observedImage, 'Image should only be observed once.'); 18 const pathname = window.location.origin + '/element-timing/resources/square20.png'; 19 checkElement(entry, pathname, '', 'square', beforeRender, 20 document.getElementById('square')); 21 checkNaturalSize(entry, 20, 20); 22 observedImage = true; 23 } else { 24 assert_false(observedText, 'Text should only be observed once.'); 25 checkTextElement(entry, '', 'text', beforeRender, document.getElementById('text')); 26 observedText = true; 27 } 28 }); 29 if (observedImage && observedText) 30 t.done(); 31 }) 32 ); 33 observer.observe({type: 'element', buffered: true}); 34 beforeRender = performance.now(); 35 }, "Able to observe image and text with empty elementtiming attribute."); 36 </script> 37 <img id='square' src='resources/square20.png' elementtiming/> 38 <p id='text' elementtiming>Text!</p>