diff options
-rw-r--r-- | components/config/prefs.rs | 2 | ||||
-rw-r--r-- | components/script/dom/mod.rs | 1 | ||||
-rw-r--r-- | components/script/dom/webidls/XRTest.webidl | 20 | ||||
-rw-r--r-- | components/script/dom/xrtest.rs | 34 | ||||
-rw-r--r-- | resources/prefs.json | 1 |
5 files changed, 58 insertions, 0 deletions
diff --git a/components/config/prefs.rs b/components/config/prefs.rs index 76e70933bde..924577b2a39 100644 --- a/components/config/prefs.rs +++ b/components/config/prefs.rs @@ -294,6 +294,8 @@ mod gen { webxr: { #[serde(default)] enabled: bool, + #[serde(default)] + test: bool, }, worklet: { blockingsleep: { diff --git a/components/script/dom/mod.rs b/components/script/dom/mod.rs index 1dbc1383101..c3fcedf48ed 100644 --- a/components/script/dom/mod.rs +++ b/components/script/dom/mod.rs @@ -551,6 +551,7 @@ pub mod xrrigidtransform; pub mod xrsession; pub mod xrspace; pub mod xrstationaryreferencespace; +pub mod xrtest; pub mod xrview; pub mod xrviewerpose; pub mod xrviewport; diff --git a/components/script/dom/webidls/XRTest.webidl b/components/script/dom/webidls/XRTest.webidl new file mode 100644 index 00000000000..6a6b0003eb1 --- /dev/null +++ b/components/script/dom/webidls/XRTest.webidl @@ -0,0 +1,20 @@ +/* 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/. */ + +// 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<FakeXRDeviceController> simulateDeviceConnection(FakeXRDeviceInit); + + // // Simulates a device being disconnected from the system. + // Promise<void> simulateDeviceDisconnection(XRDevice); + + // // 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. + // void simulateUserActivation(Function); +}; diff --git a/components/script/dom/xrtest.rs b/components/script/dom/xrtest.rs new file mode 100644 index 00000000000..af1d289ae3f --- /dev/null +++ b/components/script/dom/xrtest.rs @@ -0,0 +1,34 @@ +/* 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/. */ + +/* 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/. */ + +use crate::dom::bindings::codegen::Bindings::XRTestBinding; +use crate::dom::bindings::reflector::{reflect_dom_object, Reflector}; +use crate::dom::bindings::root::DomRoot; +use crate::dom::globalscope::GlobalScope; +use dom_struct::dom_struct; + +#[dom_struct] +pub struct XRTest { + reflector: Reflector, +} + +impl XRTest { + pub fn new_inherited() -> XRTest { + XRTest { + reflector: Reflector::new(), + } + } + + pub fn new(global: &GlobalScope) -> DomRoot<XRTest> { + reflect_dom_object( + Box::new(XRTest::new_inherited()), + global, + XRTestBinding::Wrap, + ) + } +} diff --git a/resources/prefs.json b/resources/prefs.json index 23c42c3352d..22c4e22b4db 100644 --- a/resources/prefs.json +++ b/resources/prefs.json @@ -31,6 +31,7 @@ "dom.webvr.event_polling_interval": 500, "dom.webvr.test": false, "dom.webxr.enabled": false, + "dom.webxr.test": false, "dom.worklet.timeout_ms": 10, "gfx.subpixel-text-antialiasing.enabled": true, "js.asmjs.enabled": true, |