aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/script/dom/messageevent.rs
diff options
context:
space:
mode:
authorMs2ger <ms2ger@gmail.com>2014-07-17 20:14:42 +0200
committerMs2ger <ms2ger@gmail.com>2014-07-18 13:24:27 +0200
commit07a89a06c96b4c27850ffb4df386fae4ce0a4494 (patch)
treea1acc04b6d36de0c4d64ad6d6051a12c96894f40 /src/components/script/dom/messageevent.rs
parentaa43c1493a305f4829e88a0946570d68142fe7cf (diff)
downloadservo-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.rs15
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;