Secure context
This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

The WebXR Device API's XRSessionEvent() constructor creates and returns a new XRSessionEvent object. These objects represent events announcing state changes in an XRSession representing an augmented or virtual reality session.


newXRSessionEvent = new XRSessionEvent(type, eventInitDict);


A DOMString indicating which of the events represented by objects of type XRSessionEvent this particular object represents. See Event types for a list of the permitted values.

An object conforming to the XRSessionEventInit dictionary which contains values to be applied to the newly-created event object. Permitted values are:

The XRSession to which the event is to be delivered.

Return value

A newly-created XRSessionEvent object representing an object of the specfied type and configured as described by the eventInitDict parameter.

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 listiener 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":


Specification Status Comment
WebXR Device API
The definition of 'XRSessionEvent() constructor' in that specification.
Working Draft Initial definition.

Browser compatibility

Update compatibility data on GitHub
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung Internet
XRSessionEvent() constructorChrome Full support 79Edge Full support 79Firefox No support NoIE No support NoOpera No support NoSafari No support NoWebView Android No support NoChrome Android Full support 79Firefox Android No support NoOpera Android No support NoSafari iOS No support NoSamsung Internet Android Full support 11.2


Full support  
Full support
No support  
No support