This commit is contained in:
Patrick Shaughnessy 2020-01-29 14:59:43 -05:00
parent 6d15c0682d
commit 5c00acca98

View file

@ -218,19 +218,14 @@ impl Performance {
let mut obs_entries = observer.entries(); let mut obs_entries = observer.entries();
obs_entries.append(&mut new_entries); obs_entries.append(&mut new_entries);
observer.set_entries(obs_entries); observer.set_entries(obs_entries);
}
// W3C spec as of Jan 24 2020 does not say that we necessarily
// queue a notification task here, but WPT tests such as
// performance-timeline/multiple-buffered-flag-observers.any.js
// assume we do, and we get intermittent race condition
// test results if we don't.
if !self.pending_notification_observers_task.get() { if !self.pending_notification_observers_task.get() {
self.pending_notification_observers_task.set(true); self.pending_notification_observers_task.set(true);
let task_source = self.global().performance_timeline_task_source(); let task_source = self.global().performance_timeline_task_source();
task_source.queue_notification(&self.global()); task_source.queue_notification(&self.global());
} }
} }
}
let mut observers = self.observers.borrow_mut(); let mut observers = self.observers.borrow_mut();
match observers.iter().position(|o| *o.observer == *observer) { match observers.iter().position(|o| *o.observer == *observer) {
// If the observer is already in the list, we only update // If the observer is already in the list, we only update