mirror of
https://github.com/servo/servo.git
synced 2025-08-04 13:10:20 +01:00
Implement the "messageevent" argument to Document#createEvent. #4008
This commit is contained in:
parent
58f9b4ad96
commit
ccb4e8b273
3 changed files with 15 additions and 22 deletions
|
@ -47,6 +47,7 @@ use dom::htmltitleelement::HTMLTitleElement;
|
||||||
use dom::location::Location;
|
use dom::location::Location;
|
||||||
use dom::mouseevent::MouseEvent;
|
use dom::mouseevent::MouseEvent;
|
||||||
use dom::keyboardevent::KeyboardEvent;
|
use dom::keyboardevent::KeyboardEvent;
|
||||||
|
use dom::messageevent::MessageEvent;
|
||||||
use dom::node::{Node, ElementNodeTypeId, DocumentNodeTypeId, NodeHelpers};
|
use dom::node::{Node, ElementNodeTypeId, DocumentNodeTypeId, NodeHelpers};
|
||||||
use dom::node::{CloneChildren, DoNotCloneChildren};
|
use dom::node::{CloneChildren, DoNotCloneChildren};
|
||||||
use dom::nodelist::NodeList;
|
use dom::nodelist::NodeList;
|
||||||
|
@ -711,6 +712,8 @@ impl<'a> DocumentMethods for JSRef<'a, Document> {
|
||||||
global::Window(*window))),
|
global::Window(*window))),
|
||||||
"keyboardevent" | "keyevents" => Ok(EventCast::from_temporary(
|
"keyboardevent" | "keyevents" => Ok(EventCast::from_temporary(
|
||||||
KeyboardEvent::new_uninitialized(*window))),
|
KeyboardEvent::new_uninitialized(*window))),
|
||||||
|
"messageevent" => Ok(EventCast::from_temporary(
|
||||||
|
MessageEvent::new_uninitialized(global::Window(*window)))),
|
||||||
_ => Err(NotSupported)
|
_ => Err(NotSupported)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,7 +16,7 @@ use dom::eventtarget::{EventTarget, EventTargetHelpers};
|
||||||
use servo_util::str::DOMString;
|
use servo_util::str::DOMString;
|
||||||
|
|
||||||
use js::jsapi::JSContext;
|
use js::jsapi::JSContext;
|
||||||
use js::jsval::JSVal;
|
use js::jsval::{JSVal, UndefinedValue};
|
||||||
|
|
||||||
#[dom_struct]
|
#[dom_struct]
|
||||||
pub struct MessageEvent {
|
pub struct MessageEvent {
|
||||||
|
@ -43,13 +43,21 @@ impl MessageEvent {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn new_uninitialized(global: GlobalRef) -> Temporary<MessageEvent> {
|
||||||
|
MessageEvent::new_initialized(global, UndefinedValue(), "".to_string(), "".to_string())
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn new_initialized(global: GlobalRef, data: JSVal, origin: DOMString, lastEventId: DOMString) -> Temporary<MessageEvent> {
|
||||||
|
reflect_dom_object(box MessageEvent::new_inherited(data, origin, lastEventId),
|
||||||
|
global,
|
||||||
|
MessageEventBinding::Wrap)
|
||||||
|
}
|
||||||
|
|
||||||
pub fn new(global: GlobalRef, type_: DOMString,
|
pub fn new(global: GlobalRef, type_: DOMString,
|
||||||
bubbles: bool, cancelable: bool,
|
bubbles: bool, cancelable: bool,
|
||||||
data: JSVal, origin: DOMString, lastEventId: DOMString)
|
data: JSVal, origin: DOMString, lastEventId: DOMString)
|
||||||
-> Temporary<MessageEvent> {
|
-> Temporary<MessageEvent> {
|
||||||
let ev = reflect_dom_object(box MessageEvent::new_inherited(data, origin, lastEventId),
|
let ev = MessageEvent::new_initialized(global, data, origin, lastEventId).root();
|
||||||
global,
|
|
||||||
MessageEventBinding::Wrap).root();
|
|
||||||
let event: JSRef<Event> = EventCast::from_ref(*ev);
|
let event: JSRef<Event> = EventCast::from_ref(*ev);
|
||||||
event.InitEvent(type_, bubbles, cancelable);
|
event.InitEvent(type_, bubbles, cancelable);
|
||||||
Temporary::from_rooted(*ev)
|
Temporary::from_rooted(*ev)
|
||||||
|
|
|
@ -1,23 +1,5 @@
|
||||||
[Document-createEvent.html]
|
[Document-createEvent.html]
|
||||||
type: testharness
|
type: testharness
|
||||||
[MessageEvent should be an alias for MessageEvent.]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[createEvent(\'MessageEvent\') should be initialized correctly.]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[messageevent should be an alias for MessageEvent.]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[createEvent(\'messageevent\') should be initialized correctly.]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[MESSAGEEVENT should be an alias for MessageEvent.]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[createEvent(\'MESSAGEEVENT\') should be initialized correctly.]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[TouchEvent should be an alias for TouchEvent.]
|
[TouchEvent should be an alias for TouchEvent.]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue