diff options
author | Arthur Skobara <skobara.arthur@gmail.com> | 2015-12-20 12:52:28 +0600 |
---|---|---|
committer | Arthur Skobara <skobara.arthur@gmail.com> | 2015-12-22 13:47:57 +0600 |
commit | d38771e2708b7beabfb9c31c5bbc288534c20b77 (patch) | |
tree | 3d03faf8e0ca346a4def764c648d5b41969ebd83 /components/script/dom/htmlformelement.rs | |
parent | df087cc6cf4d97c5cc93befec922b38b56e6def7 (diff) | |
download | servo-d38771e2708b7beabfb9c31c5bbc288534c20b77.tar.gz servo-d38771e2708b7beabfb9c31c5bbc288534c20b77.zip |
Implement EventTarget::fire_simple_event and EventTarget::fire_simple_event_params
Diffstat (limited to 'components/script/dom/htmlformelement.rs')
-rw-r--r-- | components/script/dom/htmlformelement.rs | 42 |
1 files changed, 19 insertions, 23 deletions
diff --git a/components/script/dom/htmlformelement.rs b/components/script/dom/htmlformelement.rs index f3c98dec0d9..6515eb58471 100644 --- a/components/script/dom/htmlformelement.rs +++ b/components/script/dom/htmlformelement.rs @@ -16,7 +16,7 @@ use dom::bindings::js::{Root}; use dom::bindings::reflector::Reflectable; use dom::document::Document; use dom::element::Element; -use dom::event::{Event, EventBubbles, EventCancelable}; +use dom::event::{EventBubbles, EventCancelable}; use dom::eventtarget::EventTarget; use dom::htmlbuttonelement::HTMLButtonElement; use dom::htmldatalistelement::HTMLDataListElement; @@ -169,23 +169,18 @@ impl HTMLFormElement { { if self.interactive_validation().is_err() { // TODO: Implement event handlers on all form control elements - // XXXKiChjang: We're also calling the following two statements quite often, - // we should refactor it into a function - let event = Event::new(GlobalRef::Window(win.r()), - atom!("invalid"), - EventBubbles::DoesNotBubble, - EventCancelable::NotCancelable); - event.fire(self.upcast()); + self.upcast::<EventTarget>() + .fire_simple_event("invalid", GlobalRef::Window(win.r())); return; } } // Step 5 if submit_method_flag == SubmittedFrom::NotFromFormSubmitMethod { - let event = Event::new(GlobalRef::Window(win.r()), - atom!("submit"), - EventBubbles::Bubbles, - EventCancelable::Cancelable); - event.fire(self.upcast()); + let event = self.upcast::<EventTarget>() + .fire_simple_event_params("submit", + EventBubbles::Bubbles, + EventCancelable::Cancelable, + GlobalRef::Window(win.r())); if event.DefaultPrevented() { return; } @@ -280,11 +275,11 @@ impl HTMLFormElement { // Step 5-6 let win = window_from_node(self); let unhandled_invalid_controls = invalid_controls.into_iter().filter_map(|field| { - let event = Event::new(GlobalRef::Window(win.r()), - atom!("invalid"), - EventBubbles::DoesNotBubble, - EventCancelable::Cancelable); - event.fire(field.as_event_target()); + let event = field.as_event_target() + .fire_simple_event_params("invalid", + EventBubbles::DoesNotBubble, + EventCancelable::Cancelable, + GlobalRef::Window(win.r())); if !event.DefaultPrevented() { return Some(field); } None }).collect::<Vec<FormSubmittableElement>>(); @@ -393,11 +388,11 @@ impl HTMLFormElement { } let win = window_from_node(self); - let event = Event::new(GlobalRef::Window(win.r()), - atom!("reset"), - EventBubbles::Bubbles, - EventCancelable::Cancelable); - event.fire(self.upcast()); + let event = self.upcast::<EventTarget>() + .fire_simple_event_params("reset", + EventBubbles::Bubbles, + EventCancelable::Cancelable, + GlobalRef::Window(win.r())); if event.DefaultPrevented() { return; } @@ -430,6 +425,7 @@ impl HTMLFormElement { }; self.marked_for_reset.set(false); } + } // TODO: add file support |