buffered-flag.window.js (1198B)
1 // META: script=resources/utils.js 2 3 async_test(t => { 4 assert_implements(window.PerformanceLongTaskTiming, 'Longtasks are not supported.'); 5 new PerformanceObserver(t.step_func((entryList, obs) => { 6 const observer = new PerformanceObserver(t.step_func_done(list => { 7 let longtaskObserved = false; 8 list.getEntries().forEach(entry => { 9 if (entry.entryType === 'mark') 10 return; 11 checkLongTaskEntry(entry); 12 longtaskObserved = true; 13 }); 14 assert_true(longtaskObserved, 'Did not observe buffered longtask.'); 15 })); 16 observer.observe({type: 'longtask', buffered: true}); 17 // Observer mark so that we can flush the observer callback. 18 observer.observe({type: 'mark'}); 19 performance.mark('m'); 20 // Disconnect the embedding observer so this callback only runs once. 21 obs.disconnect(); 22 })).observe({entryTypes: ['longtask']}); 23 // Create a long task. 24 const begin = window.performance.now(); 25 while (window.performance.now() < begin + 60); 26 }, 'PerformanceObserver with buffered flag can see previous longtask entries.');