1<!DOCTYPE HTML> 2<meta charset=utf-8> 3<title>PerformanceObservers: resource</title> 4<script src="/resources/testharness.js"></script> 5<script src="/resources/testharnessreport.js"></script> 6<script src="performanceobservers.js"></script> 7<h1>PerformanceObservers: resource</h1> 8<p> 9New resources will <a href="https://w3c.github.io/performance-timeline/#dfn-queue-a-performanceentry">queue a PerformanceEntry</a>. 10</p> 11<div id="log"></div> 12<script> 13 async_test(function (t) { 14 function path(pathname) { 15 var filename = pathname.substring(pathname.lastIndexOf('/')+1); 16 return pathname.substring(0, pathname.length - filename.length); 17 } 18 var gUniqueCounter = 0; 19 function generateUniqueValues() { 20 return Date.now() + "-" + (++gUniqueCounter); 21 } 22 var stored_entries = []; 23 var img_location = document.location.origin + path(document.location.pathname) 24 + "resources/square.png?random="; 25 var img1 = img_location + generateUniqueValues(); 26 var img2 = img_location + generateUniqueValues(); 27 var observer = new PerformanceObserver( 28 t.step_func(function (entryList, obs) { 29 stored_entries = 30 stored_entries.concat(entryList.getEntriesByType("resource")); 31 if (stored_entries.length >= 2) { 32 checkEntries(stored_entries, 33 [{ entryType: "resource", name: img1}, 34 { entryType: "resource", name: img2}]); 35 observer.disconnect(); 36 t.done(); 37 } 38 }) 39 ); 40 observer.observe({entryTypes: ["resource"]}); 41 var img = document.createElement("img"); 42 img.src = img1; 43 document.body.appendChild(img); 44 img = document.createElement("img"); 45 img.src = img2; 46 document.body.appendChild(img); 47 }, "resource entries are observable"); 48</script> 49