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, + 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 = 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;