• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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