diff --git a/components/script/dom/webidls/XRSession.webidl b/components/script/dom/webidls/XRSession.webidl index 7cf25bf8c367..a07fa355e6eb 100644 --- a/components/script/dom/webidls/XRSession.webidl +++ b/components/script/dom/webidls/XRSession.webidl @@ -17,7 +17,7 @@ interface XRSession : EventTarget { // // Attributes readonly attribute XRSessionMode mode; // readonly attribute XRPresentationContext outputContext; - // readonly attribute XREnvironmentBlendMode environmentBlendMode; + readonly attribute XREnvironmentBlendMode environmentBlendMode; attribute double depthNear; attribute double depthFar; diff --git a/components/script/dom/xrsession.rs b/components/script/dom/xrsession.rs index 93837255f37e..997d88b34bfe 100644 --- a/components/script/dom/xrsession.rs +++ b/components/script/dom/xrsession.rs @@ -5,6 +5,7 @@ use crate::dom::bindings::codegen::Bindings::VRDisplayBinding::VRDisplayMethods; use crate::dom::bindings::codegen::Bindings::XRBinding::XRSessionMode; use crate::dom::bindings::codegen::Bindings::XRSessionBinding; +use crate::dom::bindings::codegen::Bindings::XRSessionBinding::XREnvironmentBlendMode; use crate::dom::bindings::codegen::Bindings::XRSessionBinding::XRFrameRequestCallback; use crate::dom::bindings::codegen::Bindings::XRSessionBinding::XRSessionMethods; use crate::dom::bindings::codegen::Bindings::XRWebGLLayerBinding::XRWebGLLayerMethods; @@ -26,6 +27,7 @@ pub struct XRSession { eventtarget: EventTarget, display: Dom, base_layer: MutNullableDom, + blend_mode: XREnvironmentBlendMode, } impl XRSession { @@ -34,6 +36,8 @@ impl XRSession { eventtarget: EventTarget::new_inherited(), display: Dom::from_ref(display), base_layer: Default::default(), + // we don't yet support any AR devices + blend_mode: XREnvironmentBlendMode::Opaque, } } @@ -102,4 +106,9 @@ impl XRSessionMethods for XRSession { fn CancelAnimationFrame(&self, frame: i32) { self.display.xr_cancel_raf(frame) } + + /// https://immersive-web.github.io/webxr/#dom-xrsession-environmentblendmode + fn EnvironmentBlendMode(&self) -> XREnvironmentBlendMode { + self.blend_mode + } }