diff options
author | bors-servo <lbergstrom+bors@mozilla.com> | 2015-12-22 22:38:19 +0530 |
---|---|---|
committer | bors-servo <lbergstrom+bors@mozilla.com> | 2015-12-22 22:38:19 +0530 |
commit | dafdc856ac3fc2bd000e61bdcaed2c024828de0c (patch) | |
tree | a52201e537222e7655c5e9ac4563d83470d4f3fd /components/script/dom/eventtarget.rs | |
parent | 9306be60c23bdb828dc41f3379e77781d3eafff7 (diff) | |
parent | d38771e2708b7beabfb9c31c5bbc288534c20b77 (diff) | |
download | servo-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.rs | 22 |
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 { |