observe-random-namespace.html (1837B)
1 <!DOCTYPE HTML> 2 <meta charset=utf-8> 3 <title>Largest Contentful Paint: observe element created in a random namespace</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 <style> 9 div { 10 display: block; 11 } 12 </style> 13 <script> 14 async_test(function (t) { 15 assert_implements(window.LargestContentfulPaint, "LargestContentfulPaint is not implemented"); 16 let beforeRender; 17 const observer = new PerformanceObserver( 18 t.step_func_done(function(entryList) { 19 assert_equals(entryList.getEntries().length, 1); 20 const entry = entryList.getEntries()[0]; 21 assert_equals(entry.entryType, 'largest-contentful-paint'); 22 assert_greater_than_equal(entry.renderTime, beforeRender); 23 assert_greater_than_equal(performance.now(), entry.renderTime); 24 assert_approx_equals(entry.startTime, entry.renderTime, 0.001, 25 'startTime should be equal to renderTime to the precision of 1 millisecond.'); 26 assert_equals(entry.duration, 0); 27 // Some lower bound: height of at least 12 px. 28 // Width of at least 100 px. 29 assert_greater_than(entry.size, 1200); 30 assert_equals(entry.loadTime, 0); 31 assert_equals(entry.url, ''); 32 assert_equals(entry.id, 'my_text'); 33 assert_equals(entry.element, document.getElementById("my_text")); 34 }) 35 ); 36 observer.observe({type: 'largest-contentful-paint', buffered: true}); 37 38 const div = document.createElementNS("random", "div"); 39 div.innerHTML = "This is important text! :)"; 40 div.id = "my_text"; 41 beforeRender = performance.now(); 42 document.body.appendChild(div); 43 }, 'Element created with different namespace is observable'); 44 </script> 45 </body>