mirror of
https://github.com/servo/servo.git
synced 2025-08-04 13:10:20 +01:00
Implement MessageEvent::dispatch.
This avoids duplicating the dispatching code for multiple postMessage implementations.
This commit is contained in:
parent
aa43c1493a
commit
07a89a06c9
1 changed files with 15 additions and 0 deletions
|
@ -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;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue