aboutsummaryrefslogtreecommitdiffstats
path: root/components/script
diff options
context:
space:
mode:
authorMatt McCoy <mattnenterprise@yahoo.com>2015-03-17 16:01:39 -0400
committerMatt McCoy <mattnenterprise@yahoo.com>2015-03-17 17:05:41 -0400
commit5938a4c0f54cfaca37fa4bec867c7eedc4e84975 (patch)
treee08f640612a1490503fd4a6b5636dd608547ea89 /components/script
parenta481c8f28a8db9002190358d9c4b986c9098f101 (diff)
downloadservo-5938a4c0f54cfaca37fa4bec867c7eedc4e84975.tar.gz
servo-5938a4c0f54cfaca37fa4bec867c7eedc4e84975.zip
#4508 Ranaming the runnable and making sure the event is trusted
Diffstat (limited to 'components/script')
-rw-r--r--components/script/dom/htmltextareaelement.rs28
1 files changed, 15 insertions, 13 deletions
diff --git a/components/script/dom/htmltextareaelement.rs b/components/script/dom/htmltextareaelement.rs
index 7aad495b1bf..41570fd1fa1 100644
--- a/components/script/dom/htmltextareaelement.rs
+++ b/components/script/dom/htmltextareaelement.rs
@@ -341,20 +341,22 @@ impl<'a> VirtualMethods for JSRef<'a, HTMLTextAreaElement> {
doc.r().request_focus(ElementCast::from_ref(*self));
} else if "keydown" == event.Type().as_slice() && !event.DefaultPrevented() {
let keyevent: Option<JSRef<KeyboardEvent>> = KeyboardEventCast::to_ref(event);
- keyevent.map(|event| {
- match self.textinput.borrow_mut().handle_keydown(event) {
+ keyevent.map(|kevent| {
+ match self.textinput.borrow_mut().handle_keydown(kevent) {
KeyReaction::TriggerDefaultAction => (),
KeyReaction::DispatchInput => {
self.value_changed.set(true);
- let window = window_from_node(*self).root();
- let window = window.r();
- let chan = window.script_chan();
- let handler = Trusted::new(window.get_cx(), *self , chan.clone());
- let dispatcher = TrustedHTMLTextAreaElement {
- element: handler,
- };
- chan.send(ScriptMsg::RunnableMsg(box dispatcher));
+ if event.IsTrusted() == true {
+ let window = window_from_node(*self).root();
+ let window = window.r();
+ let chan = window.script_chan();
+ let handler = Trusted::new(window.get_cx(), *self , chan.clone());
+ let dispatcher = ChangeEventRunnable {
+ element: handler,
+ };
+ chan.send(ScriptMsg::RunnableMsg(box dispatcher));
+ }
self.force_relayout();
}
@@ -371,12 +373,12 @@ impl<'a> FormControl<'a> for JSRef<'a, HTMLTextAreaElement> {
}
}
-pub struct TrustedHTMLTextAreaElement {
+pub struct ChangeEventRunnable {
element: Trusted<HTMLTextAreaElement>,
}
-impl Runnable for TrustedHTMLTextAreaElement {
- fn handler(self: Box<TrustedHTMLTextAreaElement>) {
+impl Runnable for ChangeEventRunnable {
+ fn handler(self: Box<ChangeEventRunnable>) {
let target = self.element.to_temporary().root();
target.r().dispatch_change_event();
}