diff options
author | Gregory Terzian <gterzian@users.noreply.github.com> | 2018-04-27 13:35:53 +0800 |
---|---|---|
committer | Gregory Terzian <gterzian@users.noreply.github.com> | 2018-05-05 19:14:43 +0800 |
commit | 29d1cf6270b56af65971f27af4aa47c549eef788 (patch) | |
tree | be7ec3a78ac287d662a7f3426f75edd4cef68cba /components/script/dom/eventtarget.rs | |
parent | 427eaed535dfdeaf735a40e3cb82ad7077aa86c5 (diff) | |
download | servo-29d1cf6270b56af65971f27af4aa47c549eef788.tar.gz servo-29d1cf6270b56af65971f27af4aa47c549eef788.zip |
implement "has event listener", plug into (before)unload
Diffstat (limited to 'components/script/dom/eventtarget.rs')
-rw-r--r-- | components/script/dom/eventtarget.rs | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/components/script/dom/eventtarget.rs b/components/script/dom/eventtarget.rs index df15ff1b2bc..3d028a00cdb 100644 --- a/components/script/dom/eventtarget.rs +++ b/components/script/dom/eventtarget.rs @@ -277,6 +277,12 @@ impl EventListeners { } }).collect() } + + fn has_listeners(&self) -> bool { + // TODO: add, and take into account, a 'removed' field? + // https://dom.spec.whatwg.org/#event-listener-removed + self.0.len() > 0 + } } #[dom_struct] @@ -303,6 +309,15 @@ impl EventTarget { Ok(EventTarget::new(global)) } + pub fn has_listeners_for(&self, + type_: &Atom) + -> bool { + match self.handlers.borrow().get(type_) { + Some(listeners) => listeners.has_listeners(), + None => false + } + } + pub fn get_listeners_for(&self, type_: &Atom, specific_phase: Option<ListenerPhase>) |