summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/webxr/idlharness.https.window.js
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/webxr/idlharness.https.window.js')
-rw-r--r--testing/web-platform/tests/webxr/idlharness.https.window.js55
1 files changed, 55 insertions, 0 deletions
diff --git a/testing/web-platform/tests/webxr/idlharness.https.window.js b/testing/web-platform/tests/webxr/idlharness.https.window.js
new file mode 100644
index 0000000000..dae201ebc9
--- /dev/null
+++ b/testing/web-platform/tests/webxr/idlharness.https.window.js
@@ -0,0 +1,55 @@
+// META: script=/resources/WebIDLParser.js
+// META: script=/resources/idlharness.js
+// META: timeout=long
+
+'use strict';
+
+// https://immersive-web.github.io/webxr/
+
+idl_test(
+ ['webxr'],
+ ['permissions', 'webgl1', 'geometry', 'html', 'dom'],
+ async idl_array => {
+ idl_array.add_objects({
+ Navigator: ['navigator'],
+ XR: ['navigator.xr'],
+ // TODO: XRSystem
+ XRSession: ['xrSession'],
+ XRRenderState: ['xrRenderState'],
+ // TODO: XRFrame
+ // TODO: XRSpace
+ XRReferenceSpace: ['xrReferenceSpace'],
+ // TODO: XRBoundedReferenceSpace
+ // TODO: XRView
+ // TODO: XRViewport
+ XRRigidTransform: ['new XRRigidTransform()'],
+ // TODO: XRPose
+ // TODO: XRViewerPose
+ // TODO: XRInputSource
+ XRInputSourceArray: ['xrInputSourceArray'],
+ XRWebGLLayer: ['xrWebGLLayer'],
+ WebGLRenderingContextBase: ['webGLRenderingContextBase'],
+ XRSessionEvent: ['xrSessionEvent'],
+ // TODO: XRInputSourceEvent
+ XRInputSourcesChangeEvent: ['xrInputSourcesChangeEvent'],
+ // TODO: XRReferenceSpaceEvent
+ // TODO: XRPermissionStatus
+ });
+
+ self.xrSession = await navigator.xr.requestSession('inline');
+ self.xrRenderState = self.xrSession.renderState;
+ self.xrReferenceSpace = await self.xrSession.requestReferenceSpace('viewer');
+ self.xrInputSourceArray = self.xrSession.inputSources;
+ self.xrSessionEvent = new XRSessionEvent('end', {session: self.xrSession});
+ self.xrInputSourcesChangeEvent = new XRInputSourcesChangeEvent('inputsourceschange', {
+ session: self.xrSession,
+ added: [],
+ removed: [],
+ });
+
+ // XRWebGLRenderingContext is a typedef to either WebGLRenderingContext or WebGL2RenderingContext.
+ const canvas = document.createElement('canvas');
+ self.webGLRenderingContextBase = canvas.getContext('webgl');
+ self.xrWebGLLayer = new XRWebGLLayer(self.xrSession, self.webGLRenderingContextBase);
+ }
+);