Index: core/events/MouseEvent.idl |
diff --git a/core/events/MouseEvent.idl b/core/events/MouseEvent.idl |
index feda914c789cd6cf7c5d304f79033e9cfe433d9e..fbdeaa34267f00d851e05c69d6154cddb4f9afa3 100644 |
--- a/core/events/MouseEvent.idl |
+++ b/core/events/MouseEvent.idl |
@@ -17,48 +17,68 @@ |
* Boston, MA 02110-1301, USA. |
*/ |
+// https://w3c.github.io/uievents/#interface-MouseEvent |
+ |
[ |
- EventConstructor, |
+ Constructor(DOMString type, optional MouseEventInit eventInitDict), |
+ ConstructorCallWith=ScriptState, |
] interface MouseEvent : UIEvent { |
- [InitializedByEventConstructor] readonly attribute long screenX; |
- [InitializedByEventConstructor] readonly attribute long screenY; |
- [InitializedByEventConstructor] readonly attribute long clientX; |
- [InitializedByEventConstructor] readonly attribute long clientY; |
- [InitializedByEventConstructor] readonly attribute boolean ctrlKey; |
- [InitializedByEventConstructor] readonly attribute boolean shiftKey; |
- [InitializedByEventConstructor] readonly attribute boolean altKey; |
- [InitializedByEventConstructor] readonly attribute boolean metaKey; |
- [InitializedByEventConstructor] readonly attribute unsigned short button; |
- [InitializedByEventConstructor] readonly attribute EventTarget? relatedTarget; |
- [MeasureAs=MouseEventMovementX] readonly attribute long movementX; |
- [MeasureAs=MouseEventMovementY] readonly attribute long movementY; |
- [MeasureAs=PrefixedMouseEventMovementX, ImplementedAs=movementX] readonly attribute long webkitMovementX; |
- [MeasureAs=PrefixedMouseEventMovementY, ImplementedAs=movementY] readonly attribute long webkitMovementY; |
+ readonly attribute long screenX; |
+ readonly attribute long screenY; |
+ readonly attribute long clientX; |
+ readonly attribute long clientY; |
+ readonly attribute boolean ctrlKey; |
+ readonly attribute boolean shiftKey; |
+ readonly attribute boolean altKey; |
+ readonly attribute boolean metaKey; |
+ readonly attribute short button; |
+ readonly attribute unsigned short buttons; |
+ readonly attribute EventTarget? relatedTarget; |
+ // TODO(philipj): boolean getModifierState(DOMString keyArg); |
- void initMouseEvent([Default=Undefined] optional DOMString type, |
- [Default=Undefined] optional boolean canBubble, |
- [Default=Undefined] optional boolean cancelable, |
- [Default=Undefined] optional Window view, |
- [Default=Undefined] optional long detail, |
- [Default=Undefined] optional long screenX, |
- [Default=Undefined] optional long screenY, |
- [Default=Undefined] optional long clientX, |
- [Default=Undefined] optional long clientY, |
- [Default=Undefined] optional boolean ctrlKey, |
- [Default=Undefined] optional boolean altKey, |
- [Default=Undefined] optional boolean shiftKey, |
- [Default=Undefined] optional boolean metaKey, |
- [Default=Undefined] optional unsigned short button, |
- [Default=Undefined] optional EventTarget relatedTarget); |
+ // https://w3c.github.io/uievents/#idl-interface-MouseEvent-initializers |
+ // TODO(philipj): None of the initMouseEvent() arguments should be optional. |
+ [CallWith=ScriptState, Measure] void initMouseEvent([Default=Undefined] optional DOMString type, |
+ [Default=Undefined] optional boolean bubbles, |
+ [Default=Undefined] optional boolean cancelable, |
+ [Default=Undefined] optional Window? view, |
+ [Default=Undefined] optional long detail, |
+ [Default=Undefined] optional long screenX, |
+ [Default=Undefined] optional long screenY, |
+ [Default=Undefined] optional long clientX, |
+ [Default=Undefined] optional long clientY, |
+ [Default=Undefined] optional boolean ctrlKey, |
+ [Default=Undefined] optional boolean altKey, |
+ [Default=Undefined] optional boolean shiftKey, |
+ [Default=Undefined] optional boolean metaKey, |
+ [Default=Undefined] optional unsigned short button, |
+ [Default=Undefined] optional EventTarget? relatedTarget); |
- // Non-standard |
- [MeasureAs=MouseEventOffsetX] readonly attribute long offsetX; |
- [MeasureAs=MouseEventOffsetY] readonly attribute long offsetY; |
+ // CSSOM View Module |
+ // http://dev.w3.org/csswg/cssom-view/#extensions-to-the-mouseevent-interface |
+ // TODO(philipj): These attributes should be of type double, and the spec |
+ // also redefines screenX/Y and clientX/Y as double. |
+ readonly attribute long pageX; |
+ readonly attribute long pageY; |
[MeasureAs=MouseEventX] readonly attribute long x; |
[MeasureAs=MouseEventY] readonly attribute long y; |
+ [MeasureAs=MouseEventOffsetX] readonly attribute long offsetX; |
+ [MeasureAs=MouseEventOffsetY] readonly attribute long offsetY; |
+ |
+ // Pointer Lock |
+ // https://dvcs.w3.org/hg/pointerlock/raw-file/default/index.html#extensions-to-the-mouseevent-interface |
+ [MeasureAs=MouseEventMovementX] readonly attribute long movementX; |
+ [MeasureAs=MouseEventMovementY] readonly attribute long movementY; |
+ |
+ // Non-standard |
[MeasureAs=MouseEventFromElement] readonly attribute Node fromElement; |
[MeasureAs=MouseEventToElement] readonly attribute Node toElement; |
+ [MeasureAs=MouseEventWhich] readonly attribute long which; |
+ [DeprecateAs=PrefixedMouseEventMovementX, ImplementedAs=movementX] readonly attribute long webkitMovementX; |
+ [DeprecateAs=PrefixedMouseEventMovementY, ImplementedAs=movementY] readonly attribute long webkitMovementY; |
+ [Measure] readonly attribute long layerX; |
+ [Measure] readonly attribute long layerY; |
- // FIXME: this belongs on the DragEvent interface |
+ // FIXME: dataTransfer belongs on the DragEvent interface. crbug.com/498504 |
readonly attribute DataTransfer dataTransfer; |
}; |