diff --git a/components/script/dom/document.rs b/components/script/dom/document.rs index a7a99695147..d816428684b 100644 --- a/components/script/dom/document.rs +++ b/components/script/dom/document.rs @@ -2127,7 +2127,7 @@ impl Document { let event = beforeunload_event.upcast::(); event.set_trusted(true); let event_target = self.window.upcast::(); - let has_listeners = event.has_listeners_for(&event_target, &atom!("beforeunload")); + let has_listeners = event_target.has_listeners_for(&atom!("beforeunload")); self.window.dispatch_event_with_target_override(&event); // TODO: Step 6, decrease the event loop's termination nesting level by 1. // Step 7 @@ -2197,7 +2197,7 @@ impl Document { ); event.set_trusted(true); let event_target = self.window.upcast::(); - let has_listeners = event.has_listeners_for(&event_target, &atom!("unload")); + let has_listeners = event_target.has_listeners_for(&atom!("unload")); let _ = self.window.dispatch_event_with_target_override(&event); self.fired_unload.set(true); // Step 9 diff --git a/components/script/dom/event.rs b/components/script/dom/event.rs index 417170eac2e..c5a5835521f 100644 --- a/components/script/dom/event.rs +++ b/components/script/dom/event.rs @@ -138,18 +138,6 @@ impl Event { self.cancelable.set(cancelable); } - // Determine if there are any listeners for a given target and type. - // See https://github.com/whatwg/dom/issues/453 - pub fn has_listeners_for(&self, target: &EventTarget, type_: &Atom) -> bool { - // TODO: take 'removed' into account? Not implemented in Servo yet. - // https://dom.spec.whatwg.org/#event-listener-removed - let mut event_path = self.construct_event_path(&target); - event_path.push(DomRoot::from_ref(target)); - event_path - .iter() - .any(|target| target.has_listeners_for(type_)) - } - // https://dom.spec.whatwg.org/#event-path // TODO: shadow roots put special flags in the path, // and it will stop just being a list of bare EventTargets diff --git a/components/script/dom/eventtarget.rs b/components/script/dom/eventtarget.rs index 65375632d6c..919cf43b4fc 100644 --- a/components/script/dom/eventtarget.rs +++ b/components/script/dom/eventtarget.rs @@ -367,6 +367,8 @@ impl EventTarget { Ok(EventTarget::new(global, proto)) } + /// Determine if there are any listeners for a given event type. + /// See . pub fn has_listeners_for(&self, type_: &Atom) -> bool { match self.handlers.borrow().get(type_) { Some(listeners) => listeners.has_listeners(),