aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/navigator.rs
diff options
context:
space:
mode:
Diffstat (limited to 'components/script/dom/navigator.rs')
-rw-r--r--components/script/dom/navigator.rs25
1 files changed, 15 insertions, 10 deletions
diff --git a/components/script/dom/navigator.rs b/components/script/dom/navigator.rs
index 04669ca25d9..aa49701709a 100644
--- a/components/script/dom/navigator.rs
+++ b/components/script/dom/navigator.rs
@@ -4,7 +4,7 @@
use crate::dom::bindings::codegen::Bindings::NavigatorBinding;
use crate::dom::bindings::codegen::Bindings::NavigatorBinding::NavigatorMethods;
-use crate::dom::bindings::codegen::Bindings::VRBinding::VRBinding::VRMethods;
+use crate::dom::bindings::error::Error;
use crate::dom::bindings::reflector::{reflect_dom_object, DomObject, Reflector};
use crate::dom::bindings::root::{DomRoot, MutNullableDom};
use crate::dom::bindings::str::DOMString;
@@ -16,8 +16,8 @@ use crate::dom::permissions::Permissions;
use crate::dom::pluginarray::PluginArray;
use crate::dom::promise::Promise;
use crate::dom::serviceworkercontainer::ServiceWorkerContainer;
-use crate::dom::vr::VR;
use crate::dom::window::Window;
+use crate::dom::xr::XR;
use dom_struct::dom_struct;
use std::rc::Rc;
@@ -28,7 +28,7 @@ pub struct Navigator {
plugins: MutNullableDom<PluginArray>,
mime_types: MutNullableDom<MimeTypeArray>,
service_worker: MutNullableDom<ServiceWorkerContainer>,
- vr: MutNullableDom<VR>,
+ xr: MutNullableDom<XR>,
gamepads: MutNullableDom<GamepadList>,
permissions: MutNullableDom<Permissions>,
}
@@ -41,7 +41,7 @@ impl Navigator {
plugins: Default::default(),
mime_types: Default::default(),
service_worker: Default::default(),
- vr: Default::default(),
+ xr: Default::default(),
gamepads: Default::default(),
permissions: Default::default(),
}
@@ -135,7 +135,7 @@ impl NavigatorMethods for Navigator {
.gamepads
.or_init(|| GamepadList::new(&self.global(), &[]));
- let vr_gamepads = self.Vr().get_gamepads();
+ let vr_gamepads = self.Xr().get_gamepads();
root.add_if_not_exists(&vr_gamepads);
// TODO: Add not VR related gamepads
root
@@ -149,12 +149,17 @@ impl NavigatorMethods for Navigator {
// https://w3c.github.io/webvr/spec/1.1/#navigator-getvrdisplays-attribute
#[allow(unrooted_must_root)]
fn GetVRDisplays(&self) -> Rc<Promise> {
- self.Vr().GetDisplays()
+ let promise = Promise::new(&self.global());
+ let displays = self.Xr().get_displays();
+ match displays {
+ Ok(displays) => promise.resolve_native(&displays),
+ Err(_) => promise.reject_error(Error::Security),
+ }
+ promise
}
-}
-impl Navigator {
- pub fn Vr(&self) -> DomRoot<VR> {
- self.vr.or_init(|| VR::new(&self.global()))
+ /// https://immersive-web.github.io/webxr/#dom-navigator-xr
+ fn Xr(&self) -> DomRoot<XR> {
+ self.xr.or_init(|| XR::new(&self.global()))
}
}