loadTime-after-appendChild.html (1320B)
1 <!DOCTYPE HTML> 2 <meta charset=utf-8> 3 <title>Largest Contentful Paint: delayed appended image.</title> 4 <body> 5 <script src="/resources/testharness.js"></script> 6 <script src="/resources/testharnessreport.js"></script> 7 <script src="resources/largest-contentful-paint-helpers.js"></script> 8 <script> 9 setup({"hide_test_state": true}); 10 async_test(function (t) { 11 assert_implements(window.LargestContentfulPaint, "LargestContentfulPaint is not implemented"); 12 let beforeLoad; 13 const observer = new PerformanceObserver( 14 t.step_func_done(entryList => { 15 assert_equals(entryList.getEntries().length, 1); 16 const entry = entryList.getEntries()[0]; 17 const url = window.location.origin + '/images/black-rectangle.png'; 18 // blue.png is 100 by 50. 19 const size = 100 * 50; 20 checkImage(entry, url, 'image_id', size, beforeLoad); 21 }) 22 ); 23 observer.observe({type: 'largest-contentful-paint', buffered: true}); 24 const img = document.createElement('img'); 25 img.src = '/images/black-rectangle.png'; 26 img.id = 'image_id'; 27 t.step_timeout(() => { 28 beforeLoad = performance.now(); 29 document.getElementById('image_div').appendChild(img); 30 }, 200) 31 }, 'Image loadTime occurs after appendChild is called.'); 32 </script> 33 <div id='image_div'></div> 34 </body>