File: tojson.html

package info (click to toggle)
thunderbird 1%3A115.16.0esr-1~deb12u1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 3,476,252 kB
  • sloc: cpp: 6,972,150; javascript: 5,209,211; ansic: 3,507,222; python: 1,137,609; asm: 432,531; xml: 205,149; java: 175,761; sh: 116,485; makefile: 22,152; perl: 13,971; objc: 12,561; yacc: 4,583; pascal: 2,840; lex: 1,720; ruby: 1,075; exp: 762; sql: 666; awk: 580; php: 436; lisp: 430; sed: 70; csh: 10
file content (71 lines) | stat: -rw-r--r-- 2,108 bytes parent folder | download | duplicates (21)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>This test validates that PerformanceResourceTiming's toJSON method
       contains all of the entry's attributes.</title>
<link rel="author" title="Google" href="http://www.google.com/" />
<link rel="help"
      href="https://www.w3.org/TR/resource-timing-2/#dom-performanceresourcetiming-tojson">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
</head>
<body>
<script>
promise_test(() => {
  return new Promise((resolve, reject) => {
    const po = new PerformanceObserver(list => {
      const entries = list.getEntries();
      if (entries.length < 1) {
        throw new Error(`No entries to run the test with.`);
      }
      assert_greater_than_equal(entries.length, 1);
      const entry = entries[0];
      assert_equals(typeof(entry.toJSON), 'function');
      const json = entry.toJSON();
      assert_equals(typeof(json), 'object');

      const performanceResourceTimingKeys = [
        'name',
        'entryType',
        'startTime',
        'duration',
        'initiatorType',
        'nextHopProtocol',
        'workerStart',
        'redirectStart',
        'redirectEnd',
        'fetchStart',
        'domainLookupStart',
        'domainLookupEnd',
        'connectStart',
        'connectEnd',
        'secureConnectionStart',
        'requestStart',
        'responseStart',
        'responseEnd',
        'transferSize',
        'encodedBodySize',
        'decodedBodySize',
        'renderBlockingStatus',
        'responseStatus',
        'contentType',
      ];
      for (const key of performanceResourceTimingKeys) {
        try {
          assert_false(json[key] === undefined,
            `entry.toJSON().${key} is undefined`);
          assert_equals(json[key], entry[key],
            `entry.toJSON().${key} should match entry.${key}`);
        } catch(e) {
          reject(e);
        }
      }
      resolve();
    });
    po.observe({type: "resource", buffered: true});
  });
}, 'Test toJSON() in PerformanceResourceTiming');
</script>
</body>
</html>