/Web APIs


The WebXR Device API's XRSessionEvent interface describes an event which indicates the change of the state of an XRSession. These events occur, for example, when the session ends or the visibility of its context changes.

Event XRSessionEvent



Creates and returns a new XRSessionEvent object.

Instance properties

In addition to properties inherited from its parent interface, Event, XRSessionEvent provides the following:

session Read only

The XRSession to which the event refers.

Instance methods

While XRSessionEvent defines no methods, it inherits methods from its parent interface, Event.

Session event types

The following events are represented using the XRSessionEvent interface, and are permitted values for its type property.


Fired at the session when it has ended, after being terminated by the application or the user agent.


Fired at the session whenever its visibility state changes.


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("visibilitystate", (e) => {
  switch(e.session.visibilitystate) {
    case "visible":
    case "visible-blurred":
    case "hidden":


Browser compatibility

Desktop Mobile
Chrome Edge Firefox Internet Explorer Opera Safari WebView Android Chrome Android Firefox for Android Opera Android Safari on IOS Samsung Internet
XRSessionEvent 79 79 No No 66 No No 79 No 57 No 11.2
XRSessionEvent 79 79 No No 66 No No 79 No 57 No 11.2
session 79 79 No No 66 No No 79 No 57 No 11.2

© 2005–2023 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.