background-image-data-uri.html (1856B)
1 <!DOCTYPE HTML> 2 <meta charset=utf-8> 3 <title>Element Timing: observe element with inline background image</title> 4 <body> 5 <style> 6 body { 7 margin: 0; 8 } 9 #target { 10 width: 100px; 11 height: 50px; 12 background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKAQMAAAC3/F3+AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABlBMVEX/AAD///9BHTQRAAAAAWJLR0QB/wIt3gAAAAtJREFUCNdjYMAHAAAeAAFuhUcyAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE5LTA0LTA1VDIwOjA4OjQxKzAyOjAwPa6EZwAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxOS0wNC0wNVQyMDowODo0MSswMjowMEzzPNsAAAAASUVORK5CYII=); 13 } 14 </style> 15 <script src="/resources/testharness.js"></script> 16 <script src="/resources/testharnessreport.js"></script> 17 <script src="resources/element-timing-helpers.js"></script> 18 <script> 19 let beforeRender = performance.now(); 20 async_test(function (t) { 21 assert_implements(window.PerformanceElementTiming, "PerformanceElementTiming is not implemented"); 22 const observer = new PerformanceObserver( 23 t.step_func_done(function(entryList) { 24 assert_equals(entryList.getEntries().length, 1); 25 const entry = entryList.getEntries()[0]; 26 // Only the first characters of the data URI are included in the entry. 27 const uriPrefix = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKAQMAAAC3/F3+AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAA'; 28 checkElementWithoutResourceTiming(entry, uriPrefix, 'my_div', 'target', 29 beforeRender, document.getElementById('target')); 30 // The background image is a red square of length 10. 31 checkRect(entry, [0, 100, 0, 50]); 32 checkNaturalSize(entry, 10, 10); 33 }) 34 ); 35 observer.observe({entryTypes: ['element']}); 36 }, 'Element with elementtiming attribute and inline background image is observable.'); 37 </script> 38 <div id='target' elementtiming='my_div'></div> 39 </body>