diff --git a/components/script/dom/webidls/XRSession.webidl b/components/script/dom/webidls/XRSession.webidl index 507579225ab..be8fb36e7bf 100644 --- a/components/script/dom/webidls/XRSession.webidl +++ b/components/script/dom/webidls/XRSession.webidl @@ -42,5 +42,5 @@ interface XRSession : EventTarget { // attribute EventHandler oninputsourceschange; attribute EventHandler onselectstart; attribute EventHandler onselectend; - // attribute EventHandler onvisibilitychange; + attribute EventHandler onvisibilitychange; }; diff --git a/components/script/dom/xrsession.rs b/components/script/dom/xrsession.rs index ba133ed1d7c..3451bb55467 100644 --- a/components/script/dom/xrsession.rs +++ b/components/script/dom/xrsession.rs @@ -49,7 +49,9 @@ use profile_traits::ipc; use std::cell::Cell; use std::mem; use std::rc::Rc; -use webxr_api::{self, EnvironmentBlendMode, Event as XREvent, Frame, SelectEvent, Session, Visibility}; +use webxr_api::{ + self, EnvironmentBlendMode, Event as XREvent, Frame, SelectEvent, Session, Visibility, +}; #[dom_struct] pub struct XRSession { @@ -313,6 +315,13 @@ impl XRSessionMethods for XRSession { /// https://immersive-web.github.io/webxr/#eventdef-xrsession-selectend event_handler!(selectend, GetOnselectend, SetOnselectend); + /// https://immersive-web.github.io/webxr/#eventdef-xrsession-visibilitychange + event_handler!( + visibilitychange, + GetOnvisibilitychange, + SetOnvisibilitychange + ); + // https://immersive-web.github.io/webxr/#dom-xrsession-renderstate fn RenderState(&self) -> DomRoot { self.active_render_state.get() diff --git a/tests/wpt/metadata/webxr/idlharness.https.window.js.ini b/tests/wpt/metadata/webxr/idlharness.https.window.js.ini index 109add21c4b..a48d48dd278 100644 --- a/tests/wpt/metadata/webxr/idlharness.https.window.js.ini +++ b/tests/wpt/metadata/webxr/idlharness.https.window.js.ini @@ -14,9 +14,6 @@ [XR interface: calling supportsSession(XRSessionMode) on navigator.xr with too few arguments must throw TypeError] expected: FAIL - [XRSession interface: attribute onvisibilitychange] - expected: FAIL - [XRInputSourcesChangeEvent interface object length] expected: FAIL