files/en-us/web/api/xrsessionevent/index.md
{{APIRef("WebXR Device API")}}{{SecureContext_Header}}
The WebXR Device API's XRSessionEvent interface describes an event which indicates the change of the state of an {{domxref("XRSession")}}. These events occur, for example, when the session ends or the visibility of its context changes.
{{InheritanceDiagram}}
XRSessionEvent object.In addition to properties inherited from its parent interface, {{domxref("Event")}}, XRSessionEvent provides the following:
While XRSessionEvent defines no methods, it inherits methods from its parent interface, {{domxref("Event")}}.
The following events are represented using the XRSessionEvent interface, and are permitted values for its type property.
This example creates a listener that watches for the visibility state of the session to change. It reacts by calling a function mySessionVisible() with a Boolean indicating whether or not the session is visible; this function might, for instance, spin up or reconfigure a worker that handles rendering the scene.
xrSession.addEventListener("visibilitychange", (e) => {
switch (e.session.visibilityState) {
case "visible":
case "visible-blurred":
mySessionVisible(true);
break;
case "hidden":
mySessionVisible(false);
break;
}
});
{{Specifications}}
{{Compat}}