aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/htmlformelement.rs
diff options
context:
space:
mode:
authorArthur Skobara <skobara.arthur@gmail.com>2015-12-20 12:52:28 +0600
committerArthur Skobara <skobara.arthur@gmail.com>2015-12-22 13:47:57 +0600
commitd38771e2708b7beabfb9c31c5bbc288534c20b77 (patch)
tree3d03faf8e0ca346a4def764c648d5b41969ebd83 /components/script/dom/htmlformelement.rs
parentdf087cc6cf4d97c5cc93befec922b38b56e6def7 (diff)
downloadservo-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.rs42
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