mirror of
https://github.com/servo/servo.git
synced 2025-07-23 15:23:42 +01:00
Add SimulateVisibilityChange()
This commit is contained in:
parent
6a21983e15
commit
9ecb13d83f
2 changed files with 14 additions and 9 deletions
|
@ -5,6 +5,7 @@
|
||||||
use crate::dom::bindings::codegen::Bindings::FakeXRDeviceBinding::{
|
use crate::dom::bindings::codegen::Bindings::FakeXRDeviceBinding::{
|
||||||
self, FakeXRDeviceMethods, FakeXRRigidTransformInit, FakeXRViewInit,
|
self, FakeXRDeviceMethods, FakeXRRigidTransformInit, FakeXRViewInit,
|
||||||
};
|
};
|
||||||
|
use crate::dom::bindings::codegen::Bindings::XRSessionBinding::XRVisibilityState;
|
||||||
use crate::dom::bindings::codegen::Bindings::XRViewBinding::XREye;
|
use crate::dom::bindings::codegen::Bindings::XRViewBinding::XREye;
|
||||||
use crate::dom::bindings::error::{Error, Fallible};
|
use crate::dom::bindings::error::{Error, Fallible};
|
||||||
use crate::dom::bindings::refcounted::TrustedPromise;
|
use crate::dom::bindings::refcounted::TrustedPromise;
|
||||||
|
@ -20,7 +21,7 @@ use ipc_channel::ipc::IpcSender;
|
||||||
use ipc_channel::router::ROUTER;
|
use ipc_channel::router::ROUTER;
|
||||||
use profile_traits::ipc;
|
use profile_traits::ipc;
|
||||||
use std::rc::Rc;
|
use std::rc::Rc;
|
||||||
use webxr_api::{MockDeviceMsg, MockViewInit, MockViewsInit};
|
use webxr_api::{MockDeviceMsg, MockViewInit, MockViewsInit, Visibility};
|
||||||
|
|
||||||
#[dom_struct]
|
#[dom_struct]
|
||||||
pub struct FakeXRDevice {
|
pub struct FakeXRDevice {
|
||||||
|
@ -163,7 +164,17 @@ impl FakeXRDeviceMethods for FakeXRDevice {
|
||||||
Ok(())
|
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> {
|
fn Disconnect(&self) -> Rc<Promise> {
|
||||||
let global = self.global();
|
let global = self.global();
|
||||||
let p = Promise::new(&global);
|
let p = Promise::new(&global);
|
||||||
|
|
|
@ -10,9 +10,6 @@ interface FakeXRDevice {
|
||||||
// requestAnimationFrame() callbacks.
|
// requestAnimationFrame() callbacks.
|
||||||
[Throws] void setViews(sequence<FakeXRViewInit> views);
|
[Throws] void setViews(sequence<FakeXRViewInit> views);
|
||||||
|
|
||||||
// // behaves as if device was disconnected
|
|
||||||
// Promise<void> disconnect();
|
|
||||||
|
|
||||||
[Throws] void setViewerOrigin(FakeXRRigidTransformInit origin, optional boolean emulatedPosition = false);
|
[Throws] void setViewerOrigin(FakeXRRigidTransformInit origin, optional boolean emulatedPosition = false);
|
||||||
void clearViewerOrigin();
|
void clearViewerOrigin();
|
||||||
|
|
||||||
|
@ -20,12 +17,9 @@ interface FakeXRDevice {
|
||||||
void clearFloorOrigin();
|
void clearFloorOrigin();
|
||||||
|
|
||||||
// // Simulates devices focusing and blurring sessions.
|
// // Simulates devices focusing and blurring sessions.
|
||||||
// void simulateVisibilityChange(XRVisibilityState);
|
void simulateVisibilityChange(XRVisibilityState state);
|
||||||
|
|
||||||
// void setBoundsGeometry(sequence<FakeXRBoundsPoint> boundsCoodinates);
|
// void setBoundsGeometry(sequence<FakeXRBoundsPoint> boundsCoodinates);
|
||||||
// // Sets eye level used for calculating floor-level spaces
|
|
||||||
// void setEyeLevel(float eyeLevel);
|
|
||||||
|
|
||||||
|
|
||||||
// Promise<FakeXRInputController>
|
// Promise<FakeXRInputController>
|
||||||
// simulateInputSourceConnection(FakeXRInputSourceInit);
|
// simulateInputSourceConnection(FakeXRInputSourceInit);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue