• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// META: script=resources/user-timing-helper.js
2
3async_test(function (t) {
4    let mark_entries = [];
5    const expected_entries =
6        [{ entryType: "mark", name: "mark1", detail: null},
7        { entryType: "mark", name: "mark2", detail: null},
8        { entryType: "mark", name: "mark3", detail: null},
9        { entryType: "mark", name: "mark4", detail: null},
10        { entryType: "mark", name: "mark5", detail: null},
11        { entryType: "mark", name: "mark6", detail: {}},
12        { entryType: "mark", name: "mark7", detail: {info: 'abc'}},
13        { entryType: "mark", name: "mark8", detail: null, startTime: 234.56},
14        { entryType: "mark", name: "mark9", detail: {count: 3}, startTime: 345.67}];
15    const observer = new PerformanceObserver(
16        t.step_func(function (entryList, obs) {
17          mark_entries =
18            mark_entries.concat(entryList.getEntries());
19          if (mark_entries.length >= expected_entries.length) {
20            checkEntries(mark_entries, expected_entries);
21            observer.disconnect();
22            t.done();
23          }
24        })
25      );
26    self.performance.clearMarks();
27    observer.observe({entryTypes: ["mark"]});
28    const returned_entries = [];
29    returned_entries.push(self.performance.mark("mark1"));
30    returned_entries.push(self.performance.mark("mark2", undefined));
31    returned_entries.push(self.performance.mark("mark3", null));
32    returned_entries.push(self.performance.mark("mark4", {}));
33    returned_entries.push(self.performance.mark("mark5", {detail: null}));
34    returned_entries.push(self.performance.mark("mark6", {detail: {}}));
35    returned_entries.push(self.performance.mark("mark7", {detail: {info: 'abc'}}));
36    returned_entries.push(self.performance.mark("mark8", {startTime: 234.56}));
37    returned_entries.push(self.performance.mark("mark9", {detail: {count: 3}, startTime: 345.67}));
38    checkEntries(returned_entries, expected_entries);
39}, "mark entries' detail and startTime are customizable.");
40