| <!DOCTYPE HTML> |
| <meta charset=utf-8> |
| <title>PerformanceObservers: resource</title> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <script src="performanceobservers.js"></script> |
| <h1>PerformanceObservers: resource</h1> |
| <p> |
| New resources will <a href="https://w3c.github.io/performance-timeline/#dfn-queue-a-performanceentry">queue a PerformanceEntry</a>. |
| </p> |
| <div id="log"></div> |
| <script> |
| async_test(function (t) { |
| function path(pathname) { |
| var filename = pathname.substring(pathname.lastIndexOf('/')+1); |
| return pathname.substring(0, pathname.length - filename.length); |
| } |
| var gUniqueCounter = 0; |
| function generateUniqueValues() { |
| return Date.now() + "-" + (++gUniqueCounter); |
| } |
| var stored_entries = []; |
| var img_location = document.location.origin + path(document.location.pathname) |
| + "resources/square.png?random="; |
| var img1 = img_location + generateUniqueValues(); |
| var img2 = img_location + generateUniqueValues(); |
| var observer = new PerformanceObserver( |
| t.step_func(function (entryList, obs) { |
| stored_entries = |
| stored_entries.concat(entryList.getEntriesByType("resource")); |
| if (stored_entries.length >= 2) { |
| checkEntries(stored_entries, |
| [{ entryType: "resource", name: img1}, |
| { entryType: "resource", name: img2}]); |
| observer.disconnect(); |
| t.done(); |
| } |
| }) |
| ); |
| observer.observe({entryTypes: ["resource"]}); |
| var img = document.createElement("img"); |
| img.src = img1; |
| document.body.appendChild(img); |
| img = document.createElement("img"); |
| img.src = img2; |
| document.body.appendChild(img); |
| }, "resource entries are observable"); |
| </script> |