aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/eventtarget.rs
diff options
context:
space:
mode:
authorbors-servo <lbergstrom+bors@mozilla.com>2015-12-22 22:38:19 +0530
committerbors-servo <lbergstrom+bors@mozilla.com>2015-12-22 22:38:19 +0530
commitdafdc856ac3fc2bd000e61bdcaed2c024828de0c (patch)
treea52201e537222e7655c5e9ac4563d83470d4f3fd /components/script/dom/eventtarget.rs
parent9306be60c23bdb828dc41f3379e77781d3eafff7 (diff)
parentd38771e2708b7beabfb9c31c5bbc288534c20b77 (diff)
downloadservo-dafdc856ac3fc2bd000e61bdcaed2c024828de0c.tar.gz
servo-dafdc856ac3fc2bd000e61bdcaed2c024828de0c.zip
Auto merge of #9030 - askobara:refactoring-add-htmlformelement-fire_event, r=Manishearth
Add helper method HTMLFormElement::fire_event Fixes #8777 <!-- Reviewable:start --> [<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/9030) <!-- Reviewable:end -->
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 {