Skip to content

Commit d9f1a1d

Browse files
committed
Update MVP doc to reflect current plans.
1 parent 775d266 commit d9f1a1d

1 file changed

Lines changed: 48 additions & 54 deletions

File tree

usermedia-chrome-mvp.html

Lines changed: 48 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,10 @@
4444
title: "Page Embedded Permission Control",
4545
href: "https://github.com/WICG/PEPC",
4646
},
47+
"usermedia-legacy-origin-trial": {
48+
title: "Trial for UserMediaElement",
49+
href: "https://developer.chrome.com/origintrials/#/view_trial/3736298840857247745",
50+
},
4751
},
4852
};
4953
</script>
@@ -90,100 +94,91 @@ <h1>Differences between Chrome's [[[usermedia-mvp]]] and
9094
in several phases.
9195
</p>
9296
<p>
93-
With the initial public release we will support the MVP API ([[[#mvp]]]).
97+
The initial public release ("MVP") will support the API specified in
98+
[[[mediacapture-extensions#media-capture-html-elements]]].
9499
The older API shape ([[[#original-pepc]]]) will be supported behind an
95-
origin trial, to allow origin trial participants to transition on their
96-
own timeline.
100+
origin trial ([[[usermedia-legacy-origin-trial]]]),
101+
to allow origin trial participants to transition on their
102+
own timeline. The current plan is to end the
103+
[[[usermedia-legacy-origin-trial]]] on November 3rd, 2026.
97104
</p>
98105
<dl>
99-
<dt>soon &mdash; Standardized API</dt>
106+
<dt>soon &mdash; Post-MVP</dt>
100107
<dd>
101-
The API as described in
102-
[[[mediacapture-extensions#the-usermedia-html-element]]], including
103-
&lt;usermedia&gt;, &lt;camera&gt;, and &lt;microphone&gt;.
108+
We expect future developments of the API to be first specified
109+
in [[mediacapture-extensions]].
104110
</dd>
105-
<dt>M151 &amp; later &mdash; &lt;usermedia&gt; element MVP</dt>
111+
<dt>M153 &amp; later &mdash; &lt;usermedia&gt;, &lt;camera&gt;, and
112+
&lt;microphone&gt; elements.
106113
<dd>
107-
The first publicly available version. It is based on the
108-
[[mediacapture-extensions]], but only implements a subset of the
109-
specification.
110-
This API is described in [[[#mvp]]].
114+
The first publicly available version implements
115+
[[[mediacapture-extensions#the-usermedia-html-element]]].
116+
Behaviours not covered by the current version of the spec, like
117+
what happens when the element is activated while a stream is playing
118+
("second click"), are postponed to any post-MVP versions.
111119
</dd>
112-
<dt>M144 - M150 &mdash; &lt;usermedia&gt; element [[[origin-trials|origin trial]]]</dt>
120+
<dt>M144 - M152 &mdash; &lt;usermedia&gt; element
121+
[[[origin-trials|origin trial]]]</dt>
113122
<dd>
114123
The original implementation, based on the original
115124
[[[pepc#page-embedded-permission-control-pepc]]] design, described
116125
in [[[#original-pepc]]].
117126
This API was available originally behind an origin trial.
118-
For a limited time, it will continue to be available behind the
119-
origin trial, concurrently with the MVP, as a
127+
For a limited time it will continue to be available behind the
128+
[[[usermedia-legacy-origin-trial]]] origin trial, concurrently with
129+
the MVP, as an
120130
[[[origin-trials#deprecation_trials|reverse origin trial]]].
121131
</dd>
122-
<dt>pre M144 &mdash; &lt;permission&gt; element [[[origin-trials|origin trial]]]</dt>
132+
<dt>pre M144 &mdash; &lt;permission&gt; element
133+
[[[origin-trials|origin trial]]]</dt>
123134
<dd>
124-
[[[pepc]]]'s &lt;permission&gt; element is the ancestor of
125-
&lt;usermedia&gt;. It is no longer supported.
135+
[[[pepc]]]'s <a data-link-type=element" href=https://wicg.github.io/PEPC/permission-element.html#the-permission-element>permission</a>
136+
element is the ancestor of
137+
<a data-link-type=element href=https://w3c.github.io/mediacapture-extensions/#dfn-usermedia>usermedia</a>.
138+
It is no longer supported.
126139
</dd>
127140
</dl>
128141
</section>
129142
<section id="mvp">
130-
<h1>MVP API</h1>
143+
<h1>First public version / MVP, M153</h1>
131144

132145
<p>
133146
The [[usermedia-mvp|MVP]]'s
134147
<a data-link-type=element href=https://w3c.github.io/mediacapture-extensions/#dfn-usermedia>usermedia</a> element uses the following
135-
[=element interface=]. Note that it is a strict subset of the interface
136-
speciefied in [[[mediacapture-extensions#the-usermedia-html-element]]].
148+
[=element interface=].
149+
<a data-link-type=element href=https://w3c.github.io/mediacapture-extensions/#dfn-camera>camera</a>
150+
and <a data-link-type=element href=https://w3c.github.io/mediacapture-extensions/#dfn-microphone>microphone</a>
151+
element are analogous. These elements and their interfaces are fully
152+
specified in
153+
[[[mediacapture-extensions#the-usermedia-html-element]]].
137154
</p>
138155

139156
<pre>
140157
[Exposed=Window]
141158
interface HTMLUserMediaElement : HTMLElement {
142159
[HTMLConstructor] constructor();
143160

161+
readonly attribute MediaStream? stream;
144162
readonly attribute DOMException? error;
163+
undefined setConstraints(optional HTMLMediaStreamConstraints constraints = {});
164+
145165
attribute EventHandler onstream;
146166
attribute EventHandler oncancel;
147167
attribute EventHandler onerror;
148168
};
149169
</pre>
150170

151171
<p>
152-
<a data-link-type=attribute href=https://w3c.github.io/mediacapture-extensions/#dom-htmlusermediaelement-stream>stream</a>,
153-
<a data-link-type=attribute href=https://w3c.github.io/mediacapture-extensions/#dom-htmlusermediaelement-error>error</a>,
154-
<a data-link-type=attribute href=https://w3c.github.io/mediacapture-extensions/#dom-htmlusermediaelement-onstream>onstream</a>,
155-
<a data-link-type=attribute href=https://w3c.github.io/mediacapture-extensions/#dom-htmlusermediaelement-oncancel>oncancel</a>, and
156-
<a data-link-type=attribute href=https://w3c.github.io/mediacapture-extensions/#dom-htmlusermediaelement-onerror>onerror</a>
157-
attributes work as in [[mediacapture-extensions]]'s
158-
<a data-link-type=element href=https://w3c.github.io/mediacapture-extensions/#dfn-usermedia>usermedia</a> element.
159-
</p>
160-
161-
<p>
162-
The [=EventTarget/activation behavior=] is as follows:
172+
The main differences to the legacy API are:
163173
</p>
164-
165174
<ul>
166-
<li>
167-
Activation of <a data-link-type=element href=https://w3c.github.io/mediacapture-extensions/#dfn-usermedia>usermedia</a>
168-
will call directly into the [[permissions|Permissions API]], rather than
169-
letting {{MediaDevices/getUserMedia()}} handle it. This should be
170-
functionally identical, but may show a different prompt text.
171-
</li>
172-
<li>
173-
"Second" activation &mdash; activation while a stream is active &mdash;
174-
of <a data-link-type=element href=https://w3c.github.io/mediacapture-extensions/#dfn-usermedia>usermedia</a>
175-
will have no special effect, other than firing the [[DOM]]
176-
<a data-dfn-type=event>click</a>
177-
event. [[mediacapture-extensions]] presently leaves this aspect
178-
unspecified.
179-
</li>
175+
<li>Eliminate the <code>type</code> and <code>isTypeSupported</code>
176+
attributes, and instead have three different element types.</li>
177+
<li>The <code>stream</code> is now directly accessible as an
178+
attribute.</li>
179+
<li>The "blocker" logic still exists, but is not exposed to the
180+
developer.</li>
180181
</ul>
181-
182-
<p>
183-
The <a data-link-type=element href=https://w3c.github.io/mediacapture-extensions/#dfn-camera>camera</a> and
184-
<a data-link-type=element href=https://w3c.github.io/mediacapture-extensions/#dfn-microphone>microphone</a>
185-
elements are expected to follow shortly.
186-
</p>
187182
</section>
188183
<section id="original-pepc">
189184
<h1>Legacy PEPC API</h1>
@@ -207,7 +202,6 @@ <h1>Legacy PEPC API</h1>
207202
interface HTMLUserMediaElement : HTMLElement {
208203
[HTMLConstructor] constructor();
209204

210-
readonly attribute MediaStream? stream;
211205
undefined setConstraints(MediaStreamConstraints constraints);
212206
readonly attribute DOMException? error;
213207

0 commit comments

Comments
 (0)