diff options
author | bors-servo <metajack+bors@gmail.com> | 2014-12-16 06:36:47 -0700 |
---|---|---|
committer | bors-servo <metajack+bors@gmail.com> | 2014-12-16 06:36:47 -0700 |
commit | 746b262ff4e23db11586f74ef1a03e98cb12bb52 (patch) | |
tree | 82c652ad08b237c048136c6b05fe8a760e724ed5 | |
parent | 38a4e71502f3b668ff322d9047af7ec8892312d3 (diff) | |
parent | 79487252cad72b019df88d0930457c3678641d59 (diff) | |
download | servo-746b262ff4e23db11586f74ef1a03e98cb12bb52.tar.gz servo-746b262ff4e23db11586f74ef1a03e98cb12bb52.zip |
auto merge of #4374 : thiagopnts/servo/dispatch-event, r=Ms2ger
servo/pull/4369 with the right commit.
-rw-r--r-- | components/script/dom/activation.rs | 2 | ||||
-rw-r--r-- | components/script/dom/element.rs | 6 | ||||
-rw-r--r-- | components/script/dom/eventdispatcher.rs | 1 | ||||
-rw-r--r-- | components/script/dom/eventtarget.rs | 19 | ||||
-rw-r--r-- | components/script/dom/messageevent.rs | 2 | ||||
-rw-r--r-- | components/script/dom/xmlhttprequest.rs | 4 | ||||
-rw-r--r-- | components/script/script_task.rs | 2 |
7 files changed, 21 insertions, 15 deletions
diff --git a/components/script/dom/activation.rs b/components/script/dom/activation.rs index e4a54112e58..97bc66f5362 100644 --- a/components/script/dom/activation.rs +++ b/components/script/dom/activation.rs @@ -49,7 +49,7 @@ pub trait Activatable : Copy { 0, None).root(); let event: JSRef<Event> = EventCast::from_ref(*mouse); event.set_trusted(true); - target.dispatch_event_with_target(None, event).ok(); + target.dispatch_event(event); // Step 5 if event.DefaultPrevented() { diff --git a/components/script/dom/element.rs b/components/script/dom/element.rs index 69846d40543..3d7a6a861e9 100644 --- a/components/script/dom/element.rs +++ b/components/script/dom/element.rs @@ -1381,7 +1381,7 @@ impl<'a> ActivationElementHelpers<'a> for JSRef<'a, Element> { Some(elem) => { // Step 5-6 elem.pre_click_activation(); - target.dispatch_event_with_target(None, event).ok(); + target.dispatch_event(event); if !event.DefaultPrevented() { // post click activation elem.activation_behavior(); @@ -1390,10 +1390,10 @@ impl<'a> ActivationElementHelpers<'a> for JSRef<'a, Element> { } } // Step 6 - None => {target.dispatch_event_with_target(None, event).ok();} + None => {target.dispatch_event(event);} }, // Step 6 - None => {target.dispatch_event_with_target(None, event).ok();} + None => {target.dispatch_event(event);} } // Step 7 self.set_click_in_progress(false); diff --git a/components/script/dom/eventdispatcher.rs b/components/script/dom/eventdispatcher.rs index bdfb98c7bae..74ffc1f5136 100644 --- a/components/script/dom/eventdispatcher.rs +++ b/components/script/dom/eventdispatcher.rs @@ -16,6 +16,7 @@ pub fn dispatch_event<'a, 'b>(target: JSRef<'a, EventTarget>, pseudo_target: Option<JSRef<'b, EventTarget>>, event: JSRef<Event>) -> bool { assert!(!event.dispatching()); + assert!(event.initialized()); event.set_target(match pseudo_target { Some(pseudo_target) => pseudo_target, diff --git a/components/script/dom/eventtarget.rs b/components/script/dom/eventtarget.rs index 151a1ac939a..394b66e6acc 100644 --- a/components/script/dom/eventtarget.rs +++ b/components/script/dom/eventtarget.rs @@ -107,7 +107,8 @@ impl EventTarget { pub trait EventTargetHelpers { fn dispatch_event_with_target(self, target: Option<JSRef<EventTarget>>, - event: JSRef<Event>) -> Fallible<bool>; + event: JSRef<Event>) -> bool; + fn dispatch_event(self, event: JSRef<Event>) -> bool; fn set_inline_event_listener(self, ty: DOMString, listener: Option<EventListener>); @@ -128,11 +129,12 @@ pub trait EventTargetHelpers { impl<'a> EventTargetHelpers for JSRef<'a, EventTarget> { fn dispatch_event_with_target(self, target: Option<JSRef<EventTarget>>, - event: JSRef<Event>) -> Fallible<bool> { - if event.dispatching() || !event.initialized() { - return Err(InvalidState); - } - Ok(dispatch_event(self, target, event)) + event: JSRef<Event>) -> bool { + dispatch_event(self, target, event) + } + + fn dispatch_event(self, event: JSRef<Event>) -> bool { + self.dispatch_event_with_target(None, event) } fn set_inline_event_listener(self, @@ -290,7 +292,10 @@ impl<'a> EventTargetMethods for JSRef<'a, EventTarget> { } fn DispatchEvent(self, event: JSRef<Event>) -> Fallible<bool> { - self.dispatch_event_with_target(None, event) + if event.dispatching() || !event.initialized() { + return Err(InvalidState); + } + Ok(self.dispatch_event(event)) } } diff --git a/components/script/dom/messageevent.rs b/components/script/dom/messageevent.rs index 32842fd2897..9dda3ccc8cc 100644 --- a/components/script/dom/messageevent.rs +++ b/components/script/dom/messageevent.rs @@ -81,7 +81,7 @@ impl MessageEvent { scope, "message".to_string(), false, false, message, "".to_string(), "".to_string()).root(); let event: JSRef<Event> = EventCast::from_ref(*messageevent); - target.dispatch_event_with_target(None, event).unwrap(); + target.dispatch_event(event); } } diff --git a/components/script/dom/xmlhttprequest.rs b/components/script/dom/xmlhttprequest.rs index 0f8e770d8d5..b5f580fc6a5 100644 --- a/components/script/dom/xmlhttprequest.rs +++ b/components/script/dom/xmlhttprequest.rs @@ -817,7 +817,7 @@ impl<'a> PrivateXMLHttpRequestHelpers for JSRef<'a, XMLHttpRequest> { "readystatechange".to_string(), DoesNotBubble, Cancelable).root(); let target: JSRef<EventTarget> = EventTargetCast::from_ref(self); - target.dispatch_event_with_target(None, *event).ok(); + target.dispatch_event(*event); } fn process_partial_response(self, progress: XHRProgress) { @@ -957,7 +957,7 @@ impl<'a> PrivateXMLHttpRequestHelpers for JSRef<'a, XMLHttpRequest> { EventTargetCast::from_ref(self) }; let event: JSRef<Event> = EventCast::from_ref(*progressevent); - target.dispatch_event_with_target(None, event).ok(); + target.dispatch_event(event); } fn dispatch_upload_progress_event(self, type_: DOMString, partial_load: Option<u64>) { diff --git a/components/script/script_task.rs b/components/script/script_task.rs index 383de5e039e..4e9fe1a93c2 100644 --- a/components/script/script_task.rs +++ b/components/script/script_task.rs @@ -1070,7 +1070,7 @@ impl ScriptTask { let event: JSRef<Event> = EventCast::from_ref(*uievent); let wintarget: JSRef<EventTarget> = EventTargetCast::from_ref(*window); - let _ = wintarget.dispatch_event_with_target(None, event); + wintarget.dispatch_event(event); } None => () } |