-
Notifications
You must be signed in to change notification settings - Fork 52
/
Copy pathchrome-support.html
153 lines (150 loc) · 5.93 KB
/
chrome-support.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
---
---
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<link rel="stylesheet" href="./main.css">
<link rel="stylesheet" href="./highlight.css">
<title>Chrome Hardware Support - Immersive Web Developer Home</title>
<meta property="og:title" content="Chrome Hardware Support - Immersive Web Developer Home">
<meta name="twitter:card" content="summary">
<meta name="twitter:site" content="@ImmersiveWebW3C">
<meta name="twitter:creator" content="@ImmersiveWebW3C">
<meta property="og:url" content="https://immersiveweb.dev/">
<meta name="description" content="Get started building XR applications through the Web with the WebXR Device API, demos, docs, samples and more.">
<meta property="og:description" content="Get started building XR applications through the Web with the WebXR Device API, demos, docs, samples and more.">
<meta property="og:image" content="https://immersiveweb.dev/images/webxrlogo.png">
</head>
<body>
<main>
<img src="./webxr-logo.svg" alt="The WebXR Device API" />
<h1>Chrome Hardware Support</h1>
<article style="grid-column: 1/-1;">
<p>Chrome supports WebXR on a variety of platforms and hardware. This page details the supported devices and required configuration (if any) to use them.</p>
</article>
<h2>
Chrome Compatibility Table
</h2>
<div class="compat-table">
<table>
<thead>
<tr>
<td>Device</td>
<td>OS</td>
<td>Runtime</td>
<td>Supported Session Modes</td>
<td>WebXR Support</td>
</tr>
</thead>
<tbody>
<tr>
<td>
Oculus,<br/>
SteamVR,<br/>
Windows Mixed Reality,<br/>
OpenXR compatible HMDs
</td>
<td>Windows</td>
<td>OpenXR</td>
<td>immersive-vr</td>
<td><a href="#getting-openxr">Enabled in Chrome 81+</a></td>
</tr>
<tr>
<td>
Cardboard<br/>
Daydream View<br/>
Lenovo Mirage Solo
</td>
<td>Android</td>
<td>Google VR</td>
<td>immersive-vr</td>
<td>Enabled in Chrome 79+</td>
</tr>
<tr>
<td>
<a href="https://developers.google.com/ar/discover/supported-devices">ARCore-compatible mobile devices</a>
</td>
<td>Android</td>
<td>ARCore</td>
<td>immersive-ar</td>
<td>Enabled in Chrome 81+</td>
</tr>
<tr>
<td>
<a href="https://developer.android.com/xr">Android XR devices</a>
</td>
<td>Android</td>
<td>OpenXR</td>
<td>immersive-vr, immersive-ar</td>
<td>Enabled in Chrome 129+</td>
</tr>
</tbody>
</table>
</div>
<h2 id='getting-openxr-win'>
Getting a compatible OpenXR Desktop runtime
</h2>
<p style="grid-column: 1/-1;">
Chrome uses <a href="https://www.khronos.org/openxr">OpenXR</a> to interface with VR headsets on Windows.
In order to work with Chrome the device's OpenXR runtime must support the <a href="https://www.khronos.org/registry/OpenXR/specs/1.0/html/xrspec.html#XR_EXT_win32_appcontainer_compatible">XR_EXT_win32_appcontainer_compatible</a> extension,
which ensures that the runtime can work securely with Chrome's sandboxing.
<br/><br/>
See below to learn more about enabling OpenXR support for several popular devices.
</p>
<p style="grid-column: 1/-1;">
<b>Windows Mixed Reality</b>
<br/><br/>
A compatible OpenXR runtime for Windows Mixed Reality ships with the
<a href="https://docs.microsoft.com/en-us/windows/mixed-reality/openxr-getting-started">Windows 10 May 2019 Update (1903)</a> or later.
</p>
<p style="grid-column: 1/-1;">
<b>SteamVR (HTC Vive, Valve Index, etc)</b>
<br/><br/>
A compatible OpenXR runtime for SteamVR ships with <a href="https://store.steampowered.com/news/app/250820/view/3044967019267211914">SteamVR 1.16.8</a> or later.
</p>
<p style="grid-column: 1/-1;">
<b>Oculus (Rift/Rift S/Quest via Oculus Link)</b>
<br/><br/>
A compatible OpenXR runtime for Oculus ships with <a href="https://developer.oculus.com/blog/openxr-for-oculus/">v19</a> or later.
</p>
<p style="grid-column: 1/-1;">
<b>Unsandboxed OpenXR</b>
<br/><br/>
To test Chrome with OpenXR runtimes that do not implement the <i>XR_EXT_win32_appcontainer_compatible</i> extension, WebXR sandboxing must be disabled.<br/><br/>
<b>It is not recommended that you use Chrome with the following flags for daily browsing, as it disables certain security measures around Chrome interaction with VR hardware!</b><br/><br/>
To disable Chrome's WebXR sandboxing, use the following command line option:
<pre>--disable-features=XRSandbox</pre>
</p>
<h2 id='getting-openxr-android'>
Getting a compatible OpenXR Android runtime
</h2>
<p style="grid-column: 1/-1;">
Note that for security reasons, Chrome ignores the Android ContentProvider authorities described
in the <a href="https://registry.khronos.org/OpenXR/specs/1.0/loader.html#active-runtime-information">OpenXR Spec</a>
<br/><br/>
The OpenXR Reference loader also does not provide support for setting the runtime via the environment variable at this time.
</p>
<footer>
<p>CC0 Licensed, feel free to remix, Maintained by the <a href ="https://w3.org/immersive-web">W3C Immersive Web Working and Community Groups</a>
</p>
<p>
Request changes by <a href="https://github.com/adarosecannon/immersiveweb">making a pull request on github.</a>
</p>
</footer>
</main>
<script>
Array.from(document.querySelectorAll('main > h1,main > h2, main > h3')).forEach(el => {
const id = el.id || el.textContent.replace(/[^a-z0-9]/gi,'').toLocaleLowerCase();
el.setAttribute('id', id);
const linkEl = document.createElement('A');
linkEl.className = 'targetlink';
linkEl.setAttribute('href', '#' + id);
linkEl.innerHTML = '🔗︎';
el.insertAdjacentElement('afterbegin', linkEl);
});
</script>
</body>
</html>