diff options
Diffstat (limited to 'testing/web-platform/tests/timing-entrytypes-registry/resources/utils.js')
-rw-r--r-- | testing/web-platform/tests/timing-entrytypes-registry/resources/utils.js | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/testing/web-platform/tests/timing-entrytypes-registry/resources/utils.js b/testing/web-platform/tests/timing-entrytypes-registry/resources/utils.js new file mode 100644 index 0000000000..0ec96057ad --- /dev/null +++ b/testing/web-platform/tests/timing-entrytypes-registry/resources/utils.js @@ -0,0 +1,29 @@ +const STEPS = {}; + +const types = (self.PerformanceObserver + && self.PerformanceObserver.supportedEntryTypes)? + self.PerformanceObserver.supportedEntryTypes + : undefined; + +if (types) { + // we observe everything as soon as possible + new PerformanceObserver(function (list, observer) { + for (const entry of list.getEntries()) + if (STEPS[entry.entryType]) STEPS[entry.entryType](entry); + }).observe({entryTypes: self.PerformanceObserver.supportedEntryTypes}); +} + +function test_support(def) { + if (!types || !types.includes(def[0])) { + return; + } + const desc = `'${def[0]}' entries should be observable`; + const t = async_test(desc); + + STEPS[def[0]] = (entry) => { + t.step(() => assert_equals(Object.prototype.toString.call(entry), + `[object ${def[1]}]`, + `Class name of entry should be ${def[1]}.`)); + t.done(); + } +} |