multiple-background-images.html (2086B)
1 <!DOCTYPE HTML> 2 <meta charset=utf-8> 3 <title>Element Timing: observe element with multiple background images</title> 4 <body> 5 <style> 6 body { 7 margin: 0; 8 } 9 #target { 10 width: 200px; 11 height: 200px; 12 background-image: url('resources/circle.svg'), url('resources/square100.png'); 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 let numObservedElements = 0; 23 let observedCircle = false; 24 let observedSquare = false; 25 const pathPrefix = window.location.origin + '/element-timing/resources/'; 26 let div = document.getElementById('target'); 27 const observer = new PerformanceObserver( 28 t.step_func(entryList => { 29 entryList.getEntries().forEach(entry => { 30 numObservedElements++; 31 if (entry.url.endsWith('square100.png')) { 32 observedSquare = true; 33 checkElement(entry, pathPrefix + 'square100.png', 'multi', 'target', beforeRender, div); 34 checkRect(entry, [0, 200, 0, 200]); 35 checkNaturalSize(entry, 100, 100); 36 } 37 else if (entry.url.endsWith('circle.svg')) { 38 observedCircle = true; 39 checkElement(entry, pathPrefix + 'circle.svg', 'multi', 'target', beforeRender, div); 40 checkRect(entry, [0, 200, 0, 200]); 41 checkNaturalSize(entry, 200, 200); 42 } 43 else { 44 assert_unreached("Should not have observed an entry with different url!"); 45 } 46 if (numObservedElements === 2) { 47 assert_true(observedCircle); 48 assert_true(observedSquare); 49 t.done(); 50 } 51 }); 52 }) 53 ); 54 observer.observe({entryTypes: ['element']}); 55 }, 'Element with two background images receives both.'); 56 </script> 57 <div id='target' elementtiming='multi'></div> 58 </body>