summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/longtask-timing/buffered-flag.window.js
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/longtask-timing/buffered-flag.window.js')
-rw-r--r--testing/web-platform/tests/longtask-timing/buffered-flag.window.js26
1 files changed, 26 insertions, 0 deletions
diff --git a/testing/web-platform/tests/longtask-timing/buffered-flag.window.js b/testing/web-platform/tests/longtask-timing/buffered-flag.window.js
new file mode 100644
index 0000000000..a0ba728ed2
--- /dev/null
+++ b/testing/web-platform/tests/longtask-timing/buffered-flag.window.js
@@ -0,0 +1,26 @@
+// META: script=resources/utils.js
+
+async_test(t => {
+ assert_implements(window.PerformanceLongTaskTiming, 'Longtasks are not supported.');
+ new PerformanceObserver(t.step_func((entryList, obs) => {
+ const observer = new PerformanceObserver(t.step_func_done(list => {
+ let longtaskObserved = false;
+ list.getEntries().forEach(entry => {
+ if (entry.entryType === 'mark')
+ return;
+ checkLongTaskEntry(entry);
+ longtaskObserved = true;
+ });
+ assert_true(longtaskObserved, 'Did not observe buffered longtask.');
+ }));
+ observer.observe({type: 'longtask', buffered: true});
+ // Observer mark so that we can flush the observer callback.
+ observer.observe({type: 'mark'});
+ performance.mark('m');
+ // Disconnect the embedding observer so this callback only runs once.
+ obs.disconnect();
+ })).observe({entryTypes: ['longtask']});
+ // Create a long task.
+ const begin = window.performance.now();
+ while (window.performance.now() < begin + 60);
+}, 'PerformanceObserver with buffered flag can see previous longtask entries.');