/* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ // skip-unless CARGO_FEATURE_WEBXR // https://github.com/immersive-web/webxr-test-api/ [Exposed=Window, Pref="dom_webxr_test"] interface XRTest { // Simulates connecting a device to the system. // Used to instantiate a fake device for use in tests. Promise simulateDeviceConnection(FakeXRDeviceInit init); // // Simulates a user activation (aka user gesture) for the current scope. // // The activation is only guaranteed to be valid in the provided function and only applies to WebXR // // Device API methods. undefined simulateUserActivation(Function f); // // Disconnect all fake devices Promise disconnectAllDevices(); }; dictionary FakeXRDeviceInit { boolean supportsImmersive = false; sequence supportedModes; required sequence views; // this is actually sequence, but we don't support // non-string features anyway sequence supportedFeatures; // Whether the space supports tracking in inline sessions boolean supportsTrackingInInline = true; // The bounds coordinates. If null, bounded reference spaces are not supported. sequence boundsCoodinates; // Eye level used for calculating floor-level spaces FakeXRRigidTransformInit floorOrigin; FakeXRRigidTransformInit viewerOrigin; // Hit test extensions: FakeXRWorldInit world; };