aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--components/config/prefs.rs2
-rw-r--r--components/script/dom/mod.rs1
-rw-r--r--components/script/dom/webidls/XRTest.webidl20
-rw-r--r--components/script/dom/xrtest.rs34
-rw-r--r--resources/prefs.json1
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,