| // META: script=resources/user-timing-helper.js |
| |
| async_test(function (t) { |
| let mark_entries = []; |
| const expected_entries = |
| [{ entryType: "mark", name: "mark1", detail: null}, |
| { entryType: "mark", name: "mark2", detail: null}, |
| { entryType: "mark", name: "mark3", detail: null}, |
| { entryType: "mark", name: "mark4", detail: null}, |
| { entryType: "mark", name: "mark5", detail: null}, |
| { entryType: "mark", name: "mark6", detail: {}}, |
| { entryType: "mark", name: "mark7", detail: {info: 'abc'}}, |
| { entryType: "mark", name: "mark8", detail: null, startTime: 234.56}, |
| { entryType: "mark", name: "mark9", detail: {count: 3}, startTime: 345.67}]; |
| const observer = new PerformanceObserver( |
| t.step_func(function (entryList, obs) { |
| mark_entries = |
| mark_entries.concat(entryList.getEntries()); |
| if (mark_entries.length >= expected_entries.length) { |
| checkEntries(mark_entries, expected_entries); |
| observer.disconnect(); |
| t.done(); |
| } |
| }) |
| ); |
| self.performance.clearMarks(); |
| observer.observe({entryTypes: ["mark"]}); |
| const returned_entries = []; |
| returned_entries.push(self.performance.mark("mark1")); |
| returned_entries.push(self.performance.mark("mark2", undefined)); |
| returned_entries.push(self.performance.mark("mark3", null)); |
| returned_entries.push(self.performance.mark("mark4", {})); |
| returned_entries.push(self.performance.mark("mark5", {detail: null})); |
| returned_entries.push(self.performance.mark("mark6", {detail: {}})); |
| returned_entries.push(self.performance.mark("mark7", {detail: {info: 'abc'}})); |
| returned_entries.push(self.performance.mark("mark8", {startTime: 234.56})); |
| returned_entries.push(self.performance.mark("mark9", {detail: {count: 3}, startTime: 345.67})); |
| checkEntries(returned_entries, expected_entries); |
| }, "mark entries' detail and startTime are customizable."); |