diff options
author | Ms2ger <ms2ger@gmail.com> | 2014-07-17 20:14:42 +0200 |
---|---|---|
committer | Ms2ger <ms2ger@gmail.com> | 2014-07-18 13:24:27 +0200 |
commit | 07a89a06c96b4c27850ffb4df386fae4ce0a4494 (patch) | |
tree | a1acc04b6d36de0c4d64ad6d6051a12c96894f40 /src/components/script/dom/messageevent.rs | |
parent | aa43c1493a305f4829e88a0946570d68142fe7cf (diff) | |
download | servo-07a89a06c96b4c27850ffb4df386fae4ce0a4494.tar.gz servo-07a89a06c96b4c27850ffb4df386fae4ce0a4494.zip |
Implement MessageEvent::dispatch.
This avoids duplicating the dispatching code for multiple postMessage
implementations.
Diffstat (limited to 'src/components/script/dom/messageevent.rs')
-rw-r--r-- | src/components/script/dom/messageevent.rs | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/components/script/dom/messageevent.rs b/src/components/script/dom/messageevent.rs index a9d536fad06..05eca45fd71 100644 --- a/src/components/script/dom/messageevent.rs +++ b/src/components/script/dom/messageevent.rs @@ -4,12 +4,14 @@ use dom::bindings::codegen::Bindings::MessageEventBinding; use dom::bindings::codegen::InheritTypes::{EventCast, MessageEventDerived}; +use dom::bindings::conversions::ToJSValConvertible; use dom::bindings::error::Fallible; use dom::bindings::global::GlobalRef; use dom::bindings::js::{JSRef, Temporary}; use dom::bindings::trace::Traceable; use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object}; use dom::event::{Event, EventMethods, MessageEventTypeId}; +use dom::eventtarget::{EventTarget, EventTargetHelpers}; use servo_util::str::DOMString; @@ -63,6 +65,19 @@ impl MessageEvent { } } +impl MessageEvent { + pub fn dispatch(target: &JSRef<EventTarget>, + scope: &GlobalRef, + message: DOMString) { + let messageevent = MessageEvent::new( + scope, "message".to_string(), false, false, + message.to_jsval(scope.get_cx()), + "".to_string(), "".to_string()).root(); + let event: &JSRef<Event> = EventCast::from_ref(&*messageevent); + target.dispatch_event_with_target(None, &*event).unwrap(); + } +} + pub trait MessageEventMethods { fn Data(&self, cx: *mut JSContext) -> JSVal; fn Origin(&self) -> DOMString; |