File's structured serialization should serialize lastModified attribute
[WebKit-https.git] / LayoutTests / imported / w3c / web-platform-tests / interfaces / webxr.idl
1 [SecureContext, Exposed=Window] interface XR : EventTarget {
2   // Methods
3   Promise<XRDevice?> requestDevice();
4
5   // Events
6   attribute EventHandler ondevicechange;
7 };
8
9 [SecureContext]
10 partial interface Navigator {
11   [SameObject] readonly attribute XR xr;
12 };
13
14 [SecureContext, Exposed=Window] interface XRDevice : EventTarget {
15   // Methods
16   Promise<void> supportsSession(optional XRSessionCreationOptions options);
17   Promise<XRSession> requestSession(optional XRSessionCreationOptions options);
18 };
19
20 dictionary XRSessionCreationOptions {
21   boolean exclusive = false;
22   XRPresentationContext outputContext;
23 };
24
25 [SecureContext, Exposed=Window] interface XRSession : EventTarget {
26   // Attributes
27   readonly attribute XRDevice device;
28   readonly attribute boolean exclusive;
29   readonly attribute XRPresentationContext outputContext;
30
31   attribute double depthNear;
32   attribute double depthFar;
33   attribute XRLayer baseLayer;
34
35   // Methods
36   Promise<XRFrameOfReference> requestFrameOfReference(XRFrameOfReferenceType type, optional XRFrameOfReferenceOptions options);
37
38   long requestAnimationFrame(XRFrameRequestCallback callback);
39   void cancelAnimationFrame(long handle);
40
41   Promise<void> end();
42
43   // Events
44   attribute EventHandler onblur;
45   attribute EventHandler onfocus;
46   attribute EventHandler onresetpose;
47   attribute EventHandler onend;
48 };
49
50 callback XRFrameRequestCallback = void (DOMHighResTimeStamp time, XRPresentationFrame frame);
51
52 [SecureContext, Exposed=Window] interface XRPresentationFrame {
53   readonly attribute FrozenArray<XRView> views;
54
55   XRDevicePose? getDevicePose(XRCoordinateSystem coordinateSystem);
56 };
57
58 [SecureContext, Exposed=Window] interface XRCoordinateSystem : EventTarget {
59   Float32Array? getTransformTo(XRCoordinateSystem other);
60 };
61
62 enum XRFrameOfReferenceType {
63   "headModel",
64   "eyeLevel",
65   "stage",
66 };
67
68 dictionary XRFrameOfReferenceOptions {
69   boolean disableStageEmulation = false;
70   double stageEmulationHeight = 0.0;
71 };
72
73 [SecureContext, Exposed=Window] interface XRFrameOfReference : XRCoordinateSystem {
74   readonly attribute XRStageBounds? bounds;
75   readonly attribute double emulatedHeight;
76
77   attribute EventHandler onboundschange;
78 };
79
80 [SecureContext, Exposed=Window] interface XRStageBounds {
81   readonly attribute FrozenArray<XRStageBoundsPoint> geometry;
82 };
83
84 [SecureContext, Exposed=Window] interface XRStageBoundsPoint {
85   readonly attribute double x;
86   readonly attribute double z;
87 };
88
89 enum XREye {
90   "left",
91   "right"
92 };
93
94 [SecureContext, Exposed=Window] interface XRView {
95   readonly attribute XREye eye;
96   readonly attribute Float32Array projectionMatrix;
97 };
98
99 [SecureContext, Exposed=Window] interface XRViewport {
100   readonly attribute long x;
101   readonly attribute long y;
102   readonly attribute long width;
103   readonly attribute long height;
104 };
105
106 [SecureContext, Exposed=Window] interface XRDevicePose {
107   readonly attribute Float32Array poseModelMatrix;
108
109   Float32Array getViewMatrix(XRView view);
110 };
111
112 [SecureContext, Exposed=Window] interface XRLayer {};
113
114 typedef (WebGLRenderingContext or
115          WebGL2RenderingContext) XRWebGLRenderingContext;
116
117 dictionary XRWebGLLayerInit {
118   boolean antialias = true;
119   boolean depth = false;
120   boolean stencil = false;
121   boolean alpha = true;
122   boolean multiview = false;
123   double framebufferScaleFactor;
124 };
125
126 [SecureContext, Exposed=Window, Constructor(XRSession session,
127              XRWebGLRenderingContext context,
128              optional XRWebGLLayerInit layerInit)]
129 interface XRWebGLLayer : XRLayer {
130   // Attributes
131   readonly attribute XRWebGLRenderingContext context;
132
133   readonly attribute boolean antialias;
134   readonly attribute boolean depth;
135   readonly attribute boolean stencil;
136   readonly attribute boolean alpha;
137   readonly attribute boolean multiview;
138
139   readonly attribute WebGLFramebuffer framebuffer;
140   readonly attribute unsigned long framebufferWidth;
141   readonly attribute unsigned long framebufferHeight;
142
143   // Methods
144   XRViewport? getViewport(XRView view);
145   void requestViewportScaling(double viewportScaleFactor);
146 };
147
148 partial dictionary WebGLContextAttributes {
149     XRDevice compatibleXRDevice = null;
150 };
151
152 partial interface mixin WebGLRenderingContextBase {
153     Promise<void> setCompatibleXRDevice(XRDevice device);
154 };
155
156 [SecureContext, Exposed=Window] interface XRPresentationContext {
157   readonly attribute HTMLCanvasElement canvas;
158 };
159
160 [SecureContext, Exposed=Window, Constructor(DOMString type, XRSessionEventInit eventInitDict)]
161 interface XRSessionEvent : Event {
162   readonly attribute XRSession session;
163 };
164
165 dictionary XRSessionEventInit : EventInit {
166   required XRSession session;
167 };
168
169 [SecureContext, Exposed=Window, Constructor(DOMString type, XRCoordinateSystemEventInit eventInitDict)]
170 interface XRCoordinateSystemEvent : Event {
171   readonly attribute XRCoordinateSystem coordinateSystem;
172 };
173
174 dictionary XRCoordinateSystemEventInit : EventInit {
175   required XRCoordinateSystem coordinateSystem;
176 };