diff --git a/components/script/dom/mod.rs b/components/script/dom/mod.rs index 8bc483739b3..89c36a7a08e 100644 --- a/components/script/dom/mod.rs +++ b/components/script/dom/mod.rs @@ -524,4 +524,5 @@ pub mod xrreferencespace; pub mod xrsession; pub mod xrspace; pub mod xrstationaryreferencespace; +pub mod xrviewerpose; pub mod xrwebgllayer; diff --git a/components/script/dom/webidls/XRViewerPose.webidl b/components/script/dom/webidls/XRViewerPose.webidl new file mode 100644 index 00000000000..ff87930e320 --- /dev/null +++ b/components/script/dom/webidls/XRViewerPose.webidl @@ -0,0 +1,10 @@ +/* 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://immersive-web.github.io/webxr/#xrviewerpose-interface + +[SecureContext, Exposed=Window] interface XRViewerPose { + // readonly attribute XRRigidTransform transform; + // readonly attribute FrozenArray views; +}; \ No newline at end of file diff --git a/components/script/dom/xrviewerpose.rs b/components/script/dom/xrviewerpose.rs new file mode 100644 index 00000000000..9fc06c671dd --- /dev/null +++ b/components/script/dom/xrviewerpose.rs @@ -0,0 +1,30 @@ +/* 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::XRViewerPoseBinding; +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 XRViewerPose { + reflector_: Reflector, +} + +impl XRViewerPose { + fn new_inherited() -> XRViewerPose { + XRViewerPose { + reflector_: Reflector::new(), + } + } + + pub fn new(global: &GlobalScope) -> DomRoot { + reflect_dom_object( + Box::new(XRViewerPose::new_inherited()), + global, + XRViewerPoseBinding::Wrap, + ) + } +}