aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/eventtarget.rs
diff options
context:
space:
mode:
Diffstat (limited to 'components/script/dom/eventtarget.rs')
-rw-r--r--components/script/dom/eventtarget.rs22
1 files changed, 20 insertions, 2 deletions
diff --git a/components/script/dom/eventtarget.rs b/components/script/dom/eventtarget.rs
index 612c3d78b11..94998185507 100644
--- a/components/script/dom/eventtarget.rs
+++ b/components/script/dom/eventtarget.rs
@@ -11,12 +11,12 @@ use dom::bindings::codegen::Bindings::EventListenerBinding::EventListener;
use dom::bindings::codegen::Bindings::EventTargetBinding::EventTargetMethods;
use dom::bindings::codegen::UnionTypes::EventOrString;
use dom::bindings::error::{Error, Fallible, report_pending_exception};
-use dom::bindings::global::global_root_from_reflector;
+use dom::bindings::global::{GlobalRef, global_root_from_reflector};
use dom::bindings::inheritance::{Castable, EventTargetTypeId};
use dom::bindings::js::Root;
use dom::bindings::reflector::{Reflectable, Reflector};
use dom::errorevent::ErrorEvent;
-use dom::event::Event;
+use dom::event::{Event, EventBubbles, EventCancelable};
use dom::eventdispatcher::dispatch_event;
use dom::virtualmethods::VirtualMethods;
use dom::window::Window;
@@ -329,6 +329,24 @@ impl EventTarget {
pub fn has_handlers(&self) -> bool {
!self.handlers.borrow().is_empty()
}
+
+ /// Implements https://html.spec.whatwg.org/multipage/#fire-a-simple-event
+ pub fn fire_simple_event(&self, name: &str, win: GlobalRef) -> Root<Event> {
+ self.fire_simple_event_params(name, EventBubbles::DoesNotBubble,
+ EventCancelable::NotCancelable, win)
+ }
+
+ /// Implements more customizable variant of EventTarget::fire_simple_event.
+ pub fn fire_simple_event_params(&self, name: &str,
+ bubbles: EventBubbles,
+ cancelable: EventCancelable,
+ win: GlobalRef) -> Root<Event> {
+ let event = Event::new(win, Atom::from(name), bubbles, cancelable);
+
+ event.fire(self);
+
+ event
+ }
}
impl EventTargetMethods for EventTarget {