Extended Support Info
Browser Engine/OS Support Table
There is an existing table detailing support of individual WebXR components at https://immersiveweb.dev/#supporttable.
The following table shows the current state of support between the WebXR implementation of different browser engines and all major operating systems.
Chromium | Gecko | WebKit | Servo | |
---|---|---|---|---|
Windows | Yes | Yes1 | No | Yes2 |
macOS | macOS currently lacks any VR/XR runtimes for implementation. | |||
Linux | No3 | No3 | No | No4 |
BSD | BSD currently lacks any VR/XR runtimes for implementation. | |||
Android | Yes | Yes | No | Yes |
iOS | No | No | No | No |
visionOS | No | No | Yes | No |
1 Requires both the 2 Support is in codebase but not shipped in any ports by default. 3 See this GitHub repo for unofficial patches enabling WebXR on Linux. 4 This is being actively worked on. |
Why Can't I Use WebXR In X On Y?
I would say there are 4 major requirements for being able to use WebXR:
- A VR/XR runtime such as OpenVR, LibOVR, or OpenXR.
- A working implementation of the WebXR API within the browser engine.
- Support for a graphics API present on the end user's machine.
- (Optional if you're the kind of person that builds browser engines for fun) An accessible browser that ships WebXR.
WebKit/Windows
- Runtime: Windows has multiple available OpenXR runtimes, but WebKit currently uses the XR_MNDX_egl_enable OpenXR extension. This extension is currently only supported in Monado, which does not have a fully functional Windows version yet, and SteamVR on Linux.
- Implementation: WebKit contains a fairly complete implementation of the WebXR Device API and some associated modules thanks to work from Apple and Igalia.
- Graphics API Support: WebKit uses EGL to drive their OpenXR implementation. See earlier runtime note.
- Accessible Browser: There are little to no browsers for Windows making using of the WebKit Windows port.
Chromium/Linux
- Runtime: Chromium uses OpenXR, for which Linux has both the SteamVR and Monado OpenXR runtimes available.
- Implementation: Chromium is one of the most developed WebXR implementations.
- Graphics API Support: Chromium currently only supports D3D11 for WebXR on desktop, limiting it to Windows. There's been some unofficial work adding Linux support.
- Accessible Browser: Chrome is the main browser built on Chromium, but there are multiple Chromium-based browsers shipping WebXR.
Gecko/Linux
- Runtime: Gecko can use either OpenVR or LibOVR, limiting Linux to SteamVR.
- Implementation: Gecko has a mostly complete implementation of WebXR, but it is gated behind prefs that are disabled by default.
- Graphics API Support: Gecko currently only supports D3D11 for WebXR on desktop, limiting it to Windows. There's been some unofficial work adding Linux support.
- Accessible Browser: Firefox is the main browser built on Gecko, along with its variants such as Waterfox, LibreWolf, and GNU IceCat.
WebXR WPT Results
Active WebXR Bugs/Issues
Blink/Chromium
Still figuring out how to best embed these, in the meantime you can view directly here.
Gecko
ID | Summary | Last Updated |
---|
WebKit
ID | Summary | Last Updated |
---|
Specification Status
Name | Target | Date |
---|