async_test(t => { function checkEntryList(entries) { assert_equals(entries.length, 1, "Only one navigation timing entry"); assert_equals(entries[0].entryType, "navigation", "entryType is \"navigation\""); assert_equals(entries[0].name, window.location.toString(), "name is the address of the document"); } // First observer creates second in callback to ensure the entry has been dispatched by the time // the second observer begins observing. new PerformanceObserver(t.step_func(entryList => { checkEntryList(entryList.getEntries()); // Second observer requires 'buffered: true' to see the navigation entry. new PerformanceObserver(t.step_func_done(list => { checkEntryList(list.getEntries()); })).observe({type: 'navigation', buffered: true}); })).observe({entryTypes: ["navigation"]}); }, "PerformanceObserver with buffered flag sees previous navigation entry.");