diff --git a/components/script/dom/xrreferencespace.rs b/components/script/dom/xrreferencespace.rs index 7d573a165c38..469086ec8345 100644 --- a/components/script/dom/xrreferencespace.rs +++ b/components/script/dom/xrreferencespace.rs @@ -9,6 +9,7 @@ use crate::dom::bindings::root::{DomRoot, MutDom}; use crate::dom::dompointreadonly::DOMPointReadOnly; use crate::dom::window::Window; use crate::dom::xrrigidtransform::XRRigidTransform; +use crate::dom::xrsession::XRSession; use crate::dom::xrspace::XRSpace; use dom_struct::dom_struct; @@ -19,9 +20,9 @@ pub struct XRReferenceSpace { } impl XRReferenceSpace { - pub fn new_inherited(transform: &XRRigidTransform) -> XRReferenceSpace { + pub fn new_inherited(session: &XRSession, transform: &XRRigidTransform) -> XRReferenceSpace { XRReferenceSpace { - xrspace: XRSpace::new_inherited(), + xrspace: XRSpace::new_inherited(session), transform: MutDom::new(transform), } } @@ -29,12 +30,13 @@ impl XRReferenceSpace { #[allow(unused)] pub fn new( global: &Window, + session: &XRSession, position: &DOMPointReadOnly, orientation: &DOMPointReadOnly, ) -> DomRoot { let transform = XRRigidTransform::identity(global); reflect_dom_object( - Box::new(XRReferenceSpace::new_inherited(&transform)), + Box::new(XRReferenceSpace::new_inherited(session, &transform)), global, XRReferenceSpaceBinding::Wrap, ) diff --git a/components/script/dom/xrspace.rs b/components/script/dom/xrspace.rs index 00e20df2c222..e0d4ce75cf36 100644 --- a/components/script/dom/xrspace.rs +++ b/components/script/dom/xrspace.rs @@ -4,27 +4,30 @@ use crate::dom::bindings::codegen::Bindings::XRSpaceBinding; use crate::dom::bindings::reflector::reflect_dom_object; -use crate::dom::bindings::root::DomRoot; +use crate::dom::bindings::root::{Dom, DomRoot}; use crate::dom::eventtarget::EventTarget; use crate::dom::globalscope::GlobalScope; +use crate::dom::xrsession::XRSession; use dom_struct::dom_struct; #[dom_struct] pub struct XRSpace { eventtarget: EventTarget, + session: Dom, } impl XRSpace { - pub fn new_inherited() -> XRSpace { + pub fn new_inherited(session: &XRSession) -> XRSpace { XRSpace { eventtarget: EventTarget::new_inherited(), + session: Dom::from_ref(session), } } #[allow(unused)] - pub fn new(global: &GlobalScope) -> DomRoot { + pub fn new(global: &GlobalScope, session: &XRSession) -> DomRoot { reflect_dom_object( - Box::new(XRSpace::new_inherited()), + Box::new(XRSpace::new_inherited(session)), global, XRSpaceBinding::Wrap, ) diff --git a/components/script/dom/xrstationaryreferencespace.rs b/components/script/dom/xrstationaryreferencespace.rs index bfb8b41aeb53..8ac897b5ad73 100644 --- a/components/script/dom/xrstationaryreferencespace.rs +++ b/components/script/dom/xrstationaryreferencespace.rs @@ -8,6 +8,7 @@ use crate::dom::bindings::root::DomRoot; use crate::dom::window::Window; use crate::dom::xrreferencespace::XRReferenceSpace; use crate::dom::xrrigidtransform::XRRigidTransform; +use crate::dom::xrsession::XRSession; use dom_struct::dom_struct; #[dom_struct] @@ -17,16 +18,21 @@ pub struct XRStationaryReferenceSpace { #[allow(unused)] impl XRStationaryReferenceSpace { - pub fn new_inherited(transform: &XRRigidTransform) -> XRStationaryReferenceSpace { + pub fn new_inherited( + session: &XRSession, + transform: &XRRigidTransform, + ) -> XRStationaryReferenceSpace { XRStationaryReferenceSpace { - xrreferencespace: XRReferenceSpace::new_inherited(transform), + xrreferencespace: XRReferenceSpace::new_inherited(session, transform), } } - pub fn new(window: &Window) -> DomRoot { + pub fn new(window: &Window, session: &XRSession) -> DomRoot { let transform = XRRigidTransform::identity(window); reflect_dom_object( - Box::new(XRStationaryReferenceSpace::new_inherited(&transform)), + Box::new(XRStationaryReferenceSpace::new_inherited( + session, &transform, + )), window, XRStationaryReferenceSpaceBinding::Wrap, )