Source code
Revision control
Copy as Markdown
Other Tools
Test Info:
- This WPT test may be referenced by the following Test IDs:
- /performance-timeline/po-resource.html - WPT Dashboard Interop Dashboard
<!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>