aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/eventtarget.rs
diff options
context:
space:
mode:
authorGregory Terzian <gterzian@users.noreply.github.com>2018-04-27 13:35:53 +0800
committerGregory Terzian <gterzian@users.noreply.github.com>2018-05-05 19:14:43 +0800
commit29d1cf6270b56af65971f27af4aa47c549eef788 (patch)
treebe7ec3a78ac287d662a7f3426f75edd4cef68cba /components/script/dom/eventtarget.rs
parent427eaed535dfdeaf735a40e3cb82ad7077aa86c5 (diff)
downloadservo-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.rs15
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>)