diff options
author | Imanol Fernandez <mortimergoro@gmail.com> | 2017-05-26 14:22:02 +0200 |
---|---|---|
committer | Imanol Fernandez <mortimergoro@gmail.com> | 2017-07-05 22:38:29 +0200 |
commit | fe4ee6de2efe60948bb5cadaabd53e326209ca07 (patch) | |
tree | bf5281e560fe3d1953d9bf985786dfc3abdb5260 /components/script/dom/navigator.rs | |
parent | 296a215e5404eb0fd0c0a34cc1283cd0b84aaea9 (diff) | |
download | servo-fe4ee6de2efe60948bb5cadaabd53e326209ca07.tar.gz servo-fe4ee6de2efe60948bb5cadaabd53e326209ca07.zip |
WebVR 1.1 spec compatibility
Diffstat (limited to 'components/script/dom/navigator.rs')
-rw-r--r-- | components/script/dom/navigator.rs | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/components/script/dom/navigator.rs b/components/script/dom/navigator.rs index 32dd2900e17..4d0b38f78b3 100644 --- a/components/script/dom/navigator.rs +++ b/components/script/dom/navigator.rs @@ -4,6 +4,7 @@ use dom::bindings::codegen::Bindings::NavigatorBinding; use dom::bindings::codegen::Bindings::NavigatorBinding::NavigatorMethods; +use dom::bindings::codegen::Bindings::VRBinding::VRBinding::VRMethods; use dom::bindings::js::{MutNullableJS, Root}; use dom::bindings::reflector::{Reflector, DomObject, reflect_dom_object}; use dom::bindings::str::DOMString; @@ -13,10 +14,12 @@ use dom::mimetypearray::MimeTypeArray; use dom::navigatorinfo; use dom::permissions::Permissions; use dom::pluginarray::PluginArray; +use dom::promise::Promise; use dom::serviceworkercontainer::ServiceWorkerContainer; use dom::vr::VR; use dom::window::Window; use dom_struct::dom_struct; +use std::rc::Rc; #[dom_struct] pub struct Navigator { @@ -124,12 +127,6 @@ impl NavigatorMethods for Navigator { true } - #[allow(unrooted_must_root)] - // https://w3c.github.io/webvr/#interface-navigator - fn Vr(&self) -> Root<VR> { - self.vr.or_init(|| VR::new(&self.global())) - } - // https://www.w3.org/TR/gamepad/#navigator-interface-extension fn GetGamepads(&self) -> Root<GamepadList> { let root = self.gamepads.or_init(|| { @@ -145,4 +142,16 @@ impl NavigatorMethods for Navigator { fn Permissions(&self) -> Root<Permissions> { self.permissions.or_init(|| Permissions::new(&self.global())) } + + // https://w3c.github.io/webvr/spec/1.1/#navigator-getvrdisplays-attribute + #[allow(unrooted_must_root)] + fn GetVRDisplays(&self) -> Rc<Promise> { + self.Vr().GetDisplays() + } +} + +impl Navigator { + pub fn Vr(&self) -> Root<VR> { + self.vr.or_init(|| VR::new(&self.global())) + } } |