diff options
author | Gilles Leblanc <gilles.leblanc@gmail.com> | 2015-01-21 20:16:45 -0500 |
---|---|---|
committer | Gilles Leblanc <gilles.leblanc@gmail.com> | 2015-02-03 21:40:07 -0500 |
commit | a1804effaf4f633e92572697135fb0afff6ee367 (patch) | |
tree | e04c3d099dfdaa641d0d9fb6004a98f62957e585 /components/script/dom/event.rs | |
parent | 902c16497c40684930819693a7e90f0862eb7f56 (diff) | |
download | servo-a1804effaf4f633e92572697135fb0afff6ee367.tar.gz servo-a1804effaf4f633e92572697135fb0afff6ee367.zip |
Initialize trusted-ness of DOM events properly
Fixes #3740
Diffstat (limited to 'components/script/dom/event.rs')
-rw-r--r-- | components/script/dom/event.rs | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/components/script/dom/event.rs b/components/script/dom/event.rs index 0cb8dbb6a29..7c9d73675d1 100644 --- a/components/script/dom/event.rs +++ b/components/script/dom/event.rs @@ -9,7 +9,7 @@ use dom::bindings::error::Fallible; use dom::bindings::global::GlobalRef; use dom::bindings::js::{MutNullableJS, JSRef, Temporary}; use dom::bindings::utils::{Reflector, reflect_dom_object}; -use dom::eventtarget::EventTarget; +use dom::eventtarget::{EventTarget, EventTargetHelpers}; use util::str::DOMString; use std::borrow::ToOwned; @@ -245,10 +245,17 @@ impl<'a> EventMethods for JSRef<'a, Event> { pub trait EventHelpers { fn set_trusted(self, trusted: bool); + fn fire(self, target: JSRef<EventTarget>); } impl<'a> EventHelpers for JSRef<'a, Event> { fn set_trusted(self, trusted: bool) { self.trusted.set(trusted); } + + // https://html.spec.whatwg.org/multipage/webappapis.html#fire-a-simple-event + fn fire(self, target: JSRef<EventTarget>) { + self.set_trusted(true); + target.dispatch_event(self); + } } |