implement composition event creation in Document.createEvent

This commit is contained in:
takumi 2019-12-06 17:28:39 +09:00
parent 250184fe60
commit de939eb96d
4 changed files with 18 additions and 42 deletions

View file

@ -21,6 +21,21 @@ pub struct CompositionEvent {
}
impl CompositionEvent {
pub fn new_inherited() -> CompositionEvent {
CompositionEvent {
uievent: UIEvent::new_inherited(),
data: DOMString::new(),
}
}
pub fn new_uninitialized(window: &Window) -> DomRoot<CompositionEvent> {
reflect_dom_object(
Box::new(CompositionEvent::new_inherited()),
window,
CompositionEventBinding::Wrap,
)
}
pub fn new(
window: &Window,
type_: DOMString,

View file

@ -3811,6 +3811,9 @@ impl DocumentMethods for Document {
"beforeunloadevent" => Ok(DomRoot::upcast(BeforeUnloadEvent::new_uninitialized(
&self.window,
))),
"compositionevent" | "textevent" => Ok(DomRoot::upcast(
CompositionEvent::new_uninitialized(&self.window),
)),
"closeevent" => Ok(DomRoot::upcast(CloseEvent::new_uninitialized(
self.window.upcast(),
))),

View file

@ -3,9 +3,6 @@
[If the event's initialized flag is not set, an InvalidStateError must be thrown (AnimationEvent).]
expected: FAIL
[If the event's initialized flag is not set, an InvalidStateError must be thrown (CompositionEvent).]
expected: FAIL
[If the event's initialized flag is not set, an InvalidStateError must be thrown (DeviceMotionEvent).]
expected: FAIL
@ -24,9 +21,6 @@
[If the event's initialized flag is not set, an InvalidStateError must be thrown (SVGZoomEvents).]
expected: FAIL
[If the event's initialized flag is not set, an InvalidStateError must be thrown (TextEvent).]
expected: FAIL
[If the event's initialized flag is not set, an InvalidStateError must be thrown (TrackEvent).]
expected: FAIL

View file

@ -1,10 +1,4 @@
[Document-createEvent.https.html]
[createEvent('TextEvent') should be initialized correctly.]
expected: FAIL
[compositionevent should be an alias for CompositionEvent.]
expected: FAIL
[createEvent('DRAGEVENT') should be initialized correctly.]
expected: FAIL
@ -20,12 +14,6 @@
[Should throw NOT_SUPPORTED_ERR for non-legacy event interface "ProgressEvent"]
expected: FAIL
[TEXTEVENT should be an alias for CompositionEvent.]
expected: FAIL
[createEvent('compositionevent') should be initialized correctly.]
expected: FAIL
[devicemotionevent should be an alias for DeviceMotionEvent.]
expected: FAIL
@ -38,24 +26,12 @@
[DRAGEVENT should be an alias for DragEvent.]
expected: FAIL
[TextEvent should be an alias for CompositionEvent.]
expected: FAIL
[createEvent('COMPOSITIONEVENT') should be initialized correctly.]
expected: FAIL
[DEVICEORIENTATIONEVENT should be an alias for DeviceOrientationEvent.]
expected: FAIL
[createEvent('dragevent') should be initialized correctly.]
expected: FAIL
[createEvent('textevent') should be initialized correctly.]
expected: FAIL
[CompositionEvent should be an alias for CompositionEvent.]
expected: FAIL
[createEvent('DEVICEMOTIONEVENT') should be initialized correctly.]
expected: FAIL
@ -68,15 +44,9 @@
[dragevent should be an alias for DragEvent.]
expected: FAIL
[textevent should be an alias for CompositionEvent.]
expected: FAIL
[Should throw NOT_SUPPORTED_ERR for non-legacy event interface "PopStateEvent"]
expected: FAIL
[createEvent('CompositionEvent') should be initialized correctly.]
expected: FAIL
[deviceorientationevent should be an alias for DeviceOrientationEvent.]
expected: FAIL
@ -89,18 +59,12 @@
[createEvent('DEVICEORIENTATIONEVENT') should be initialized correctly.]
expected: FAIL
[createEvent('TEXTEVENT') should be initialized correctly.]
expected: FAIL
[createEvent('DragEvent') should be initialized correctly.]
expected: FAIL
[Should throw NOT_SUPPORTED_ERR for non-legacy event interface "ErrorEvent"]
expected: FAIL
[COMPOSITIONEVENT should be an alias for CompositionEvent.]
expected: FAIL
[createEvent('deviceorientationevent') should be initialized correctly.]
expected: FAIL