aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--components/script/dom/fakexrdevice.rs15
-rw-r--r--components/script/dom/webidls/FakeXRDevice.webidl8
2 files changed, 14 insertions, 9 deletions
diff --git a/components/script/dom/fakexrdevice.rs b/components/script/dom/fakexrdevice.rs
index bb73580e98a..d193c095717 100644
--- a/components/script/dom/fakexrdevice.rs
+++ b/components/script/dom/fakexrdevice.rs
@@ -5,6 +5,7 @@
use crate::dom::bindings::codegen::Bindings::FakeXRDeviceBinding::{
self, FakeXRDeviceMethods, FakeXRRigidTransformInit, FakeXRViewInit,
};
+use crate::dom::bindings::codegen::Bindings::XRSessionBinding::XRVisibilityState;
use crate::dom::bindings::codegen::Bindings::XRViewBinding::XREye;
use crate::dom::bindings::error::{Error, Fallible};
use crate::dom::bindings::refcounted::TrustedPromise;
@@ -20,7 +21,7 @@ use ipc_channel::ipc::IpcSender;
use ipc_channel::router::ROUTER;
use profile_traits::ipc;
use std::rc::Rc;
-use webxr_api::{MockDeviceMsg, MockViewInit, MockViewsInit};
+use webxr_api::{MockDeviceMsg, MockViewInit, MockViewsInit, Visibility};
#[dom_struct]
pub struct FakeXRDevice {
@@ -163,7 +164,17 @@ impl FakeXRDeviceMethods for FakeXRDevice {
Ok(())
}
- /// https://github.com/immersive-web/webxr-test-api/blob/master/explainer.md
+ /// https://immersive-web.github.io/webxr-test-api/#dom-fakexrdevice-simulatevisibilitychange
+ fn SimulateVisibilityChange(&self, v: XRVisibilityState) {
+ let v = match v {
+ XRVisibilityState::Visible => Visibility::Visible,
+ XRVisibilityState::Visible_blurred => Visibility::VisibleBlurred,
+ XRVisibilityState::Hidden => Visibility::Hidden,
+ };
+ let _ = self.sender.send(MockDeviceMsg::VisibilityChange(v));
+ }
+
+ /// https://immersive-web.github.io/webxr-test-api/#dom-fakexrdevice-disconnect
fn Disconnect(&self) -> Rc<Promise> {
let global = self.global();
let p = Promise::new(&global);
diff --git a/components/script/dom/webidls/FakeXRDevice.webidl b/components/script/dom/webidls/FakeXRDevice.webidl
index 4dde2678435..8d981c4182a 100644
--- a/components/script/dom/webidls/FakeXRDevice.webidl
+++ b/components/script/dom/webidls/FakeXRDevice.webidl
@@ -10,9 +10,6 @@ interface FakeXRDevice {
// requestAnimationFrame() callbacks.
[Throws] void setViews(sequence<FakeXRViewInit> views);
- // // behaves as if device was disconnected
- // Promise<void> disconnect();
-
[Throws] void setViewerOrigin(FakeXRRigidTransformInit origin, optional boolean emulatedPosition = false);
void clearViewerOrigin();
@@ -20,12 +17,9 @@ interface FakeXRDevice {
void clearFloorOrigin();
// // Simulates devices focusing and blurring sessions.
- // void simulateVisibilityChange(XRVisibilityState);
+ void simulateVisibilityChange(XRVisibilityState state);
// void setBoundsGeometry(sequence<FakeXRBoundsPoint> boundsCoodinates);
- // // Sets eye level used for calculating floor-level spaces
- // void setEyeLevel(float eyeLevel);
-
// Promise<FakeXRInputController>
// simulateInputSourceConnection(FakeXRInputSourceInit);