Skip to content

Commit

Permalink
[Longtasks] Add microtask test
Browse files Browse the repository at this point in the history
Bug: 980581
Change-Id: I3756836d5d865e7d68530f515a310bf925229148
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1769296
Commit-Queue: Nicolás Peña Moreno <npm@chromium.org>
Reviewed-by: Timothy Dresser <tdresser@chromium.org>
Cr-Commit-Position: refs/heads/master@{#691181}
  • Loading branch information
npm1 authored and chromium-wpt-export-bot committed Aug 28, 2019
1 parent 5a8e09e commit 716d242
Showing 1 changed file with 29 additions and 0 deletions.
29 changes: 29 additions & 0 deletions longtask-timing/long-microtask.window.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
async_test(function (t) {
if (typeof PerformanceLongTaskTiming === 'undefined') {
assert_unreached("Longtasks are not supported.");
t.done();
}
new PerformanceObserver(
t.step_func_done(entryList => {
const entries = entryList.getEntries();
assert_equals(entries.length, 1,
'Exactly one entry is expected.');
const longtask = entries[0];
assert_equals(longtask.entryType, 'longtask');
assert_equals(longtask.name, 'self');
assert_greater_than(longtask.duration, 50);
assert_greater_than_equal(longtask.startTime, 0);
const currentTime = performance.now();
assert_less_than_equal(longtask.startTime, currentTime);
t.done();
})
).observe({entryTypes: ['longtask']});

window.onload = () => {
/* Generate a slow microtask */
Promise.resolve().then(() => {
const begin = window.performance.now();
while (window.performance.now() < begin + 60);
});
};
}, 'A short task followed by a long microtask is observable.');

0 comments on commit 716d242

Please sign in to comment.