diff options
Diffstat (limited to 'testing/web-platform/tests/webxr/idlharness.https.window.js')
-rw-r--r-- | testing/web-platform/tests/webxr/idlharness.https.window.js | 55 |
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); + } +); |