<!DOCTYPE HTML> <meta charset=utf-8> <title>Largest Contentful Paint: observe image.</title> <style> #target { background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="100" height="50"><rect fill="lime" width="100" height="50"/></svg>'); width: 100px; height: 50px; } </style> <body> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="resources/largest-contentful-paint-helpers.js"></script> <script> async_test(function (t) { assert_implements(window.LargestContentfulPaint, "LargestContentfulPaint is not implemented"); const beforeLoad = performance.now(); const observer = new PerformanceObserver( t.step_func_done(function(entryList) { assert_equals(entryList.getEntries().length, 1); const entry = entryList.getEntries()[0]; let url = 'data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg"'; url += ' width="100" height="50"><rect fill="lime" width="100"'; url += ' height="50"/></svg>'; // green.svg is 100 by 50 const size = 100 * 50; checkImage(entry, url, 'target', size, beforeLoad); }) ); observer.observe({type: 'largest-contentful-paint', buffered: true}); t.step_timeout(() => { assert_unreached("The image should have triggered an LCP entry."); t.done(); }, 1000); }, 'Data-URI background SVG image is observable.'); </script> <div id="target" width="100" height="50"></div> </body>