multiple-image-same-src.html (2233B)
1 <!DOCTYPE HTML> 2 <meta charset=utf-8> 3 <title>Largest Contentful Paint:dynamically appended image with different 4 dimensions but same src triggers new entry.</title> 5 <body> 6 <script src="/resources/testharness.js"></script> 7 <script src="/resources/testharnessreport.js"></script> 8 <script src="resources/largest-contentful-paint-helpers.js"></script> 9 <img src='/images/black-rectangle.png' id='image_id' width="50" /> 10 <script> 11 async_test(function (t) { 12 assert_implements(window.LargestContentfulPaint, "LargestContentfulPaint is not implemented"); 13 let beforeLoad = performance.now(); 14 let beforeSecondImageLoad = performance.now(); 15 let firstCallback = true; 16 // black-rectangle.png is 50 x 25. 17 const original_rect_size = 50 * 25; 18 // The bigger black rectangle is 100 x 50, but defined with width="50". 19 const bigger_rect_size = 100 * 50; 20 const observer = new PerformanceObserver( 21 t.step_func(function (entryList) { 22 assert_equals(entryList.getEntries().length, 1); 23 const entry = entryList.getEntries()[0]; 24 const url = window.location.origin + '/images/black-rectangle.png'; 25 if (firstCallback) { 26 // Checks the original black rectangle. 27 // TODO(https://crbug.com/1411616): we're testing approximated values. 28 checkImage(entry, url, 'image_id', original_rect_size, 29 beforeLoad, ["approximateSize"]); 30 // Creates a new bigger black rectangle. 31 const img = document.createElement('img'); 32 img.id = 'new_image_id'; 33 img.src = url; 34 img.width = 100; 35 beforeSecondImageLoad = performance.now(); 36 firstCallback = false; 37 document.body.appendChild(img); 38 } else { 39 // Checks the new black rectangle. 40 checkImage(entry, url, 'new_image_id', bigger_rect_size, beforeSecondImageLoad); 41 t.done(); 42 } 43 }) 44 ); 45 observer.observe({ type: 'largest-contentful-paint', buffered: true }); 46 }, 'Largest Contentful Paint:dynamically appended image with different ' + 47 'dimensions but same src triggers new entry.'); 48 </script> 49 </body>