[html5] r6256 - [giow] (0) To not squat on the quite generic term 'Stream', Stream, GeneratedStr [...]

whatwg at whatwg.org whatwg at whatwg.org
Fri Jun 17 15:21:24 PDT 2011


Author: ianh
Date: 2011-06-17 15:21:22 -0700 (Fri, 17 Jun 2011)
New Revision: 6256

Modified:
   complete.html
   index
   source
Log:
[giow] (0) To not squat on the quite generic term 'Stream', Stream, GeneratedStream, and StreamRecorder become MediaStream, LocalMediaStream, and MediaStreamRecorder

Modified: complete.html
===================================================================
--- complete.html	2011-06-17 19:57:59 UTC (rev 6255)
+++ complete.html	2011-06-17 22:21:22 UTC (rev 6256)
@@ -74682,7 +74682,7 @@
 
 [Callback=FunctionOnly, NoInterfaceObject]
 interface <dfn id=navigatorusermediasuccesscallback>NavigatorUserMediaSuccessCallback</dfn> {
-  void <span title=dom-NavigatorUserMediaSuccessCallback-handleEvent>handleEvent</span>(in <a href=#generatedstream>GeneratedStream</a> stream);
+  void <span title=dom-NavigatorUserMediaSuccessCallback-handleEvent>handleEvent</span>(in <a href=#localmediastream>LocalMediaStream</a> stream);
 };
 
 [NoInterfaceObject]<!-- this is based on PositionError in geolocation -->
@@ -74724,7 +74724,7 @@
 
 
     </dl><p>If the user accepts, the <var title="">successCallback</var> is
-    invoked, with a suitable <code><a href=#generatedstream>GeneratedStream</a></code> object as
+    invoked, with a suitable <code><a href=#localmediastream>LocalMediaStream</a></code> object as
     its argument.</p>
 
     <p>If the user declines, the <var title="">errorCallback</var> (if
@@ -74823,7 +74823,7 @@
 
     <p>Prompt the user in a user-agent-specific manner for permission
     to provide the <a href=#entry-script>entry script</a>'s <a href=#origin>origin</a>
-    with a <code><a href=#generatedstream>GeneratedStream</a></code> object representing a media
+    with a <code><a href=#localmediastream>LocalMediaStream</a></code> object representing a media
     stream.</p>
 
     <p>If <var title="">audio</var> is true, then the provided media
@@ -74857,7 +74857,7 @@
    </li>
 
    <li><p>Let <var title="">stream</var> be the
-   <code><a href=#generatedstream>GeneratedStream</a></code> object for which the user granted
+   <code><a href=#localmediastream>LocalMediaStream</a></code> object for which the user granted
    permission.</li>
 
    <li><p><a href=#queue-a-task>Queue a task</a> to invoke <var title="">successCallback</var> with <var title="">stream</var> as
@@ -74921,18 +74921,23 @@
 
   <h3 id=stream-api><span class=secno>9.3 </span>Stream API</h3>
 
-  <p>The <code><a href=#stream>Stream</a></code> interface is used to represent streams,
-  typically (but not necessarily) of audio and/or video content, e.g.
-  from a local camera or a remote site.</p>
+  <p>The <code><a href=#mediastream>MediaStream</a></code> interface is used to represent
+  streams of media data, typically (but not necessarily) of audio
+  and/or video content, e.g. from a local camera or a remote site. The
+  data from a <code><a href=#mediastream>MediaStream</a></code> object does not necessarily
+  have a canonical binary form; for example, it could just be "the
+  video currently coming from the user's video camera". This allows
+  user agents to manipulate media streams in whatever fashion is most
+  suitable on the user's platform.</p>
 
-  <p>The <code><a href=#generatedstream>GeneratedStream</a></code> interface is used when the user
+  <p>The <code><a href=#localmediastream>LocalMediaStream</a></code> interface is used when the user
   agent is generating the stream's data (e.g. from a camera or
   streaming it from a local video file). It allows authors to control
   individual tracks during the generation of the content, e.g. to
   allow the user to temporarily disable a local camera during a
   video-conference chat.</p>
 
-  <p>When a <code><a href=#generatedstream>GeneratedStream</a></code> object is being generated
+  <p>When a <code><a href=#localmediastream>LocalMediaStream</a></code> object is being generated
   from a local file (as opposed to a live audio/video source), the
   user agent should stream the data from the file in real time, not
   all at once. This reduces the ease with which pages can distinguish
@@ -74940,29 +74945,32 @@
   user's privacy.</p>
 
   <!-- v2: support reading the bits from the stream directly, for use
-  with streaming over WebSocket? Or do we rely on FileReader for that? -->
+  with streaming over WebSocket? Or do we rely on FileReader for that?
+  sicking suggests defining a DataStream or BlobStream interface that
+  you can get from a Stream to get to the underlying data; such an
+  object would then be readable using the File API -->
 
-  <pre class=idl>interface <dfn id=stream>Stream</dfn> {
-  readonly attribute DOMString <a href=#dom-stream-label title=dom-stream-label>label</a>;
-  <a href=#streamrecorder>StreamRecorder</a> <a href=#dom-stream-record title=dom-stream-record>record</a>();
+  <pre class=idl>interface <dfn id=mediastream>MediaStream</dfn> {
+  readonly attribute DOMString <a href=#dom-mediastream-label title=dom-MediaStream-label>label</a>;
+  <a href=#mediastreamrecorder>MediaStreamRecorder</a> <a href=#dom-mediastream-record title=dom-MediaStream-record>record</a>();
 <!--
-  const unsigned short <span title="dom-stream-LOADING">LOADING</span> = 0; -->
-  const unsigned short <a href=#dom-stream-live title=dom-stream-LIVE>LIVE</a> = 1;
-  const unsigned short <a href=#dom-stream-ended title=dom-stream-ENDED>ENDED</a> = 2;
-  readonly attribute unsigned short <a href=#dom-stream-readystate title=dom-stream-readyState>readyState</a>;
-           attribute <a href=#function>Function</a>? <a href=#handler-stream-onended title=handler-stream-onended>onended</a>;
+  const unsigned short <span title="dom-MediaStream-LOADING">LOADING</span> = 0; -->
+  const unsigned short <a href=#dom-mediastream-live title=dom-MediaStream-LIVE>LIVE</a> = 1;
+  const unsigned short <a href=#dom-mediastream-ended title=dom-MediaStream-ENDED>ENDED</a> = 2;
+  readonly attribute unsigned short <a href=#dom-mediastream-readystate title=dom-MediaStream-readyState>readyState</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-mediastream-onended title=handler-MediaStream-onended>onended</a>;
 };
-<a href=#stream>Stream</a> implements <a href=#eventtarget>EventTarget</a>;
+<a href=#mediastream>MediaStream</a> implements <a href=#eventtarget>EventTarget</a>;
 
-interface <dfn id=generatedstream>GeneratedStream</dfn> : <a href=#stream>Stream</a> {
-  void <a href=#dom-stream-stop title=dom-stream-stop>stop</a>();
+interface <dfn id=localmediastream>LocalMediaStream</dfn> : <a href=#mediastream>MediaStream</a> {
+  void <a href=#dom-mediastream-stop title=dom-MediaStream-stop>stop</a>();
 
   // track control
-  readonly attribute <a href=#multipletracklist>MultipleTrackList</a> <a href=#dom-stream-audiotracks title=dom-stream-audioTracks>audioTracks</a>;
-  readonly attribute <a href=#exclusivetracklist>ExclusiveTrackList</a> <a href=#dom-stream-videotracks title=dom-stream-videoTracks>videoTracks</a>;
+  readonly attribute <a href=#multipletracklist>MultipleTrackList</a> <a href=#dom-mediastream-audiotracks title=dom-MediaStream-audioTracks>audioTracks</a>;
+  readonly attribute <a href=#exclusivetracklist>ExclusiveTrackList</a> <a href=#dom-mediastream-videotracks title=dom-MediaStream-videoTracks>videoTracks</a>;
 };</pre>
 
-  <dl class=domintro><dt><var title="">stream</var> . <code title=dom-stream-label><a href=#dom-stream-label>label</a></code></dt>
+  <dl class=domintro><dt><var title="">stream</var> . <code title=dom-MediaStream-label><a href=#dom-mediastream-label>label</a></code></dt>
 
    <dd>
 
@@ -74973,18 +74981,18 @@
    </dd>
 
 
-   <dt><var title="">recorder</var> = <var title="">stream</var> . <code title=dom-stream-record><a href=#dom-stream-record>record</a></code>()</dt>
+   <dt><var title="">recorder</var> = <var title="">stream</var> . <code title=dom-MediaStream-record><a href=#dom-mediastream-record>record</a></code>()</dt>
 
    <dd>
 
     <p>Begins recording the stream. The returned
-    <code><a href=#streamrecorder>StreamRecorder</a></code> object provides access to the recorded
-    data.</p>
+    <code><a href=#mediastreamrecorder>MediaStreamRecorder</a></code> object provides access to the
+    recorded data.</p>
 
    </dd>
 
 
-   <dt><var title="">stream</var> . <code title=dom-stream-stop><a href=#dom-stream-stop>stop</a></code>()</dt>
+   <dt><var title="">stream</var> . <code title=dom-MediaStream-stop><a href=#dom-mediastream-stop>stop</a></code>()</dt>
 
    <dd>
 
@@ -74993,21 +75001,22 @@
    </dd>
 
 
-   <dt><var title="">stream</var> . <code title=dom-stream-audioTracks><a href=#dom-stream-audiotracks>audioTracks</a></code></dt>
+   <dt><var title="">stream</var> . <code title=dom-MediaStream-audioTracks><a href=#dom-mediastream-audiotracks>audioTracks</a></code></dt>
 
    <dd>
 
     <p>Returns a <code><a href=#multipletracklist>MultipleTrackList</a></code> object representing
-    the audio tracks available for mixing into the <code><a href=#generatedstream>GeneratedStream</a></code>'s stream.</p>
+    the audio tracks available for mixing into the
+    <code><a href=#localmediastream>LocalMediaStream</a></code>'s stream.</p>
 
    </dd>
 
-   <dt><var title="">stream</var> . <code title=dom-stream-videoTracks><a href=#dom-stream-videotracks>videoTracks</a></code></dt>
+   <dt><var title="">stream</var> . <code title=dom-MediaStream-videoTracks><a href=#dom-mediastream-videotracks>videoTracks</a></code></dt>
 
    <dd>
 
     <p>Returns an <code><a href=#exclusivetracklist>ExclusiveTrackList</a></code> object representing
-    the video tracks available for the <code><a href=#generatedstream>GeneratedStream</a></code>'s
+    the video tracks available for the <code><a href=#localmediastream>LocalMediaStream</a></code>'s
     stream.</p>
 
    </dd>
@@ -75015,27 +75024,27 @@
 
   </dl><div class=impl>
 
-  <p>The <dfn id=dom-stream-readystate title=dom-stream-readyState><code>readyState</code></dfn>
+  <p>The <dfn id=dom-mediastream-readystate title=dom-MediaStream-readyState><code>readyState</code></dfn>
   attribute represents the state of the stream. It must return the
   value to which the user agent last set it (as defined below). It can
   have the following values:</p>
 
-  <dl><dt><dfn id=dom-stream-live title=dom-stream-LIVE><code>LIVE</code></dfn> (numeric value 1)</dt>
+  <dl><dt><dfn id=dom-mediastream-live title=dom-MediaStream-LIVE><code>LIVE</code></dfn> (numeric value 1)</dt>
 
    <dd>The stream is active (the user agent is making a best-effort
    attempt to receive or generate data in real time).</dd>
 
-   <dt><dfn id=dom-stream-ended title=dom-stream-ENDED><code>ENDED</code></dfn> (numeric value 2)</dt>
+   <dt><dfn id=dom-mediastream-ended title=dom-MediaStream-ENDED><code>ENDED</code></dfn> (numeric value 2)</dt>
 
    <dd>The stream has finished (the user agent is no longer receiving
    or generating data, and will never receive or generate more data
    for this stream).</dd>
 
-  </dl><p>When a <code><a href=#stream>Stream</a></code> object is created, its <code title=dom-stream-readyState><a href=#dom-stream-readystate>readyState</a></code> attribute must be
-  set to <code title=dom-stream-LIVE><a href=#dom-stream-live>LIVE</a></code> (1).</p>
+  </dl><p>When a <code><a href=#mediastream>MediaStream</a></code> object is created, its <code title=dom-MediaStream-readyState><a href=#dom-mediastream-readystate>readyState</a></code> attribute must be
+  set to <code title=dom-MediaStream-LIVE><a href=#dom-mediastream-live>LIVE</a></code> (1).</p>
 
-  <p>When a <code><a href=#stream>Stream</a></code> object ends for any reason other than
-  the <code title=dom-stream-stop><a href=#dom-stream-stop>stop()</a></code> method being invoked
+  <p>When a <code><a href=#mediastream>MediaStream</a></code> object ends for any reason other than
+  the <code title=dom-MediaStream-stop><a href=#dom-mediastream-stop>stop()</a></code> method being invoked
   (e.g. because the user rescinds the permission for the page to use
   the local camera, or because the data comes from a finite file and
   the file's end has been reached and the user has not requested that
@@ -75043,25 +75052,25 @@
   remote peer has permanently stopped sending data), the user agent
   must <a href=#queue-a-task>queue a task</a> that runs the following steps:</p>
 
-  <ol><li><p>If the object's <code title=dom-stream-readyState><a href=#dom-stream-readystate>readyState</a></code> attribute has the
-   value <code title=dom-stream-ENDED><a href=#dom-stream-ended>ENDED</a></code> (2) already, then
-   abort these steps. (The <code title=dom-stream-stop><a href=#dom-stream-stop>stop()</a></code>
+  <ol><li><p>If the object's <code title=dom-MediaStream-readyState><a href=#dom-mediastream-readystate>readyState</a></code> attribute has the
+   value <code title=dom-MediaStream-ENDED><a href=#dom-mediastream-ended>ENDED</a></code> (2) already, then
+   abort these steps. (The <code title=dom-MediaStream-stop><a href=#dom-mediastream-stop>stop()</a></code>
    method was probably called just before the stream stopped for other
    reasons, e.g. the user clicked an in-page stop button and then the
    user-agent-provided stop button.)</li>
 
-   <li><p>Set the object's <code title=dom-stream-readyState><a href=#dom-stream-readystate>readyState</a></code> attribute to <code title=dom-stream-ENDED><a href=#dom-stream-ended>ENDED</a></code> (2).</li>
+   <li><p>Set the object's <code title=dom-MediaStream-readyState><a href=#dom-mediastream-readystate>readyState</a></code> attribute to <code title=dom-MediaStream-ENDED><a href=#dom-mediastream-ended>ENDED</a></code> (2).</li>
 
-   <li><p><a href=#fire-a-simple-event>Fire a simple event</a> named <code title=event-stream-ended><a href=#event-stream-ended>ended</a></code> at the object.</li>
+   <li><p><a href=#fire-a-simple-event>Fire a simple event</a> named <code title=event-MediaStream-ended><a href=#event-mediastream-ended>ended</a></code> at the object.</li>
 
   </ol><p>If the end of the stream was reached due to a user request, the
   <a href=#task-source>task source</a> for this <a href=#concept-task title=concept-task>task</a> is the <a href=#user-interaction-task-source>user interaction task
   source</a>. Otherwise the <a href=#task-source>task source</a> for this <a href=#concept-task title=concept-task>task</a> is the <a href=#networking-task-source>networking task
   source</a>.</p>
 
-  <hr><p>When a <code><a href=#generatedstream>GeneratedStream</a></code> object is created, the user
+  <hr><p>When a <code><a href=#localmediastream>LocalMediaStream</a></code> object is created, the user
   agent must generate a globally unique identifier string, and must
-  initialize the object's <code title=dom-stream-label><a href=#dom-stream-label>label</a></code>
+  initialize the object's <code title=dom-MediaStream-label><a href=#dom-mediastream-label>label</a></code>
   attribute to that string. Such strings must only use characters in
   the ranges U+0021, U+0023 to U+0027, U+002A to U+002B, U+002D to
   U+002E, U+0030 to U+0039, U+0041 to U+005A, U+005E to U+007E, and
@@ -75069,26 +75078,26 @@
   including hyphens; the ranges above comes from RFC4574 (the a=label:
   thing in SDP) -->
 
-  <p>When a <code><a href=#stream>Stream</a></code> is created to represent a stream
-  obtained from a remote peer, the <code title=dom-stream-label><a href=#dom-stream-label>label</a></code> attribute is initialized from
+  <p>When a <code><a href=#mediastream>MediaStream</a></code> is created to represent a stream
+  obtained from a remote peer, the <code title=dom-MediaStream-label><a href=#dom-mediastream-label>label</a></code> attribute is initialized from
   information provided by the remote source.</p> <!-- described below
   -->
 
-  <p>The <dfn id=dom-stream-label title=dom-stream-label><code>label</code></dfn>
+  <p>The <dfn id=dom-mediastream-label title=dom-MediaStream-label><code>label</code></dfn>
   attribute must return the value to which it was initialized when the
   object was created.</p>
 
-  <hr><p>When the <dfn id=dom-stream-record title=dom-stream-record><code>record()</code></dfn> method is
+  <hr><p>When the <dfn id=dom-mediastream-record title=dom-MediaStream-record><code>record()</code></dfn> method is
   invoked, the user agent must return a new
-  <code><a href=#streamrecorder>StreamRecorder</a></code> object associated with the stream.</p>
+  <code><a href=#mediastreamrecorder>MediaStreamRecorder</a></code> object associated with the stream.</p>
 
-  <hr><p>When a <code><a href=#generatedstream>GeneratedStream</a></code> object's <dfn id=dom-stream-stop title=dom-stream-stop><code>stop()</code></dfn> method is invoked,
-  the user agent must <a href=#queue-a-task>queue a task</a> that runs the
+  <hr><p>When a <code><a href=#localmediastream>LocalMediaStream</a></code> object's <dfn id=dom-mediastream-stop title=dom-MediaStream-stop><code>stop()</code></dfn> method is
+  invoked, the user agent must <a href=#queue-a-task>queue a task</a> that runs the
   following steps:</p>
 
-  <ol><li><p>If the object's <code title=dom-stream-readyState><a href=#dom-stream-readystate>readyState</a></code> attribute is in the
-   <code title=dom-stream-ENDED><a href=#dom-stream-ended>ENDED</a></code> (2) state, then abort
-   these steps.</li>
+  <ol><li><p>If the object's <code title=dom-MediaStream-readyState><a href=#dom-mediastream-readystate>readyState</a></code> attribute is
+   in the <code title=dom-MediaStream-ENDED><a href=#dom-mediastream-ended>ENDED</a></code> (2) state,
+   then abort these steps.</li>
 
    <li><p>Permanently stop the generation of data for the stream. If
    the data is being generated from a live source (e.g. a microphone
@@ -75098,58 +75107,59 @@
    (e.g. a video file), any remaining content in the file is
    ignored.</li>
 
-   <li><p>Set the object's <code title=dom-stream-readyState><a href=#dom-stream-readystate>readyState</a></code> attribute to <code title=dom-stream-ENDED><a href=#dom-stream-ended>ENDED</a></code> (2).</li>
+   <li><p>Set the object's <code title=dom-MediaStream-readyState><a href=#dom-mediastream-readystate>readyState</a></code> attribute to
+   <code title=dom-MediaStream-ENDED><a href=#dom-mediastream-ended>ENDED</a></code> (2).</li>
 
-   <li><p><a href=#fire-a-simple-event>Fire a simple event</a> named <code title=event-stream-ended><a href=#event-stream-ended>ended</a></code> at the object.</li>
+   <li><p><a href=#fire-a-simple-event>Fire a simple event</a> named <code title=event-MediaStream-ended><a href=#event-mediastream-ended>ended</a></code> at the object.</li>
 
-  </ol><p>The <a href=#task-source>task source</a> for the <a href=#concept-task title=concept-task>tasks</a> queued for the <code title=dom-stream-stop><a href=#dom-stream-stop>stop()</a></code> method is the <a href=#dom-manipulation-task-source>DOM
+  </ol><p>The <a href=#task-source>task source</a> for the <a href=#concept-task title=concept-task>tasks</a> queued for the <code title=dom-MediaStream-stop><a href=#dom-mediastream-stop>stop()</a></code> method is the <a href=#dom-manipulation-task-source>DOM
   manipulation task source</a>.</p>
 
-  <hr><p>A <code><a href=#generatedstream>GeneratedStream</a></code> can have multiple audio and video
+  <hr><p>A <code><a href=#localmediastream>LocalMediaStream</a></code> can have multiple audio and video
   sources (e.g. because the user has multiple microphones, or because
   the real source of the stream is a <a href=#media-resource>media resource</a> with
   many media tracks). The stream represented by a
-  <code><a href=#generatedstream>GeneratedStream</a></code> has either zero or one audio track and
+  <code><a href=#localmediastream>LocalMediaStream</a></code> has either zero or one audio track and
   either zero or one video track.</p>
 
   <div class=impl>
 
-  <p>The <dfn id=dom-stream-audiotracks title=dom-stream-audioTracks><code>audioTracks</code></dfn>
-  attribute of a <code><a href=#generatedstream>GeneratedStream</a></code> object must return a
+  <p>The <dfn id=dom-mediastream-audiotracks title=dom-MediaStream-audioTracks><code>audioTracks</code></dfn>
+  attribute of a <code><a href=#localmediastream>LocalMediaStream</a></code> object must return a
   <a href=#live>live</a> <code><a href=#multipletracklist>MultipleTrackList</a></code> object representing
-  the audio sources available to the <code><a href=#generatedstream>GeneratedStream</a></code>. The
+  the audio sources available to the <code><a href=#localmediastream>LocalMediaStream</a></code>. The
   same object must be returned each time. The
-  <code><a href=#generatedstream>GeneratedStream</a></code>'s output audio track must be the result
+  <code><a href=#localmediastream>LocalMediaStream</a></code>'s output audio track must be the result
   of mixing all the enabled audio sources, if any.</p>
 
-  <p>The <dfn id=dom-stream-videotracks title=dom-stream-videoTracks><code>videoTracks</code></dfn>
-  attribute of a <code><a href=#generatedstream>GeneratedStream</a></code> object must return a
+  <p>The <dfn id=dom-mediastream-videotracks title=dom-MediaStream-videoTracks><code>videoTracks</code></dfn>
+  attribute of a <code><a href=#localmediastream>LocalMediaStream</a></code> object must return a
   <a href=#live>live</a> <code><a href=#exclusivetracklist>ExclusiveTrackList</a></code> object
   representing the video sources available to the
-  <code><a href=#generatedstream>GeneratedStream</a></code>. The same object must be returned each
-  time. The <code><a href=#generatedstream>GeneratedStream</a></code>'s output video track must be
+  <code><a href=#localmediastream>LocalMediaStream</a></code>. The same object must be returned each
+  time. The <code><a href=#localmediastream>LocalMediaStream</a></code>'s output video track must be
   the selected video source, if any.</p>
 
   <p>User agents may label audio and video sources (e.g. "Internal
   microphone" or "External USB Webcam"), in which case the <code title=dom-TrackList-getLabel><a href=#dom-tracklist-getlabel>getLabel()</a></code> methods (on the
   <code><a href=#multipletracklist>MultipleTrackList</a></code> and <code><a href=#exclusivetracklist>ExclusiveTrackList</a></code>
   objects) must use the labels the user agent has assigned as the
-  track labels of the source tracks of the <code><a href=#generatedstream>GeneratedStream</a></code>
+  track labels of the source tracks of the <code><a href=#localmediastream>LocalMediaStream</a></code>
   object. Otherwise, the <code title=dom-TrackList-getLabel><a href=#dom-tracklist-getlabel>getLabel()</a></code> methods must use the
   empty string as the track labels of the source tracks of the
-  <code><a href=#generatedstream>GeneratedStream</a></code> object. The <code title=dom-TrackList-getLanguage><a href=#dom-tracklist-getlanguage>getLanguage()</a></code> methods must
+  <code><a href=#localmediastream>LocalMediaStream</a></code> object. The <code title=dom-TrackList-getLanguage><a href=#dom-tracklist-getlanguage>getLanguage()</a></code> methods must
   use the empty string as the track language for all the source tracks
-  of the <code><a href=#generatedstream>GeneratedStream</a></code> object.</p>
+  of the <code><a href=#localmediastream>LocalMediaStream</a></code> object.</p>
 
   </div>
 
   <hr><p>The following are the <a href=#event-handlers>event handlers</a> (and their
   corresponding <a href=#event-handler-event-type title="event handler event type">event handler
   event types</a>) that must be supported, as IDL attributes, by
-  all objects implementing the <code><a href=#stream>Stream</a></code> interface:</p>
+  all objects implementing the <code><a href=#mediastream>MediaStream</a></code> interface:</p>
 
   <table><thead><tr><th><a href=#event-handlers title="event handlers">Event handler</a> <th><a href=#event-handler-event-type>Event handler event type</a>
-   <tbody><tr><td><dfn id=handler-stream-onended title=handler-stream-onended><code>onended</code></dfn> <td> <code title=event-stream-ended><a href=#event-stream-ended>ended</a></code>
+   <tbody><tr><td><dfn id=handler-mediastream-onended title=handler-MediaStream-onended><code>onended</code></dfn> <td> <code title=event-MediaStream-ended><a href=#event-mediastream-ended>ended</a></code>
   </table></div>
 
   <div class=example>
@@ -75177,8 +75187,8 @@
 
   </div>
 
-  <pre class=idl>interface <dfn id=streamrecorder>StreamRecorder</dfn> {
-  void <a href=#dom-streamrecorder-getrecordeddata title=dom-StreamRecorder-getRecordedData>getRecordedData</a>(in <a href=#blobcallback>BlobCallback</a>? callback);
+  <pre class=idl>interface <dfn id=mediastreamrecorder>MediaStreamRecorder</dfn> {
+  void <a href=#dom-mediastreamrecorder-getrecordeddata title=dom-MediaStreamRecorder-getRecordedData>getRecordedData</a>(in <a href=#blobcallback>BlobCallback</a>? callback);
 };
 
 [Callback=FunctionOnly, NoInterfaceObject]
@@ -75186,7 +75196,7 @@
   void <span title=dom-BlobCallback-handleEvent>handleEvent</span>(in <a href=#blob>Blob</a> blob);
 };</pre>
 
-  <dl class=domintro><dt><var title="">recorder</var> . <code title=dom-StreamRecorder-getRecordedData><a href=#dom-streamrecorder-getrecordeddata>getRecordedData</a></code>(<var title="">callback</var>)</dt>
+  <dl class=domintro><dt><var title="">recorder</var> . <code title=dom-MediaStreamRecorder-getRecordedData><a href=#dom-mediastreamrecorder-getrecordeddata>getRecordedData</a></code>(<var title="">callback</var>)</dt>
 
    <dd>
 
@@ -75197,7 +75207,7 @@
 
   </dl><div class=impl>
 
-  <p>When the <dfn id=dom-streamrecorder-getrecordeddata title=dom-StreamRecorder-getRecordedData><code>getRecordedData()</code></dfn>
+  <p>When the <dfn id=dom-mediastreamrecorder-getrecordeddata title=dom-MediaStreamRecorder-getRecordedData><code>getRecordedData()</code></dfn>
   method is called, the user agent must run the following steps:</p>
 
   <ol><li><p>Let <var title="">callback</var> be the callback
@@ -75209,9 +75219,9 @@
    exception here without changing the algorithm) -->
 
    <li><p>Let <var title="">data</var> be the data that was streamed
-   by the <code><a href=#stream>Stream</a></code> object from which the
-   <code><a href=#streamrecorder>StreamRecorder</a></code> was created since the creation of the
-   <code><a href=#streamrecorder>StreamRecorder</a></code> object.</li>
+   by the <code><a href=#mediastream>MediaStream</a></code> object from which the
+   <code><a href=#mediastreamrecorder>MediaStreamRecorder</a></code> was created since the creation of the
+   <code><a href=#mediastreamrecorder>MediaStreamRecorder</a></code> object.</li>
 
    <li><p>Return, and run the remaining steps asynchronously.</li>
 
@@ -75226,9 +75236,9 @@
    <li><p><a href=#queue-a-task>Queue a task</a> to invoke <var title="">callback</var> with <var title="">blob</var> as its
    argument.</li>
 
-  </ol><p class=note>The <code title=dom-StreamRecorder-getRecordedData><a href=#dom-streamrecorder-getrecordeddata>getRecordedData()</a></code>
+  </ol><p class=note>The <code title=dom-MediaStreamRecorder-getRecordedData><a href=#dom-mediastreamrecorder-getrecordeddata>getRecordedData()</a></code>
   method can be called multiple times on one
-  <code><a href=#streamrecorder>StreamRecorder</a></code> object; each time, it will create a new
+  <code><a href=#mediastreamrecorder>MediaStreamRecorder</a></code> object; each time, it will create a new
   file as if this was the first time the method was being called. In
   particular, the method does not stop or reset the recording when the
   method is called.</p>
@@ -75295,23 +75305,23 @@
 
   <pre class=idl>[Supplemental]
 interface <dfn id=dom-url title=dom-URL>URL</dfn> {
-  static DOMString <a href=#dom-url-createobjecturl title=dom-URL-createObjectURL>createObjectURL</a>(in <a href=#stream>Stream</a> stream);
+  static DOMString <a href=#dom-url-createobjecturl title=dom-URL-createObjectURL>createObjectURL</a>(in <a href=#mediastream>MediaStream</a> stream);
 };</pre>
 
   <dl class=domintro><dt><var title="">window</var> . <code title=dom-URL><a href=#dom-url>URL</a></code> . <code title=dom-URL-createObjectURL><a href=#dom-url-createobjecturl>createObjectURL</a></code>(<var title="">stream</var>)</dt>
 
    <dd>
 
-    <p>Mints a <a href=#blob-url>Blob URL</a> to refer to the given <code><a href=#stream>Stream</a></code>.</p>
+    <p>Mints a <a href=#blob-url>Blob URL</a> to refer to the given <code><a href=#mediastream>MediaStream</a></code>.</p>
 
    </dd>
 
   </dl><div class=impl>
 
   <p>When the <dfn id=dom-url-createobjecturl title=dom-URL-createObjectURL><code>createObjectURL()</code></dfn>
-  method is called with a <code><a href=#stream>Stream</a></code> argument, the user agent
+  method is called with a <code><a href=#mediastream>MediaStream</a></code> argument, the user agent
   must return a unique <a href=#blob-url>Blob URL</a> for the given
-  <code><a href=#stream>Stream</a></code>. <a href=#refsFILEAPI>[FILEAPI]</a></p>
+  <code><a href=#mediastream>MediaStream</a></code>. <a href=#refsFILEAPI>[FILEAPI]</a></p>
 
   <p>For audio and video streams, the data exposed on that stream must
   be in a format supported by the user agent for use in
@@ -75321,8 +75331,8 @@
   File API specification calls a <span>Blob URI</span>, except that
   anything in the definition of that feature that refers to
   <code><a href=#file>File</a></code> and <code><a href=#blob>Blob</a></code> objects is hereby extended
-  to also apply to <code><a href=#stream>Stream</a></code> and
-  <code><a href=#generatedstream>GeneratedStream</a></code> objects.</p>
+  to also apply to <code><a href=#mediastream>MediaStream</a></code> and
+  <code><a href=#localmediastream>LocalMediaStream</a></code> objects.</p>
 
   </div>
 
@@ -75387,10 +75397,10 @@
   readonly attribute unsigned short <a href=#dom-peerconnection-readystate title=dom-PeerConnection-readyState>readyState</a>;
 
   void <a href=#dom-peerconnection-send title=dom-PeerConnection-send>send</a>(in DOMString text); <!-- v2: binary -->
-  void <a href=#dom-peerconnection-addstream title=dom-PeerConnection-addStream>addStream</a>(in <a href=#stream>Stream</a> stream);
-  void <a href=#dom-peerconnection-removestream title=dom-PeerConnection-removeStream>removeStream</a>(in <a href=#stream>Stream</a> stream);
-  readonly attribute <a href=#stream>Stream</a>[] <a href=#dom-peerconnection-localstreams title=dom-PeerConnection-localStreams>localStreams</a>;
-  readonly attribute <a href=#stream>Stream</a>[] <a href=#dom-peerconnection-remotestreams title=dom-PeerConnection-remoteStreams>remoteStreams</a>;
+  void <a href=#dom-peerconnection-addstream title=dom-PeerConnection-addStream>addStream</a>(in <a href=#mediastream>MediaStream</a> stream);
+  void <a href=#dom-peerconnection-removestream title=dom-PeerConnection-removeStream>removeStream</a>(in <a href=#mediastream>MediaStream</a> stream);
+  readonly attribute <a href=#mediastream>MediaStream</a>[] <a href=#dom-peerconnection-localstreams title=dom-PeerConnection-localStreams>localStreams</a>;
+  readonly attribute <a href=#mediastream>MediaStream</a>[] <a href=#dom-peerconnection-remotestreams title=dom-PeerConnection-remoteStreams>remoteStreams</a>;
 
   void <a href=#dom-peerconnection-close title=dom-PeerConnection-close>close</a>();
 
@@ -75508,7 +75518,7 @@
     every message will be received.</p>
 
     <p>When a message sent in this manner from the other peer is
-    received, a <code title=event-stream-message><a href=#event-stream-message>message</a></code>
+    received, a <code title=event-MediaStream-message><a href=#event-mediastream-message>message</a></code>
     event is fired at the <code><a href=#peerconnection>PeerConnection</a></code> object.</p>
 
     <p>The maximum length of <var title="">text</var> is 504 bytes
@@ -75526,7 +75536,7 @@
     peer.</p>
 
     <p>When the other peer starts sending a stream in this manner, an
-    <code title=event-stream-addstream><a href=#event-stream-addstream>addstream</a></code>
+    <code title=event-MediaStream-addstream><a href=#event-mediastream-addstream>addstream</a></code>
     event is fired at the <code><a href=#peerconnection>PeerConnection</a></code> object.</p>
 
    </dd>
@@ -75538,7 +75548,7 @@
     <p>Steps sending the given stream to the remote peer.</p>
 
     <p>When the other peer stops sending a stream in this manner, a
-    <code title=event-stream-removestream><a href=#event-stream-removestream>removestream</a></code>
+    <code title=event-MediaStream-removestream><a href=#event-mediastream-removestream>removestream</a></code>
     event is fired at the <code><a href=#peerconnection>PeerConnection</a></code> object.</p>
 
    </dd>
@@ -75560,7 +75570,7 @@
     <p>Returns a live array containing the streams that the user agent
     is currently receiving from the remote peer.</p>
 
-    <p>This array is updated when <code title=event-stream-addstream><a href=#event-stream-addstream>addstream</a></code> and <code title=event-stream-removestream><a href=#event-stream-removestream>removestream</a></code>
+    <p>This array is updated when <code title=event-MediaStream-addstream><a href=#event-mediastream-addstream>addstream</a></code> and <code title=event-MediaStream-removestream><a href=#event-mediastream-removestream>removestream</a></code>
     events are fired.</p>
 
    </dd>
@@ -75707,10 +75717,10 @@
    new <a href=#data-udp-media-stream>data UDP media stream</a>.</li>
 
    <li><p>Let <var title="">connection</var>'s <code title=dom-PeerConnection-localStreams><a href=#dom-peerconnection-localstreams>localStreams</a></code>
-   attribute be an empty read-only <code><a href=#stream>Stream</a></code> array. <a href=#refsWEBIDL>[WEBIDL]</a></li>
+   attribute be an empty read-only <code><a href=#mediastream>MediaStream</a></code> array. <a href=#refsWEBIDL>[WEBIDL]</a></li>
 
    <li><p>Let <var title="">connection</var>'s <code title=dom-PeerConnection-remoteStreams><a href=#dom-peerconnection-remotestreams>remoteStreams</a></code>
-   attribute be an empty read-only <code><a href=#stream>Stream</a></code> array. <a href=#refsWEBIDL>[WEBIDL]</a></li>
+   attribute be an empty read-only <code><a href=#mediastream>MediaStream</a></code> array. <a href=#refsWEBIDL>[WEBIDL]</a></li>
 
    <li><p>Return <var title="">connection</var>, but continue these
    steps asynchronously.</li>
@@ -75737,7 +75747,7 @@
    <code title=dom-PeerConnection-NEW><a href=#dom-peerconnection-new>NEW</a></code> (0), then
    <a href=#queue-a-task>queue a task</a> that sets it to <code title=dom-PeerConnection-NEGOTIATING><a href=#dom-peerconnection-negotiating>NEGOTIATING</a></code> (1) and
    then <a href=#fire-a-simple-event title="fire a simple event">fires a simple event</a>
-   named <code title=event-stream-connecting><a href=#event-stream-connecting>connecting</a></code> at the
+   named <code title=event-MediaStream-connecting><a href=#event-mediastream-connecting>connecting</a></code> at the
    <code><a href=#peerconnection>PeerConnection</a></code> object.</p>
 
   </ol><p>When a <a href=#peerconnection-ice-agent><code>PeerConnection</code> ICE Agent</a> is
@@ -75757,7 +75767,7 @@
    <var title="">message</var> as its first argument and the
    <code><a href=#peerconnection>PeerConnection</a></code> as its second argument.</li>
 
-  </ol><p>All streams represented by <code><a href=#stream>Stream</a></code> objects must be
+  </ol><p>All streams represented by <code><a href=#mediastream>MediaStream</a></code> objects must be
   marked as "sendonly" by the peer that initially adds the stream to
   the session. The <code><a href=#peerconnection>PeerConnection</a></code> API does not support
   bidirectional ("sendrecv") audio or video media streams. <a href=#refsSDPOFFERANSWER>[SDPOFFERANSWER]</a></p>
@@ -75776,8 +75786,8 @@
   the stream is flowing.</p>
 
   <p>All SDP media descriptions for streams represented by
-  <code><a href=#stream>Stream</a></code> objects must include a label attribute ("<code title="">a=label:</code>") whose value is the value of the
-  <code><a href=#stream>Stream</a></code> object's <code title=dom-stream-label><a href=#dom-stream-label>label</a></code> attribute. <a href=#refsSDP>[SDP]</a> <a href=#refsSDPLABEL>[SDPLABEL]</a></p>
+  <code><a href=#mediastream>MediaStream</a></code> objects must include a label attribute ("<code title="">a=label:</code>") whose value is the value of the
+  <code><a href=#mediastream>MediaStream</a></code> object's <code title=dom-MediaStream-label><a href=#dom-mediastream-label>label</a></code> attribute. <a href=#refsSDP>[SDP]</a> <a href=#refsSDPLABEL>[SDPLABEL]</a></p>
 
   <p><a href=#peerconnection-ice-agent title="PeerConnection ICE
   Agent"><code>PeerConnection</code> ICE Agents</a> must not
@@ -75793,16 +75803,16 @@
    <code><a href=#peerconnection>PeerConnection</a></code> whose ICE Agent is expecting this
    media.</li>
 
-   <li><p>If there is already a <code><a href=#stream>Stream</a></code> object for the
+   <li><p>If there is already a <code><a href=#mediastream>MediaStream</a></code> object for the
    media stream to which this component belongs, then associate the
    component with that media stream and abort these steps. (Some media
    streams have multiple components; this API does not expose the
    role of these individual components in ICE.)</li>
 
-   <li><p>Create a <code><a href=#stream>Stream</a></code> object to represent the media
-   stream. Set its <code title=attr-stream-label>label</code>
-   attribute to the value of the SDP Label attribute for that
-   component's media stream.</li>
+   <li><p>Create a <code><a href=#mediastream>MediaStream</a></code> object to represent the
+   media stream. Set its <code title=dom-MediaStream-label><a href=#dom-mediastream-label>label</a></code> attribute to the value
+   of the SDP Label attribute for that component's media
+   stream.</li>
 
    <li>
 
@@ -75813,12 +75823,12 @@
      steps.</li> <!-- close() was probably called just before this
      task ran -->
 
-     <li><p>Add the newly created <code><a href=#stream>Stream</a></code> object to the
+     <li><p>Add the newly created <code><a href=#mediastream>MediaStream</a></code> object to the
      end of <var title="">connection</var>'s <code title=dom-PeerConnection-remoteStreams><a href=#dom-peerconnection-remotestreams>remoteStreams</a></code>
      array.</li>
 
-     <li><p><a href=#fire-a-stream-event>Fire a stream event</a> named <code title=event-stream-addstream><a href=#event-stream-addstream>addstream</a></code> with the newly
-     created <code><a href=#stream>Stream</a></code> object at the <var title="">connection</var> object.</li>
+     <li><p><a href=#fire-a-stream-event>Fire a stream event</a> named <code title=event-MediaStream-addstream><a href=#event-mediastream-addstream>addstream</a></code> with the newly
+     created <code><a href=#mediastream>MediaStream</a></code> object at the <var title="">connection</var> object.</li>
 
     </ol></li>
 
@@ -75831,7 +75841,7 @@
    <code><a href=#peerconnection>PeerConnection</a></code> whose <a href=#peerconnection-ice-agent><code>PeerConnection</code>
    ICE Agent</a> has determined that a stream is being removed.</li>
 
-   <li><p>Let <var title="">stream</var> be the <code><a href=#stream>Stream</a></code>
+   <li><p>Let <var title="">stream</var> be the <code><a href=#mediastream>MediaStream</a></code>
    object that represents the media stream being removed, if any. If
    there isn't one, then abort these steps.</li>
 
@@ -75847,7 +75857,7 @@
      <li><p>Remove <var title="">stream</var> from <var title="">connection</var>'s <code title=dom-PeerConnection-remoteStreams><a href=#dom-peerconnection-remotestreams>remoteStreams</a></code>
      array.</li>
 
-     <li><p><a href=#fire-a-stream-event>Fire a stream event</a> named <code title=event-stream-removestream><a href=#event-stream-removestream>removestream</a></code> with <var title="">stream</var> at the <var title="">connection</var>
+     <li><p><a href=#fire-a-stream-event>Fire a stream event</a> named <code title=event-MediaStream-removestream><a href=#event-mediastream-removestream>removestream</a></code> with <var title="">stream</var> at the <var title="">connection</var>
      object.</li>
 
     </ol></li>
@@ -75915,14 +75925,14 @@
    <li><p><a href=#queue-a-task>Queue a task</a> that sets <var title="">connection</var>'s <a href=#peerconnection-readiness-state><code>PeerConnection</code>
    readiness state</a> to <code title=dom-PeerConnection-NEGOTIATING><a href=#dom-peerconnection-negotiating>NEGOTIATING</a></code> (1) and
    then <a href=#fire-a-simple-event title="fire a simple event">fires a simple event</a>
-   named <code title=event-stream-connecting><a href=#event-stream-connecting>connecting</a></code> at the
+   named <code title=event-MediaStream-connecting><a href=#event-mediastream-connecting>connecting</a></code> at the
    <code><a href=#peerconnection>PeerConnection</a></code> object.</p>
 
   </ol><p>When a <a href=#peerconnection-ice-agent><code>PeerConnection</code> ICE Agent</a>
   completes ICE processing (even if there are no active streams), the
   user agent must <a href=#queue-a-task>queue a task</a> that sets the
   <code><a href=#peerconnection>PeerConnection</a></code> object's
-  <a href=#peerconnection-readiness-state><code>PeerConnection</code> readiness state</a> to <code title=dom-PeerConnection-ACTIVE><a href=#dom-peerconnection-active>ACTIVE</a></code> (2) and then <a href=#fire-a-simple-event title="fire a simple event">fires a simple event</a> named <code title=event-stream-open><a href=#event-stream-open>open</a></code> at the
+  <a href=#peerconnection-readiness-state><code>PeerConnection</code> readiness state</a> to <code title=dom-PeerConnection-ACTIVE><a href=#dom-peerconnection-active>ACTIVE</a></code> (2) and then <a href=#fire-a-simple-event title="fire a simple event">fires a simple event</a> named <code title=event-MediaStream-open><a href=#event-mediastream-open>open</a></code> at the
   <code><a href=#peerconnection>PeerConnection</a></code> object.</p>
 
   <p>When a <a href=#peerconnection-ice-agent><code>PeerConnection</code> ICE Agent</a>
@@ -75931,7 +75941,7 @@
   task</a> that sets the <code><a href=#peerconnection>PeerConnection</a></code> object's
   <a href=#peerconnection-readiness-state><code>PeerConnection</code> readiness state</a> to <code title=dom-PeerConnection-NEGOTIATING><a href=#dom-peerconnection-negotiating>NEGOTIATING</a></code> (1) and
   then <a href=#fire-a-simple-event title="fire a simple event">fires a simple event</a>
-  named <code title=event-stream-connecting><a href=#event-stream-connecting>connecting</a></code> at the
+  named <code title=event-MediaStream-connecting><a href=#event-mediastream-connecting>connecting</a></code> at the
   <code><a href=#peerconnection>PeerConnection</a></code> object.</p>
                                    
   <p>The <dfn id=dom-peerconnection-readystate title=dom-PeerConnection-readyState><code title="">readyState</code></dfn> attribute must return the numeric
@@ -76024,7 +76034,7 @@
 
   </ol><p>The <dfn id=dom-peerconnection-localstreams title=dom-PeerConnection-localStreams><code>localStreams</code></dfn>
   and <dfn id=dom-peerconnection-remotestreams title=dom-PeerConnection-remoteStreams><code>remoteStreams</code></dfn>
-  attributes must return the read-only <code><a href=#stream>Stream</a></code> arrays that
+  attributes must return the read-only <code><a href=#mediastream>MediaStream</a></code> arrays that
   the attributes were respectively set to when the
   <code><a href=#peerconnection>PeerConnection</a></code>'s constructor ran.</p>
   
@@ -76044,7 +76054,7 @@
    state</a> to <code title=dom-PeerConnection-CLOSED><a href=#dom-peerconnection-closed>CLOSED</a></code> (3).</li>
 <!--
    <li><p><span>Queue a task</span> to <span>fire a simple
-   event</span> named <code title="event-stream-close">close</code> at the
+   event</span> named <code title="event-MediaStream-close">close</code> at the
    <code>PeerConnection</code> object.</p></li>
 -->
   </ol><p class=note>The <code title=dom-PeerConnection-localStreams><a href=#dom-peerconnection-localstreams>localStreams</a></code> and
@@ -76059,13 +76069,13 @@
   interface:</p>
 
   <table><thead><tr><th><a href=#event-handlers title="event handlers">Event handler</a> <th><a href=#event-handler-event-type>Event handler event type</a>
-   <tbody><tr><td><dfn id=handler-peerconnection-onconnecting title=handler-PeerConnection-onconnecting><code>onconnecting</code></dfn> <td> <code title=event-stream-connecting><a href=#event-stream-connecting>connecting</a></code>
-    <tr><td><dfn id=handler-peerconnection-onopen title=handler-PeerConnection-onopen><code>onopen</code></dfn> <td> <code title=event-stream-open><a href=#event-stream-open>open</a></code>
-<!--    <tr><td><dfn title="handler-PeerConnection-onerror"><code>onerror</code></dfn> <td> <code title="event-stream-error">error</code>-->
-<!--    <tr><td><dfn title="handler-PeerConnection-onclose"><code>onclose</code></dfn> <td> <code title="event-stream-close">close</code>-->
-    <tr><td><dfn id=handler-peerconnection-onmessage title=handler-PeerConnection-onmessage><code>onmessage</code></dfn> <td> <code title=event-stream-message><a href=#event-stream-message>message</a></code>
-    <tr><td><dfn id=handler-peerconnection-onaddstream title=handler-PeerConnection-onaddstream><code>onaddstream</code></dfn> <td> <code title=event-stream-addstream><a href=#event-stream-addstream>addstream</a></code>
-    <tr><td><dfn id=handler-peerconnection-onremovestream title=handler-PeerConnection-onremovestream><code>onremovestream</code></dfn> <td> <code title=event-stream-removestream><a href=#event-stream-removestream>removestream</a></code>
+   <tbody><tr><td><dfn id=handler-peerconnection-onconnecting title=handler-PeerConnection-onconnecting><code>onconnecting</code></dfn> <td> <code title=event-MediaStream-connecting><a href=#event-mediastream-connecting>connecting</a></code>
+    <tr><td><dfn id=handler-peerconnection-onopen title=handler-PeerConnection-onopen><code>onopen</code></dfn> <td> <code title=event-MediaStream-open><a href=#event-mediastream-open>open</a></code>
+<!--    <tr><td><dfn title="handler-PeerConnection-onerror"><code>onerror</code></dfn> <td> <code title="event-MediaStream-error">error</code>-->
+<!--    <tr><td><dfn title="handler-PeerConnection-onclose"><code>onclose</code></dfn> <td> <code title="event-MediaStream-close">close</code>-->
+    <tr><td><dfn id=handler-peerconnection-onmessage title=handler-PeerConnection-onmessage><code>onmessage</code></dfn> <td> <code title=event-MediaStream-message><a href=#event-mediastream-message>message</a></code>
+    <tr><td><dfn id=handler-peerconnection-onaddstream title=handler-PeerConnection-onaddstream><code>onaddstream</code></dfn> <td> <code title=event-MediaStream-addstream><a href=#event-mediastream-addstream>addstream</a></code>
+    <tr><td><dfn id=handler-peerconnection-onremovestream title=handler-PeerConnection-onremovestream><code>onremovestream</code></dfn> <td> <code title=event-MediaStream-removestream><a href=#event-mediastream-removestream>removestream</a></code>
   </table><hr><p>The <a href=#task-source>task source</a> for the <a href=#concept-task title=concept-task>tasks</a> listed in this section is the
   <a href=#networking-task-source>networking task source</a>.</p>
 
@@ -76085,7 +76095,7 @@
 var local = new PeerConnection('TURNS example.net', sendSignalingChannel);
 local.signalingChannel(...); // if we have a message from the other side, pass it along here
 
-// (aLocalStream is some GeneratedStream object)
+// (aLocalStream is some LocalMediaStream object)
 local.addStream(aLocalStream); // start sending video
 
 function sendSignalingChannel(message) {
@@ -76380,13 +76390,13 @@
 
   <h3 id=event-definitions-0><span class=secno>9.7 </span>Event definitions</h3>
 
-  <p>The <code title=event-stream-addstream><a href=#event-stream-addstream>addstream</a></code> and
-  <code title=event-stream-removestream><a href=#event-stream-removestream>removestream</a></code> events
+  <p>The <code title=event-MediaStream-addstream><a href=#event-mediastream-addstream>addstream</a></code> and
+  <code title=event-MediaStream-removestream><a href=#event-mediastream-removestream>removestream</a></code> events
   use the <code><a href=#streamevent>StreamEvent</a></code> interface:</p>
 
   <pre class=idl>interface <dfn id=streamevent>StreamEvent</dfn> : <a href=#event>Event</a> {
-  readonly attribute <a href=#stream>Stream</a>? <a href=#dom-streamevent-stream title=dom-StreamEvent-stream>stream</a>;
-  void <a href=#dom-streamevent-initstreamevent title=dom-StreamEvent-initStreamEvent>initStreamEvent</a>(in DOMString typeArg, in boolean canBubbleArg, in boolean cancelableArg, in <a href=#stream>Stream</a>? streamArg);
+  readonly attribute <a href=#mediastream>MediaStream</a>? <a href=#dom-streamevent-stream title=dom-StreamEvent-stream>stream</a>;
+  void <a href=#dom-streamevent-initstreamevent title=dom-StreamEvent-initStreamEvent>initStreamEvent</a>(in DOMString typeArg, in boolean canBubbleArg, in boolean cancelableArg, in <a href=#mediastream>MediaStream</a>? streamArg);
 };</pre>
 
   <div class=impl>
@@ -76396,10 +76406,10 @@
   similarly-named method in the DOM Events interfaces. <a href=#refsDOMEVENTS>[DOMEVENTS]</a></p>
 
   <p>The <dfn id=dom-streamevent-stream title=dom-StreamEvent-stream><code>stream</code></dfn>
-  attribute represents the <code><a href=#stream>Stream</a></code> object associated with
+  attribute represents the <code><a href=#mediastream>MediaStream</a></code> object associated with
   the event.</p>
 
-  <p><dfn id=fire-a-stream-event title="fire a stream event">Firing a stream event named <var title="">e</var></dfn> with a <code><a href=#stream>Stream</a></code> <var title="">stream</var> means that an event with the name <var title="">e</var>, which does not bubble (except where otherwise
+  <p><dfn id=fire-a-stream-event title="fire a stream event">Firing a stream event named <var title="">e</var></dfn> with a <code><a href=#mediastream>MediaStream</a></code> <var title="">stream</var> means that an event with the name <var title="">e</var>, which does not bubble (except where otherwise
   stated) and is not cancelable (except where otherwise stated), and
   which uses the <code><a href=#streamevent>StreamEvent</a></code> interface with the <code title=dom-StreamEvent-stream><a href=#dom-streamevent-stream>stream</a></code> attribute set to <var title="">stream</var>, must be created and dispatched at the given
   target.</p>
@@ -76411,15 +76421,15 @@
 
   <p><i>This section is non-normative.</i></p>
 
-  <p>The following event fires on <code><a href=#stream>Stream</a></code> objects:</p>
+  <p>The following event fires on <code><a href=#mediastream>MediaStream</a></code> objects:</p>
 
   <table><thead><tr><th>Event name
      <th>Interface
      <th>Fired when...
 
-   <tbody><tr><td><dfn id=event-stream-ended title=event-stream-ended><code>ended</code></dfn>
+   <tbody><tr><td><dfn id=event-mediastream-ended title=event-MediaStream-ended><code>ended</code></dfn>
      <td><code><a href=#event>Event</a></code>
-     <td>The <code><a href=#stream>Stream</a></code> object will no longer stream any data, either because the user revoked the permissions, or because the source device has been ejected, or because the remote peer stopped sending data, or because the <code title=dom-stream-stop><a href=#dom-stream-stop>stop()</a></code> method was invoked.
+     <td>The <code><a href=#mediastream>MediaStream</a></code> object will no longer stream any data, either because the user revoked the permissions, or because the source device has been ejected, or because the remote peer stopped sending data, or because the <code title=dom-MediaStream-stop><a href=#dom-mediastream-stop>stop()</a></code> method was invoked.
 
   </table><p>The following events fire on <code><a href=#peerconnection>PeerConnection</a></code> objects:</p>
 
@@ -76427,35 +76437,35 @@
      <th>Interface
      <th>Fired when...
 
-   <tbody><tr><td><dfn id=event-stream-connecting title=event-stream-connecting><code>connecting</code></dfn>
+   <tbody><tr><td><dfn id=event-mediastream-connecting title=event-MediaStream-connecting><code>connecting</code></dfn>
      <td><code><a href=#event>Event</a></code>
      <td>The ICE Agent has begun negotiating with the peer. This can happen multiple times during the lifetime of the <code><a href=#peerconnection>PeerConnection</a></code> object.
 
-    <tr><td><dfn id=event-stream-open title=event-stream-open><code>open</code></dfn>
+    <tr><td><dfn id=event-mediastream-open title=event-MediaStream-open><code>open</code></dfn>
      <td><code><a href=#event>Event</a></code>
      <td>The ICE Agent has finished negotiating with the peer.
 
 <!--
     <tr>
-     <td><dfn title="event-stream-error"><code>error</code></dfn>
+     <td><dfn title="event-MediaStream-error"><code>error</code></dfn>
      <td><code>Event</code>
      <td>
 
     <tr>
-     <td><dfn title="event-stream-close"><code>close</code></dfn>
+     <td><dfn title="event-MediaStream-close"><code>close</code></dfn>
      <td><code>Event</code>
      <td>The <code title="dom-PeerConnection-close">close()</code> method was called.
 -->
 
-    <tr><td><dfn id=event-stream-message title=event-stream-message><code>message</code></dfn>
+    <tr><td><dfn id=event-mediastream-message title=event-MediaStream-message><code>message</code></dfn>
      <td><code><a href=#messageevent>MessageEvent</a></code>
      <td>A <a href=#data-udp-media-stream>data UDP media stream</a> message was received.
 
-    <tr><td><dfn id=event-stream-addstream title=event-stream-addstream><code>addstream</code></dfn>
+    <tr><td><dfn id=event-mediastream-addstream title=event-MediaStream-addstream><code>addstream</code></dfn>
      <td><code><a href=#streamevent>StreamEvent</a></code>
      <td>A new stream has been added to the <code title=dom-PeerConnection-remoteStreams><a href=#dom-peerconnection-remotestreams>remoteStreams</a></code> array.
 
-    <tr><td><dfn id=event-stream-removestream title=event-stream-removestream><code>removestream</code></dfn>
+    <tr><td><dfn id=event-mediastream-removestream title=event-MediaStream-removestream><code>removestream</code></dfn>
      <td><code><a href=#streamevent>StreamEvent</a></code>
      <td>A stream has been removed from the <code title=dom-PeerConnection-remoteStreams><a href=#dom-peerconnection-remotestreams>remoteStreams</a></code> array.
 

Modified: index
===================================================================
--- index	2011-06-17 19:57:59 UTC (rev 6255)
+++ index	2011-06-17 22:21:22 UTC (rev 6256)
@@ -74580,7 +74580,7 @@
 
 [Callback=FunctionOnly, NoInterfaceObject]
 interface <dfn id=navigatorusermediasuccesscallback>NavigatorUserMediaSuccessCallback</dfn> {
-  void <span title=dom-NavigatorUserMediaSuccessCallback-handleEvent>handleEvent</span>(in <a href=#generatedstream>GeneratedStream</a> stream);
+  void <span title=dom-NavigatorUserMediaSuccessCallback-handleEvent>handleEvent</span>(in <a href=#localmediastream>LocalMediaStream</a> stream);
 };
 
 [NoInterfaceObject]<!-- this is based on PositionError in geolocation -->
@@ -74622,7 +74622,7 @@
 
 
     </dl><p>If the user accepts, the <var title="">successCallback</var> is
-    invoked, with a suitable <code><a href=#generatedstream>GeneratedStream</a></code> object as
+    invoked, with a suitable <code><a href=#localmediastream>LocalMediaStream</a></code> object as
     its argument.</p>
 
     <p>If the user declines, the <var title="">errorCallback</var> (if
@@ -74721,7 +74721,7 @@
 
     <p>Prompt the user in a user-agent-specific manner for permission
     to provide the <a href=#entry-script>entry script</a>'s <a href=#origin>origin</a>
-    with a <code><a href=#generatedstream>GeneratedStream</a></code> object representing a media
+    with a <code><a href=#localmediastream>LocalMediaStream</a></code> object representing a media
     stream.</p>
 
     <p>If <var title="">audio</var> is true, then the provided media
@@ -74755,7 +74755,7 @@
    </li>
 
    <li><p>Let <var title="">stream</var> be the
-   <code><a href=#generatedstream>GeneratedStream</a></code> object for which the user granted
+   <code><a href=#localmediastream>LocalMediaStream</a></code> object for which the user granted
    permission.</li>
 
    <li><p><a href=#queue-a-task>Queue a task</a> to invoke <var title="">successCallback</var> with <var title="">stream</var> as
@@ -74819,18 +74819,23 @@
 
   <h3 id=stream-api><span class=secno>9.3 </span>Stream API</h3>
 
-  <p>The <code><a href=#stream>Stream</a></code> interface is used to represent streams,
-  typically (but not necessarily) of audio and/or video content, e.g.
-  from a local camera or a remote site.</p>
+  <p>The <code><a href=#mediastream>MediaStream</a></code> interface is used to represent
+  streams of media data, typically (but not necessarily) of audio
+  and/or video content, e.g. from a local camera or a remote site. The
+  data from a <code><a href=#mediastream>MediaStream</a></code> object does not necessarily
+  have a canonical binary form; for example, it could just be "the
+  video currently coming from the user's video camera". This allows
+  user agents to manipulate media streams in whatever fashion is most
+  suitable on the user's platform.</p>
 
-  <p>The <code><a href=#generatedstream>GeneratedStream</a></code> interface is used when the user
+  <p>The <code><a href=#localmediastream>LocalMediaStream</a></code> interface is used when the user
   agent is generating the stream's data (e.g. from a camera or
   streaming it from a local video file). It allows authors to control
   individual tracks during the generation of the content, e.g. to
   allow the user to temporarily disable a local camera during a
   video-conference chat.</p>
 
-  <p>When a <code><a href=#generatedstream>GeneratedStream</a></code> object is being generated
+  <p>When a <code><a href=#localmediastream>LocalMediaStream</a></code> object is being generated
   from a local file (as opposed to a live audio/video source), the
   user agent should stream the data from the file in real time, not
   all at once. This reduces the ease with which pages can distinguish
@@ -74838,29 +74843,32 @@
   user's privacy.</p>
 
   <!-- v2: support reading the bits from the stream directly, for use
-  with streaming over WebSocket? Or do we rely on FileReader for that? -->
+  with streaming over WebSocket? Or do we rely on FileReader for that?
+  sicking suggests defining a DataStream or BlobStream interface that
+  you can get from a Stream to get to the underlying data; such an
+  object would then be readable using the File API -->
 
-  <pre class=idl>interface <dfn id=stream>Stream</dfn> {
-  readonly attribute DOMString <a href=#dom-stream-label title=dom-stream-label>label</a>;
-  <a href=#streamrecorder>StreamRecorder</a> <a href=#dom-stream-record title=dom-stream-record>record</a>();
+  <pre class=idl>interface <dfn id=mediastream>MediaStream</dfn> {
+  readonly attribute DOMString <a href=#dom-mediastream-label title=dom-MediaStream-label>label</a>;
+  <a href=#mediastreamrecorder>MediaStreamRecorder</a> <a href=#dom-mediastream-record title=dom-MediaStream-record>record</a>();
 <!--
-  const unsigned short <span title="dom-stream-LOADING">LOADING</span> = 0; -->
-  const unsigned short <a href=#dom-stream-live title=dom-stream-LIVE>LIVE</a> = 1;
-  const unsigned short <a href=#dom-stream-ended title=dom-stream-ENDED>ENDED</a> = 2;
-  readonly attribute unsigned short <a href=#dom-stream-readystate title=dom-stream-readyState>readyState</a>;
-           attribute <a href=#function>Function</a>? <a href=#handler-stream-onended title=handler-stream-onended>onended</a>;
+  const unsigned short <span title="dom-MediaStream-LOADING">LOADING</span> = 0; -->
+  const unsigned short <a href=#dom-mediastream-live title=dom-MediaStream-LIVE>LIVE</a> = 1;
+  const unsigned short <a href=#dom-mediastream-ended title=dom-MediaStream-ENDED>ENDED</a> = 2;
+  readonly attribute unsigned short <a href=#dom-mediastream-readystate title=dom-MediaStream-readyState>readyState</a>;
+           attribute <a href=#function>Function</a>? <a href=#handler-mediastream-onended title=handler-MediaStream-onended>onended</a>;
 };
-<a href=#stream>Stream</a> implements <a href=#eventtarget>EventTarget</a>;
+<a href=#mediastream>MediaStream</a> implements <a href=#eventtarget>EventTarget</a>;
 
-interface <dfn id=generatedstream>GeneratedStream</dfn> : <a href=#stream>Stream</a> {
-  void <a href=#dom-stream-stop title=dom-stream-stop>stop</a>();
+interface <dfn id=localmediastream>LocalMediaStream</dfn> : <a href=#mediastream>MediaStream</a> {
+  void <a href=#dom-mediastream-stop title=dom-MediaStream-stop>stop</a>();
 
   // track control
-  readonly attribute <a href=#multipletracklist>MultipleTrackList</a> <a href=#dom-stream-audiotracks title=dom-stream-audioTracks>audioTracks</a>;
-  readonly attribute <a href=#exclusivetracklist>ExclusiveTrackList</a> <a href=#dom-stream-videotracks title=dom-stream-videoTracks>videoTracks</a>;
+  readonly attribute <a href=#multipletracklist>MultipleTrackList</a> <a href=#dom-mediastream-audiotracks title=dom-MediaStream-audioTracks>audioTracks</a>;
+  readonly attribute <a href=#exclusivetracklist>ExclusiveTrackList</a> <a href=#dom-mediastream-videotracks title=dom-MediaStream-videoTracks>videoTracks</a>;
 };</pre>
 
-  <dl class=domintro><dt><var title="">stream</var> . <code title=dom-stream-label><a href=#dom-stream-label>label</a></code></dt>
+  <dl class=domintro><dt><var title="">stream</var> . <code title=dom-MediaStream-label><a href=#dom-mediastream-label>label</a></code></dt>
 
    <dd>
 
@@ -74871,18 +74879,18 @@
    </dd>
 
 
-   <dt><var title="">recorder</var> = <var title="">stream</var> . <code title=dom-stream-record><a href=#dom-stream-record>record</a></code>()</dt>
+   <dt><var title="">recorder</var> = <var title="">stream</var> . <code title=dom-MediaStream-record><a href=#dom-mediastream-record>record</a></code>()</dt>
 
    <dd>
 
     <p>Begins recording the stream. The returned
-    <code><a href=#streamrecorder>StreamRecorder</a></code> object provides access to the recorded
-    data.</p>
+    <code><a href=#mediastreamrecorder>MediaStreamRecorder</a></code> object provides access to the
+    recorded data.</p>
 
    </dd>
 
 
-   <dt><var title="">stream</var> . <code title=dom-stream-stop><a href=#dom-stream-stop>stop</a></code>()</dt>
+   <dt><var title="">stream</var> . <code title=dom-MediaStream-stop><a href=#dom-mediastream-stop>stop</a></code>()</dt>
 
    <dd>
 
@@ -74891,21 +74899,22 @@
    </dd>
 
 
-   <dt><var title="">stream</var> . <code title=dom-stream-audioTracks><a href=#dom-stream-audiotracks>audioTracks</a></code></dt>
+   <dt><var title="">stream</var> . <code title=dom-MediaStream-audioTracks><a href=#dom-mediastream-audiotracks>audioTracks</a></code></dt>
 
    <dd>
 
     <p>Returns a <code><a href=#multipletracklist>MultipleTrackList</a></code> object representing
-    the audio tracks available for mixing into the <code><a href=#generatedstream>GeneratedStream</a></code>'s stream.</p>
+    the audio tracks available for mixing into the
+    <code><a href=#localmediastream>LocalMediaStream</a></code>'s stream.</p>
 
    </dd>
 
-   <dt><var title="">stream</var> . <code title=dom-stream-videoTracks><a href=#dom-stream-videotracks>videoTracks</a></code></dt>
+   <dt><var title="">stream</var> . <code title=dom-MediaStream-videoTracks><a href=#dom-mediastream-videotracks>videoTracks</a></code></dt>
 
    <dd>
 
     <p>Returns an <code><a href=#exclusivetracklist>ExclusiveTrackList</a></code> object representing
-    the video tracks available for the <code><a href=#generatedstream>GeneratedStream</a></code>'s
+    the video tracks available for the <code><a href=#localmediastream>LocalMediaStream</a></code>'s
     stream.</p>
 
    </dd>
@@ -74913,27 +74922,27 @@
 
   </dl><div class=impl>
 
-  <p>The <dfn id=dom-stream-readystate title=dom-stream-readyState><code>readyState</code></dfn>
+  <p>The <dfn id=dom-mediastream-readystate title=dom-MediaStream-readyState><code>readyState</code></dfn>
   attribute represents the state of the stream. It must return the
   value to which the user agent last set it (as defined below). It can
   have the following values:</p>
 
-  <dl><dt><dfn id=dom-stream-live title=dom-stream-LIVE><code>LIVE</code></dfn> (numeric value 1)</dt>
+  <dl><dt><dfn id=dom-mediastream-live title=dom-MediaStream-LIVE><code>LIVE</code></dfn> (numeric value 1)</dt>
 
    <dd>The stream is active (the user agent is making a best-effort
    attempt to receive or generate data in real time).</dd>
 
-   <dt><dfn id=dom-stream-ended title=dom-stream-ENDED><code>ENDED</code></dfn> (numeric value 2)</dt>
+   <dt><dfn id=dom-mediastream-ended title=dom-MediaStream-ENDED><code>ENDED</code></dfn> (numeric value 2)</dt>
 
    <dd>The stream has finished (the user agent is no longer receiving
    or generating data, and will never receive or generate more data
    for this stream).</dd>
 
-  </dl><p>When a <code><a href=#stream>Stream</a></code> object is created, its <code title=dom-stream-readyState><a href=#dom-stream-readystate>readyState</a></code> attribute must be
-  set to <code title=dom-stream-LIVE><a href=#dom-stream-live>LIVE</a></code> (1).</p>
+  </dl><p>When a <code><a href=#mediastream>MediaStream</a></code> object is created, its <code title=dom-MediaStream-readyState><a href=#dom-mediastream-readystate>readyState</a></code> attribute must be
+  set to <code title=dom-MediaStream-LIVE><a href=#dom-mediastream-live>LIVE</a></code> (1).</p>
 
-  <p>When a <code><a href=#stream>Stream</a></code> object ends for any reason other than
-  the <code title=dom-stream-stop><a href=#dom-stream-stop>stop()</a></code> method being invoked
+  <p>When a <code><a href=#mediastream>MediaStream</a></code> object ends for any reason other than
+  the <code title=dom-MediaStream-stop><a href=#dom-mediastream-stop>stop()</a></code> method being invoked
   (e.g. because the user rescinds the permission for the page to use
   the local camera, or because the data comes from a finite file and
   the file's end has been reached and the user has not requested that
@@ -74941,25 +74950,25 @@
   remote peer has permanently stopped sending data), the user agent
   must <a href=#queue-a-task>queue a task</a> that runs the following steps:</p>
 
-  <ol><li><p>If the object's <code title=dom-stream-readyState><a href=#dom-stream-readystate>readyState</a></code> attribute has the
-   value <code title=dom-stream-ENDED><a href=#dom-stream-ended>ENDED</a></code> (2) already, then
-   abort these steps. (The <code title=dom-stream-stop><a href=#dom-stream-stop>stop()</a></code>
+  <ol><li><p>If the object's <code title=dom-MediaStream-readyState><a href=#dom-mediastream-readystate>readyState</a></code> attribute has the
+   value <code title=dom-MediaStream-ENDED><a href=#dom-mediastream-ended>ENDED</a></code> (2) already, then
+   abort these steps. (The <code title=dom-MediaStream-stop><a href=#dom-mediastream-stop>stop()</a></code>
    method was probably called just before the stream stopped for other
    reasons, e.g. the user clicked an in-page stop button and then the
    user-agent-provided stop button.)</li>
 
-   <li><p>Set the object's <code title=dom-stream-readyState><a href=#dom-stream-readystate>readyState</a></code> attribute to <code title=dom-stream-ENDED><a href=#dom-stream-ended>ENDED</a></code> (2).</li>
+   <li><p>Set the object's <code title=dom-MediaStream-readyState><a href=#dom-mediastream-readystate>readyState</a></code> attribute to <code title=dom-MediaStream-ENDED><a href=#dom-mediastream-ended>ENDED</a></code> (2).</li>
 
-   <li><p><a href=#fire-a-simple-event>Fire a simple event</a> named <code title=event-stream-ended><a href=#event-stream-ended>ended</a></code> at the object.</li>
+   <li><p><a href=#fire-a-simple-event>Fire a simple event</a> named <code title=event-MediaStream-ended><a href=#event-mediastream-ended>ended</a></code> at the object.</li>
 
   </ol><p>If the end of the stream was reached due to a user request, the
   <a href=#task-source>task source</a> for this <a href=#concept-task title=concept-task>task</a> is the <a href=#user-interaction-task-source>user interaction task
   source</a>. Otherwise the <a href=#task-source>task source</a> for this <a href=#concept-task title=concept-task>task</a> is the <a href=#networking-task-source>networking task
   source</a>.</p>
 
-  <hr><p>When a <code><a href=#generatedstream>GeneratedStream</a></code> object is created, the user
+  <hr><p>When a <code><a href=#localmediastream>LocalMediaStream</a></code> object is created, the user
   agent must generate a globally unique identifier string, and must
-  initialize the object's <code title=dom-stream-label><a href=#dom-stream-label>label</a></code>
+  initialize the object's <code title=dom-MediaStream-label><a href=#dom-mediastream-label>label</a></code>
   attribute to that string. Such strings must only use characters in
   the ranges U+0021, U+0023 to U+0027, U+002A to U+002B, U+002D to
   U+002E, U+0030 to U+0039, U+0041 to U+005A, U+005E to U+007E, and
@@ -74967,26 +74976,26 @@
   including hyphens; the ranges above comes from RFC4574 (the a=label:
   thing in SDP) -->
 
-  <p>When a <code><a href=#stream>Stream</a></code> is created to represent a stream
-  obtained from a remote peer, the <code title=dom-stream-label><a href=#dom-stream-label>label</a></code> attribute is initialized from
+  <p>When a <code><a href=#mediastream>MediaStream</a></code> is created to represent a stream
+  obtained from a remote peer, the <code title=dom-MediaStream-label><a href=#dom-mediastream-label>label</a></code> attribute is initialized from
   information provided by the remote source.</p> <!-- described below
   -->
 
-  <p>The <dfn id=dom-stream-label title=dom-stream-label><code>label</code></dfn>
+  <p>The <dfn id=dom-mediastream-label title=dom-MediaStream-label><code>label</code></dfn>
   attribute must return the value to which it was initialized when the
   object was created.</p>
 
-  <hr><p>When the <dfn id=dom-stream-record title=dom-stream-record><code>record()</code></dfn> method is
+  <hr><p>When the <dfn id=dom-mediastream-record title=dom-MediaStream-record><code>record()</code></dfn> method is
   invoked, the user agent must return a new
-  <code><a href=#streamrecorder>StreamRecorder</a></code> object associated with the stream.</p>
+  <code><a href=#mediastreamrecorder>MediaStreamRecorder</a></code> object associated with the stream.</p>
 
-  <hr><p>When a <code><a href=#generatedstream>GeneratedStream</a></code> object's <dfn id=dom-stream-stop title=dom-stream-stop><code>stop()</code></dfn> method is invoked,
-  the user agent must <a href=#queue-a-task>queue a task</a> that runs the
+  <hr><p>When a <code><a href=#localmediastream>LocalMediaStream</a></code> object's <dfn id=dom-mediastream-stop title=dom-MediaStream-stop><code>stop()</code></dfn> method is
+  invoked, the user agent must <a href=#queue-a-task>queue a task</a> that runs the
   following steps:</p>
 
-  <ol><li><p>If the object's <code title=dom-stream-readyState><a href=#dom-stream-readystate>readyState</a></code> attribute is in the
-   <code title=dom-stream-ENDED><a href=#dom-stream-ended>ENDED</a></code> (2) state, then abort
-   these steps.</li>
+  <ol><li><p>If the object's <code title=dom-MediaStream-readyState><a href=#dom-mediastream-readystate>readyState</a></code> attribute is
+   in the <code title=dom-MediaStream-ENDED><a href=#dom-mediastream-ended>ENDED</a></code> (2) state,
+   then abort these steps.</li>
 
    <li><p>Permanently stop the generation of data for the stream. If
    the data is being generated from a live source (e.g. a microphone
@@ -74996,58 +75005,59 @@
    (e.g. a video file), any remaining content in the file is
    ignored.</li>
 
-   <li><p>Set the object's <code title=dom-stream-readyState><a href=#dom-stream-readystate>readyState</a></code> attribute to <code title=dom-stream-ENDED><a href=#dom-stream-ended>ENDED</a></code> (2).</li>
+   <li><p>Set the object's <code title=dom-MediaStream-readyState><a href=#dom-mediastream-readystate>readyState</a></code> attribute to
+   <code title=dom-MediaStream-ENDED><a href=#dom-mediastream-ended>ENDED</a></code> (2).</li>
 
-   <li><p><a href=#fire-a-simple-event>Fire a simple event</a> named <code title=event-stream-ended><a href=#event-stream-ended>ended</a></code> at the object.</li>
+   <li><p><a href=#fire-a-simple-event>Fire a simple event</a> named <code title=event-MediaStream-ended><a href=#event-mediastream-ended>ended</a></code> at the object.</li>
 
-  </ol><p>The <a href=#task-source>task source</a> for the <a href=#concept-task title=concept-task>tasks</a> queued for the <code title=dom-stream-stop><a href=#dom-stream-stop>stop()</a></code> method is the <a href=#dom-manipulation-task-source>DOM
+  </ol><p>The <a href=#task-source>task source</a> for the <a href=#concept-task title=concept-task>tasks</a> queued for the <code title=dom-MediaStream-stop><a href=#dom-mediastream-stop>stop()</a></code> method is the <a href=#dom-manipulation-task-source>DOM
   manipulation task source</a>.</p>
 
-  <hr><p>A <code><a href=#generatedstream>GeneratedStream</a></code> can have multiple audio and video
+  <hr><p>A <code><a href=#localmediastream>LocalMediaStream</a></code> can have multiple audio and video
   sources (e.g. because the user has multiple microphones, or because
   the real source of the stream is a <a href=#media-resource>media resource</a> with
   many media tracks). The stream represented by a
-  <code><a href=#generatedstream>GeneratedStream</a></code> has either zero or one audio track and
+  <code><a href=#localmediastream>LocalMediaStream</a></code> has either zero or one audio track and
   either zero or one video track.</p>
 
   <div class=impl>
 
-  <p>The <dfn id=dom-stream-audiotracks title=dom-stream-audioTracks><code>audioTracks</code></dfn>
-  attribute of a <code><a href=#generatedstream>GeneratedStream</a></code> object must return a
+  <p>The <dfn id=dom-mediastream-audiotracks title=dom-MediaStream-audioTracks><code>audioTracks</code></dfn>
+  attribute of a <code><a href=#localmediastream>LocalMediaStream</a></code> object must return a
   <a href=#live>live</a> <code><a href=#multipletracklist>MultipleTrackList</a></code> object representing
-  the audio sources available to the <code><a href=#generatedstream>GeneratedStream</a></code>. The
+  the audio sources available to the <code><a href=#localmediastream>LocalMediaStream</a></code>. The
   same object must be returned each time. The
-  <code><a href=#generatedstream>GeneratedStream</a></code>'s output audio track must be the result
+  <code><a href=#localmediastream>LocalMediaStream</a></code>'s output audio track must be the result
   of mixing all the enabled audio sources, if any.</p>
 
-  <p>The <dfn id=dom-stream-videotracks title=dom-stream-videoTracks><code>videoTracks</code></dfn>
-  attribute of a <code><a href=#generatedstream>GeneratedStream</a></code> object must return a
+  <p>The <dfn id=dom-mediastream-videotracks title=dom-MediaStream-videoTracks><code>videoTracks</code></dfn>
+  attribute of a <code><a href=#localmediastream>LocalMediaStream</a></code> object must return a
   <a href=#live>live</a> <code><a href=#exclusivetracklist>ExclusiveTrackList</a></code> object
   representing the video sources available to the
-  <code><a href=#generatedstream>GeneratedStream</a></code>. The same object must be returned each
-  time. The <code><a href=#generatedstream>GeneratedStream</a></code>'s output video track must be
+  <code><a href=#localmediastream>LocalMediaStream</a></code>. The same object must be returned each
+  time. The <code><a href=#localmediastream>LocalMediaStream</a></code>'s output video track must be
   the selected video source, if any.</p>
 
   <p>User agents may label audio and video sources (e.g. "Internal
   microphone" or "External USB Webcam"), in which case the <code title=dom-TrackList-getLabel><a href=#dom-tracklist-getlabel>getLabel()</a></code> methods (on the
   <code><a href=#multipletracklist>MultipleTrackList</a></code> and <code><a href=#exclusivetracklist>ExclusiveTrackList</a></code>
   objects) must use the labels the user agent has assigned as the
-  track labels of the source tracks of the <code><a href=#generatedstream>GeneratedStream</a></code>
+  track labels of the source tracks of the <code><a href=#localmediastream>LocalMediaStream</a></code>
   object. Otherwise, the <code title=dom-TrackList-getLabel><a href=#dom-tracklist-getlabel>getLabel()</a></code> methods must use the
   empty string as the track labels of the source tracks of the
-  <code><a href=#generatedstream>GeneratedStream</a></code> object. The <code title=dom-TrackList-getLanguage><a href=#dom-tracklist-getlanguage>getLanguage()</a></code> methods must
+  <code><a href=#localmediastream>LocalMediaStream</a></code> object. The <code title=dom-TrackList-getLanguage><a href=#dom-tracklist-getlanguage>getLanguage()</a></code> methods must
   use the empty string as the track language for all the source tracks
-  of the <code><a href=#generatedstream>GeneratedStream</a></code> object.</p>
+  of the <code><a href=#localmediastream>LocalMediaStream</a></code> object.</p>
 
   </div>
 
   <hr><p>The following are the <a href=#event-handlers>event handlers</a> (and their
   corresponding <a href=#event-handler-event-type title="event handler event type">event handler
   event types</a>) that must be supported, as IDL attributes, by
-  all objects implementing the <code><a href=#stream>Stream</a></code> interface:</p>
+  all objects implementing the <code><a href=#mediastream>MediaStream</a></code> interface:</p>
 
   <table><thead><tr><th><a href=#event-handlers title="event handlers">Event handler</a> <th><a href=#event-handler-event-type>Event handler event type</a>
-   <tbody><tr><td><dfn id=handler-stream-onended title=handler-stream-onended><code>onended</code></dfn> <td> <code title=event-stream-ended><a href=#event-stream-ended>ended</a></code>
+   <tbody><tr><td><dfn id=handler-mediastream-onended title=handler-MediaStream-onended><code>onended</code></dfn> <td> <code title=event-MediaStream-ended><a href=#event-mediastream-ended>ended</a></code>
   </table></div>
 
   <div class=example>
@@ -75075,8 +75085,8 @@
 
   </div>
 
-  <pre class=idl>interface <dfn id=streamrecorder>StreamRecorder</dfn> {
-  void <a href=#dom-streamrecorder-getrecordeddata title=dom-StreamRecorder-getRecordedData>getRecordedData</a>(in <a href=#blobcallback>BlobCallback</a>? callback);
+  <pre class=idl>interface <dfn id=mediastreamrecorder>MediaStreamRecorder</dfn> {
+  void <a href=#dom-mediastreamrecorder-getrecordeddata title=dom-MediaStreamRecorder-getRecordedData>getRecordedData</a>(in <a href=#blobcallback>BlobCallback</a>? callback);
 };
 
 [Callback=FunctionOnly, NoInterfaceObject]
@@ -75084,7 +75094,7 @@
   void <span title=dom-BlobCallback-handleEvent>handleEvent</span>(in <a href=#blob>Blob</a> blob);
 };</pre>
 
-  <dl class=domintro><dt><var title="">recorder</var> . <code title=dom-StreamRecorder-getRecordedData><a href=#dom-streamrecorder-getrecordeddata>getRecordedData</a></code>(<var title="">callback</var>)</dt>
+  <dl class=domintro><dt><var title="">recorder</var> . <code title=dom-MediaStreamRecorder-getRecordedData><a href=#dom-mediastreamrecorder-getrecordeddata>getRecordedData</a></code>(<var title="">callback</var>)</dt>
 
    <dd>
 
@@ -75095,7 +75105,7 @@
 
   </dl><div class=impl>
 
-  <p>When the <dfn id=dom-streamrecorder-getrecordeddata title=dom-StreamRecorder-getRecordedData><code>getRecordedData()</code></dfn>
+  <p>When the <dfn id=dom-mediastreamrecorder-getrecordeddata title=dom-MediaStreamRecorder-getRecordedData><code>getRecordedData()</code></dfn>
   method is called, the user agent must run the following steps:</p>
 
   <ol><li><p>Let <var title="">callback</var> be the callback
@@ -75107,9 +75117,9 @@
    exception here without changing the algorithm) -->
 
    <li><p>Let <var title="">data</var> be the data that was streamed
-   by the <code><a href=#stream>Stream</a></code> object from which the
-   <code><a href=#streamrecorder>StreamRecorder</a></code> was created since the creation of the
-   <code><a href=#streamrecorder>StreamRecorder</a></code> object.</li>
+   by the <code><a href=#mediastream>MediaStream</a></code> object from which the
+   <code><a href=#mediastreamrecorder>MediaStreamRecorder</a></code> was created since the creation of the
+   <code><a href=#mediastreamrecorder>MediaStreamRecorder</a></code> object.</li>
 
    <li><p>Return, and run the remaining steps asynchronously.</li>
 
@@ -75124,9 +75134,9 @@
    <li><p><a href=#queue-a-task>Queue a task</a> to invoke <var title="">callback</var> with <var title="">blob</var> as its
    argument.</li>
 
-  </ol><p class=note>The <code title=dom-StreamRecorder-getRecordedData><a href=#dom-streamrecorder-getrecordeddata>getRecordedData()</a></code>
+  </ol><p class=note>The <code title=dom-MediaStreamRecorder-getRecordedData><a href=#dom-mediastreamrecorder-getrecordeddata>getRecordedData()</a></code>
   method can be called multiple times on one
-  <code><a href=#streamrecorder>StreamRecorder</a></code> object; each time, it will create a new
+  <code><a href=#mediastreamrecorder>MediaStreamRecorder</a></code> object; each time, it will create a new
   file as if this was the first time the method was being called. In
   particular, the method does not stop or reset the recording when the
   method is called.</p>
@@ -75193,23 +75203,23 @@
 
   <pre class=idl>[Supplemental]
 interface <dfn id=dom-url title=dom-URL>URL</dfn> {
-  static DOMString <a href=#dom-url-createobjecturl title=dom-URL-createObjectURL>createObjectURL</a>(in <a href=#stream>Stream</a> stream);
+  static DOMString <a href=#dom-url-createobjecturl title=dom-URL-createObjectURL>createObjectURL</a>(in <a href=#mediastream>MediaStream</a> stream);
 };</pre>
 
   <dl class=domintro><dt><var title="">window</var> . <code title=dom-URL><a href=#dom-url>URL</a></code> . <code title=dom-URL-createObjectURL><a href=#dom-url-createobjecturl>createObjectURL</a></code>(<var title="">stream</var>)</dt>
 
    <dd>
 
-    <p>Mints a <a href=#blob-url>Blob URL</a> to refer to the given <code><a href=#stream>Stream</a></code>.</p>
+    <p>Mints a <a href=#blob-url>Blob URL</a> to refer to the given <code><a href=#mediastream>MediaStream</a></code>.</p>
 
    </dd>
 
   </dl><div class=impl>
 
   <p>When the <dfn id=dom-url-createobjecturl title=dom-URL-createObjectURL><code>createObjectURL()</code></dfn>
-  method is called with a <code><a href=#stream>Stream</a></code> argument, the user agent
+  method is called with a <code><a href=#mediastream>MediaStream</a></code> argument, the user agent
   must return a unique <a href=#blob-url>Blob URL</a> for the given
-  <code><a href=#stream>Stream</a></code>. <a href=#refsFILEAPI>[FILEAPI]</a></p>
+  <code><a href=#mediastream>MediaStream</a></code>. <a href=#refsFILEAPI>[FILEAPI]</a></p>
 
   <p>For audio and video streams, the data exposed on that stream must
   be in a format supported by the user agent for use in
@@ -75219,8 +75229,8 @@
   File API specification calls a <span>Blob URI</span>, except that
   anything in the definition of that feature that refers to
   <code><a href=#file>File</a></code> and <code><a href=#blob>Blob</a></code> objects is hereby extended
-  to also apply to <code><a href=#stream>Stream</a></code> and
-  <code><a href=#generatedstream>GeneratedStream</a></code> objects.</p>
+  to also apply to <code><a href=#mediastream>MediaStream</a></code> and
+  <code><a href=#localmediastream>LocalMediaStream</a></code> objects.</p>
 
   </div>
 
@@ -75285,10 +75295,10 @@
   readonly attribute unsigned short <a href=#dom-peerconnection-readystate title=dom-PeerConnection-readyState>readyState</a>;
 
   void <a href=#dom-peerconnection-send title=dom-PeerConnection-send>send</a>(in DOMString text); <!-- v2: binary -->
-  void <a href=#dom-peerconnection-addstream title=dom-PeerConnection-addStream>addStream</a>(in <a href=#stream>Stream</a> stream);
-  void <a href=#dom-peerconnection-removestream title=dom-PeerConnection-removeStream>removeStream</a>(in <a href=#stream>Stream</a> stream);
-  readonly attribute <a href=#stream>Stream</a>[] <a href=#dom-peerconnection-localstreams title=dom-PeerConnection-localStreams>localStreams</a>;
-  readonly attribute <a href=#stream>Stream</a>[] <a href=#dom-peerconnection-remotestreams title=dom-PeerConnection-remoteStreams>remoteStreams</a>;
+  void <a href=#dom-peerconnection-addstream title=dom-PeerConnection-addStream>addStream</a>(in <a href=#mediastream>MediaStream</a> stream);
+  void <a href=#dom-peerconnection-removestream title=dom-PeerConnection-removeStream>removeStream</a>(in <a href=#mediastream>MediaStream</a> stream);
+  readonly attribute <a href=#mediastream>MediaStream</a>[] <a href=#dom-peerconnection-localstreams title=dom-PeerConnection-localStreams>localStreams</a>;
+  readonly attribute <a href=#mediastream>MediaStream</a>[] <a href=#dom-peerconnection-remotestreams title=dom-PeerConnection-remoteStreams>remoteStreams</a>;
 
   void <a href=#dom-peerconnection-close title=dom-PeerConnection-close>close</a>();
 
@@ -75406,7 +75416,7 @@
     every message will be received.</p>
 
     <p>When a message sent in this manner from the other peer is
-    received, a <code title=event-stream-message><a href=#event-stream-message>message</a></code>
+    received, a <code title=event-MediaStream-message><a href=#event-mediastream-message>message</a></code>
     event is fired at the <code><a href=#peerconnection>PeerConnection</a></code> object.</p>
 
     <p>The maximum length of <var title="">text</var> is 504 bytes
@@ -75424,7 +75434,7 @@
     peer.</p>
 
     <p>When the other peer starts sending a stream in this manner, an
-    <code title=event-stream-addstream><a href=#event-stream-addstream>addstream</a></code>
+    <code title=event-MediaStream-addstream><a href=#event-mediastream-addstream>addstream</a></code>
     event is fired at the <code><a href=#peerconnection>PeerConnection</a></code> object.</p>
 
    </dd>
@@ -75436,7 +75446,7 @@
     <p>Steps sending the given stream to the remote peer.</p>
 
     <p>When the other peer stops sending a stream in this manner, a
-    <code title=event-stream-removestream><a href=#event-stream-removestream>removestream</a></code>
+    <code title=event-MediaStream-removestream><a href=#event-mediastream-removestream>removestream</a></code>
     event is fired at the <code><a href=#peerconnection>PeerConnection</a></code> object.</p>
 
    </dd>
@@ -75458,7 +75468,7 @@
     <p>Returns a live array containing the streams that the user agent
     is currently receiving from the remote peer.</p>
 
-    <p>This array is updated when <code title=event-stream-addstream><a href=#event-stream-addstream>addstream</a></code> and <code title=event-stream-removestream><a href=#event-stream-removestream>removestream</a></code>
+    <p>This array is updated when <code title=event-MediaStream-addstream><a href=#event-mediastream-addstream>addstream</a></code> and <code title=event-MediaStream-removestream><a href=#event-mediastream-removestream>removestream</a></code>
     events are fired.</p>
 
    </dd>
@@ -75605,10 +75615,10 @@
    new <a href=#data-udp-media-stream>data UDP media stream</a>.</li>
 
    <li><p>Let <var title="">connection</var>'s <code title=dom-PeerConnection-localStreams><a href=#dom-peerconnection-localstreams>localStreams</a></code>
-   attribute be an empty read-only <code><a href=#stream>Stream</a></code> array. <a href=#refsWEBIDL>[WEBIDL]</a></li>
+   attribute be an empty read-only <code><a href=#mediastream>MediaStream</a></code> array. <a href=#refsWEBIDL>[WEBIDL]</a></li>
 
    <li><p>Let <var title="">connection</var>'s <code title=dom-PeerConnection-remoteStreams><a href=#dom-peerconnection-remotestreams>remoteStreams</a></code>
-   attribute be an empty read-only <code><a href=#stream>Stream</a></code> array. <a href=#refsWEBIDL>[WEBIDL]</a></li>
+   attribute be an empty read-only <code><a href=#mediastream>MediaStream</a></code> array. <a href=#refsWEBIDL>[WEBIDL]</a></li>
 
    <li><p>Return <var title="">connection</var>, but continue these
    steps asynchronously.</li>
@@ -75635,7 +75645,7 @@
    <code title=dom-PeerConnection-NEW><a href=#dom-peerconnection-new>NEW</a></code> (0), then
    <a href=#queue-a-task>queue a task</a> that sets it to <code title=dom-PeerConnection-NEGOTIATING><a href=#dom-peerconnection-negotiating>NEGOTIATING</a></code> (1) and
    then <a href=#fire-a-simple-event title="fire a simple event">fires a simple event</a>
-   named <code title=event-stream-connecting><a href=#event-stream-connecting>connecting</a></code> at the
+   named <code title=event-MediaStream-connecting><a href=#event-mediastream-connecting>connecting</a></code> at the
    <code><a href=#peerconnection>PeerConnection</a></code> object.</p>
 
   </ol><p>When a <a href=#peerconnection-ice-agent><code>PeerConnection</code> ICE Agent</a> is
@@ -75655,7 +75665,7 @@
    <var title="">message</var> as its first argument and the
    <code><a href=#peerconnection>PeerConnection</a></code> as its second argument.</li>
 
-  </ol><p>All streams represented by <code><a href=#stream>Stream</a></code> objects must be
+  </ol><p>All streams represented by <code><a href=#mediastream>MediaStream</a></code> objects must be
   marked as "sendonly" by the peer that initially adds the stream to
   the session. The <code><a href=#peerconnection>PeerConnection</a></code> API does not support
   bidirectional ("sendrecv") audio or video media streams. <a href=#refsSDPOFFERANSWER>[SDPOFFERANSWER]</a></p>
@@ -75674,8 +75684,8 @@
   the stream is flowing.</p>
 
   <p>All SDP media descriptions for streams represented by
-  <code><a href=#stream>Stream</a></code> objects must include a label attribute ("<code title="">a=label:</code>") whose value is the value of the
-  <code><a href=#stream>Stream</a></code> object's <code title=dom-stream-label><a href=#dom-stream-label>label</a></code> attribute. <a href=#refsSDP>[SDP]</a> <a href=#refsSDPLABEL>[SDPLABEL]</a></p>
+  <code><a href=#mediastream>MediaStream</a></code> objects must include a label attribute ("<code title="">a=label:</code>") whose value is the value of the
+  <code><a href=#mediastream>MediaStream</a></code> object's <code title=dom-MediaStream-label><a href=#dom-mediastream-label>label</a></code> attribute. <a href=#refsSDP>[SDP]</a> <a href=#refsSDPLABEL>[SDPLABEL]</a></p>
 
   <p><a href=#peerconnection-ice-agent title="PeerConnection ICE
   Agent"><code>PeerConnection</code> ICE Agents</a> must not
@@ -75691,16 +75701,16 @@
    <code><a href=#peerconnection>PeerConnection</a></code> whose ICE Agent is expecting this
    media.</li>
 
-   <li><p>If there is already a <code><a href=#stream>Stream</a></code> object for the
+   <li><p>If there is already a <code><a href=#mediastream>MediaStream</a></code> object for the
    media stream to which this component belongs, then associate the
    component with that media stream and abort these steps. (Some media
    streams have multiple components; this API does not expose the
    role of these individual components in ICE.)</li>
 
-   <li><p>Create a <code><a href=#stream>Stream</a></code> object to represent the media
-   stream. Set its <code title=attr-stream-label>label</code>
-   attribute to the value of the SDP Label attribute for that
-   component's media stream.</li>
+   <li><p>Create a <code><a href=#mediastream>MediaStream</a></code> object to represent the
+   media stream. Set its <code title=dom-MediaStream-label><a href=#dom-mediastream-label>label</a></code> attribute to the value
+   of the SDP Label attribute for that component's media
+   stream.</li>
 
    <li>
 
@@ -75711,12 +75721,12 @@
      steps.</li> <!-- close() was probably called just before this
      task ran -->
 
-     <li><p>Add the newly created <code><a href=#stream>Stream</a></code> object to the
+     <li><p>Add the newly created <code><a href=#mediastream>MediaStream</a></code> object to the
      end of <var title="">connection</var>'s <code title=dom-PeerConnection-remoteStreams><a href=#dom-peerconnection-remotestreams>remoteStreams</a></code>
      array.</li>
 
-     <li><p><a href=#fire-a-stream-event>Fire a stream event</a> named <code title=event-stream-addstream><a href=#event-stream-addstream>addstream</a></code> with the newly
-     created <code><a href=#stream>Stream</a></code> object at the <var title="">connection</var> object.</li>
+     <li><p><a href=#fire-a-stream-event>Fire a stream event</a> named <code title=event-MediaStream-addstream><a href=#event-mediastream-addstream>addstream</a></code> with the newly
+     created <code><a href=#mediastream>MediaStream</a></code> object at the <var title="">connection</var> object.</li>
 
     </ol></li>
 
@@ -75729,7 +75739,7 @@
    <code><a href=#peerconnection>PeerConnection</a></code> whose <a href=#peerconnection-ice-agent><code>PeerConnection</code>
    ICE Agent</a> has determined that a stream is being removed.</li>
 
-   <li><p>Let <var title="">stream</var> be the <code><a href=#stream>Stream</a></code>
+   <li><p>Let <var title="">stream</var> be the <code><a href=#mediastream>MediaStream</a></code>
    object that represents the media stream being removed, if any. If
    there isn't one, then abort these steps.</li>
 
@@ -75745,7 +75755,7 @@
      <li><p>Remove <var title="">stream</var> from <var title="">connection</var>'s <code title=dom-PeerConnection-remoteStreams><a href=#dom-peerconnection-remotestreams>remoteStreams</a></code>
      array.</li>
 
-     <li><p><a href=#fire-a-stream-event>Fire a stream event</a> named <code title=event-stream-removestream><a href=#event-stream-removestream>removestream</a></code> with <var title="">stream</var> at the <var title="">connection</var>
+     <li><p><a href=#fire-a-stream-event>Fire a stream event</a> named <code title=event-MediaStream-removestream><a href=#event-mediastream-removestream>removestream</a></code> with <var title="">stream</var> at the <var title="">connection</var>
      object.</li>
 
     </ol></li>
@@ -75813,14 +75823,14 @@
    <li><p><a href=#queue-a-task>Queue a task</a> that sets <var title="">connection</var>'s <a href=#peerconnection-readiness-state><code>PeerConnection</code>
    readiness state</a> to <code title=dom-PeerConnection-NEGOTIATING><a href=#dom-peerconnection-negotiating>NEGOTIATING</a></code> (1) and
    then <a href=#fire-a-simple-event title="fire a simple event">fires a simple event</a>
-   named <code title=event-stream-connecting><a href=#event-stream-connecting>connecting</a></code> at the
+   named <code title=event-MediaStream-connecting><a href=#event-mediastream-connecting>connecting</a></code> at the
    <code><a href=#peerconnection>PeerConnection</a></code> object.</p>
 
   </ol><p>When a <a href=#peerconnection-ice-agent><code>PeerConnection</code> ICE Agent</a>
   completes ICE processing (even if there are no active streams), the
   user agent must <a href=#queue-a-task>queue a task</a> that sets the
   <code><a href=#peerconnection>PeerConnection</a></code> object's
-  <a href=#peerconnection-readiness-state><code>PeerConnection</code> readiness state</a> to <code title=dom-PeerConnection-ACTIVE><a href=#dom-peerconnection-active>ACTIVE</a></code> (2) and then <a href=#fire-a-simple-event title="fire a simple event">fires a simple event</a> named <code title=event-stream-open><a href=#event-stream-open>open</a></code> at the
+  <a href=#peerconnection-readiness-state><code>PeerConnection</code> readiness state</a> to <code title=dom-PeerConnection-ACTIVE><a href=#dom-peerconnection-active>ACTIVE</a></code> (2) and then <a href=#fire-a-simple-event title="fire a simple event">fires a simple event</a> named <code title=event-MediaStream-open><a href=#event-mediastream-open>open</a></code> at the
   <code><a href=#peerconnection>PeerConnection</a></code> object.</p>
 
   <p>When a <a href=#peerconnection-ice-agent><code>PeerConnection</code> ICE Agent</a>
@@ -75829,7 +75839,7 @@
   task</a> that sets the <code><a href=#peerconnection>PeerConnection</a></code> object's
   <a href=#peerconnection-readiness-state><code>PeerConnection</code> readiness state</a> to <code title=dom-PeerConnection-NEGOTIATING><a href=#dom-peerconnection-negotiating>NEGOTIATING</a></code> (1) and
   then <a href=#fire-a-simple-event title="fire a simple event">fires a simple event</a>
-  named <code title=event-stream-connecting><a href=#event-stream-connecting>connecting</a></code> at the
+  named <code title=event-MediaStream-connecting><a href=#event-mediastream-connecting>connecting</a></code> at the
   <code><a href=#peerconnection>PeerConnection</a></code> object.</p>
                                    
   <p>The <dfn id=dom-peerconnection-readystate title=dom-PeerConnection-readyState><code title="">readyState</code></dfn> attribute must return the numeric
@@ -75922,7 +75932,7 @@
 
   </ol><p>The <dfn id=dom-peerconnection-localstreams title=dom-PeerConnection-localStreams><code>localStreams</code></dfn>
   and <dfn id=dom-peerconnection-remotestreams title=dom-PeerConnection-remoteStreams><code>remoteStreams</code></dfn>
-  attributes must return the read-only <code><a href=#stream>Stream</a></code> arrays that
+  attributes must return the read-only <code><a href=#mediastream>MediaStream</a></code> arrays that
   the attributes were respectively set to when the
   <code><a href=#peerconnection>PeerConnection</a></code>'s constructor ran.</p>
   
@@ -75942,7 +75952,7 @@
    state</a> to <code title=dom-PeerConnection-CLOSED><a href=#dom-peerconnection-closed>CLOSED</a></code> (3).</li>
 <!--
    <li><p><span>Queue a task</span> to <span>fire a simple
-   event</span> named <code title="event-stream-close">close</code> at the
+   event</span> named <code title="event-MediaStream-close">close</code> at the
    <code>PeerConnection</code> object.</p></li>
 -->
   </ol><p class=note>The <code title=dom-PeerConnection-localStreams><a href=#dom-peerconnection-localstreams>localStreams</a></code> and
@@ -75957,13 +75967,13 @@
   interface:</p>
 
   <table><thead><tr><th><a href=#event-handlers title="event handlers">Event handler</a> <th><a href=#event-handler-event-type>Event handler event type</a>
-   <tbody><tr><td><dfn id=handler-peerconnection-onconnecting title=handler-PeerConnection-onconnecting><code>onconnecting</code></dfn> <td> <code title=event-stream-connecting><a href=#event-stream-connecting>connecting</a></code>
-    <tr><td><dfn id=handler-peerconnection-onopen title=handler-PeerConnection-onopen><code>onopen</code></dfn> <td> <code title=event-stream-open><a href=#event-stream-open>open</a></code>
-<!--    <tr><td><dfn title="handler-PeerConnection-onerror"><code>onerror</code></dfn> <td> <code title="event-stream-error">error</code>-->
-<!--    <tr><td><dfn title="handler-PeerConnection-onclose"><code>onclose</code></dfn> <td> <code title="event-stream-close">close</code>-->
-    <tr><td><dfn id=handler-peerconnection-onmessage title=handler-PeerConnection-onmessage><code>onmessage</code></dfn> <td> <code title=event-stream-message><a href=#event-stream-message>message</a></code>
-    <tr><td><dfn id=handler-peerconnection-onaddstream title=handler-PeerConnection-onaddstream><code>onaddstream</code></dfn> <td> <code title=event-stream-addstream><a href=#event-stream-addstream>addstream</a></code>
-    <tr><td><dfn id=handler-peerconnection-onremovestream title=handler-PeerConnection-onremovestream><code>onremovestream</code></dfn> <td> <code title=event-stream-removestream><a href=#event-stream-removestream>removestream</a></code>
+   <tbody><tr><td><dfn id=handler-peerconnection-onconnecting title=handler-PeerConnection-onconnecting><code>onconnecting</code></dfn> <td> <code title=event-MediaStream-connecting><a href=#event-mediastream-connecting>connecting</a></code>
+    <tr><td><dfn id=handler-peerconnection-onopen title=handler-PeerConnection-onopen><code>onopen</code></dfn> <td> <code title=event-MediaStream-open><a href=#event-mediastream-open>open</a></code>
+<!--    <tr><td><dfn title="handler-PeerConnection-onerror"><code>onerror</code></dfn> <td> <code title="event-MediaStream-error">error</code>-->
+<!--    <tr><td><dfn title="handler-PeerConnection-onclose"><code>onclose</code></dfn> <td> <code title="event-MediaStream-close">close</code>-->
+    <tr><td><dfn id=handler-peerconnection-onmessage title=handler-PeerConnection-onmessage><code>onmessage</code></dfn> <td> <code title=event-MediaStream-message><a href=#event-mediastream-message>message</a></code>
+    <tr><td><dfn id=handler-peerconnection-onaddstream title=handler-PeerConnection-onaddstream><code>onaddstream</code></dfn> <td> <code title=event-MediaStream-addstream><a href=#event-mediastream-addstream>addstream</a></code>
+    <tr><td><dfn id=handler-peerconnection-onremovestream title=handler-PeerConnection-onremovestream><code>onremovestream</code></dfn> <td> <code title=event-MediaStream-removestream><a href=#event-mediastream-removestream>removestream</a></code>
   </table><hr><p>The <a href=#task-source>task source</a> for the <a href=#concept-task title=concept-task>tasks</a> listed in this section is the
   <a href=#networking-task-source>networking task source</a>.</p>
 
@@ -75983,7 +75993,7 @@
 var local = new PeerConnection('TURNS example.net', sendSignalingChannel);
 local.signalingChannel(...); // if we have a message from the other side, pass it along here
 
-// (aLocalStream is some GeneratedStream object)
+// (aLocalStream is some LocalMediaStream object)
 local.addStream(aLocalStream); // start sending video
 
 function sendSignalingChannel(message) {
@@ -76278,13 +76288,13 @@
 
   <h3 id=event-definitions-0><span class=secno>9.7 </span>Event definitions</h3>
 
-  <p>The <code title=event-stream-addstream><a href=#event-stream-addstream>addstream</a></code> and
-  <code title=event-stream-removestream><a href=#event-stream-removestream>removestream</a></code> events
+  <p>The <code title=event-MediaStream-addstream><a href=#event-mediastream-addstream>addstream</a></code> and
+  <code title=event-MediaStream-removestream><a href=#event-mediastream-removestream>removestream</a></code> events
   use the <code><a href=#streamevent>StreamEvent</a></code> interface:</p>
 
   <pre class=idl>interface <dfn id=streamevent>StreamEvent</dfn> : <a href=#event>Event</a> {
-  readonly attribute <a href=#stream>Stream</a>? <a href=#dom-streamevent-stream title=dom-StreamEvent-stream>stream</a>;
-  void <a href=#dom-streamevent-initstreamevent title=dom-StreamEvent-initStreamEvent>initStreamEvent</a>(in DOMString typeArg, in boolean canBubbleArg, in boolean cancelableArg, in <a href=#stream>Stream</a>? streamArg);
+  readonly attribute <a href=#mediastream>MediaStream</a>? <a href=#dom-streamevent-stream title=dom-StreamEvent-stream>stream</a>;
+  void <a href=#dom-streamevent-initstreamevent title=dom-StreamEvent-initStreamEvent>initStreamEvent</a>(in DOMString typeArg, in boolean canBubbleArg, in boolean cancelableArg, in <a href=#mediastream>MediaStream</a>? streamArg);
 };</pre>
 
   <div class=impl>
@@ -76294,10 +76304,10 @@
   similarly-named method in the DOM Events interfaces. <a href=#refsDOMEVENTS>[DOMEVENTS]</a></p>
 
   <p>The <dfn id=dom-streamevent-stream title=dom-StreamEvent-stream><code>stream</code></dfn>
-  attribute represents the <code><a href=#stream>Stream</a></code> object associated with
+  attribute represents the <code><a href=#mediastream>MediaStream</a></code> object associated with
   the event.</p>
 
-  <p><dfn id=fire-a-stream-event title="fire a stream event">Firing a stream event named <var title="">e</var></dfn> with a <code><a href=#stream>Stream</a></code> <var title="">stream</var> means that an event with the name <var title="">e</var>, which does not bubble (except where otherwise
+  <p><dfn id=fire-a-stream-event title="fire a stream event">Firing a stream event named <var title="">e</var></dfn> with a <code><a href=#mediastream>MediaStream</a></code> <var title="">stream</var> means that an event with the name <var title="">e</var>, which does not bubble (except where otherwise
   stated) and is not cancelable (except where otherwise stated), and
   which uses the <code><a href=#streamevent>StreamEvent</a></code> interface with the <code title=dom-StreamEvent-stream><a href=#dom-streamevent-stream>stream</a></code> attribute set to <var title="">stream</var>, must be created and dispatched at the given
   target.</p>
@@ -76309,15 +76319,15 @@
 
   <p><i>This section is non-normative.</i></p>
 
-  <p>The following event fires on <code><a href=#stream>Stream</a></code> objects:</p>
+  <p>The following event fires on <code><a href=#mediastream>MediaStream</a></code> objects:</p>
 
   <table><thead><tr><th>Event name
      <th>Interface
      <th>Fired when...
 
-   <tbody><tr><td><dfn id=event-stream-ended title=event-stream-ended><code>ended</code></dfn>
+   <tbody><tr><td><dfn id=event-mediastream-ended title=event-MediaStream-ended><code>ended</code></dfn>
      <td><code><a href=#event>Event</a></code>
-     <td>The <code><a href=#stream>Stream</a></code> object will no longer stream any data, either because the user revoked the permissions, or because the source device has been ejected, or because the remote peer stopped sending data, or because the <code title=dom-stream-stop><a href=#dom-stream-stop>stop()</a></code> method was invoked.
+     <td>The <code><a href=#mediastream>MediaStream</a></code> object will no longer stream any data, either because the user revoked the permissions, or because the source device has been ejected, or because the remote peer stopped sending data, or because the <code title=dom-MediaStream-stop><a href=#dom-mediastream-stop>stop()</a></code> method was invoked.
 
   </table><p>The following events fire on <code><a href=#peerconnection>PeerConnection</a></code> objects:</p>
 
@@ -76325,35 +76335,35 @@
      <th>Interface
      <th>Fired when...
 
-   <tbody><tr><td><dfn id=event-stream-connecting title=event-stream-connecting><code>connecting</code></dfn>
+   <tbody><tr><td><dfn id=event-mediastream-connecting title=event-MediaStream-connecting><code>connecting</code></dfn>
      <td><code><a href=#event>Event</a></code>
      <td>The ICE Agent has begun negotiating with the peer. This can happen multiple times during the lifetime of the <code><a href=#peerconnection>PeerConnection</a></code> object.
 
-    <tr><td><dfn id=event-stream-open title=event-stream-open><code>open</code></dfn>
+    <tr><td><dfn id=event-mediastream-open title=event-MediaStream-open><code>open</code></dfn>
      <td><code><a href=#event>Event</a></code>
      <td>The ICE Agent has finished negotiating with the peer.
 
 <!--
     <tr>
-     <td><dfn title="event-stream-error"><code>error</code></dfn>
+     <td><dfn title="event-MediaStream-error"><code>error</code></dfn>
      <td><code>Event</code>
      <td>
 
     <tr>
-     <td><dfn title="event-stream-close"><code>close</code></dfn>
+     <td><dfn title="event-MediaStream-close"><code>close</code></dfn>
      <td><code>Event</code>
      <td>The <code title="dom-PeerConnection-close">close()</code> method was called.
 -->
 
-    <tr><td><dfn id=event-stream-message title=event-stream-message><code>message</code></dfn>
+    <tr><td><dfn id=event-mediastream-message title=event-MediaStream-message><code>message</code></dfn>
      <td><code><a href=#messageevent>MessageEvent</a></code>
      <td>A <a href=#data-udp-media-stream>data UDP media stream</a> message was received.
 
-    <tr><td><dfn id=event-stream-addstream title=event-stream-addstream><code>addstream</code></dfn>
+    <tr><td><dfn id=event-mediastream-addstream title=event-MediaStream-addstream><code>addstream</code></dfn>
      <td><code><a href=#streamevent>StreamEvent</a></code>
      <td>A new stream has been added to the <code title=dom-PeerConnection-remoteStreams><a href=#dom-peerconnection-remotestreams>remoteStreams</a></code> array.
 
-    <tr><td><dfn id=event-stream-removestream title=event-stream-removestream><code>removestream</code></dfn>
+    <tr><td><dfn id=event-mediastream-removestream title=event-MediaStream-removestream><code>removestream</code></dfn>
      <td><code><a href=#streamevent>StreamEvent</a></code>
      <td>A stream has been removed from the <code title=dom-PeerConnection-remoteStreams><a href=#dom-peerconnection-remotestreams>remoteStreams</a></code> array.
 

Modified: source
===================================================================
--- source	2011-06-17 19:57:59 UTC (rev 6255)
+++ source	2011-06-17 22:21:22 UTC (rev 6256)
@@ -85258,7 +85258,7 @@
 
 [Callback=FunctionOnly, NoInterfaceObject]
 interface <dfn>NavigatorUserMediaSuccessCallback</dfn> {
-  void <span title="dom-NavigatorUserMediaSuccessCallback-handleEvent">handleEvent</span>(in <span>GeneratedStream</span> stream);
+  void <span title="dom-NavigatorUserMediaSuccessCallback-handleEvent">handleEvent</span>(in <span>LocalMediaStream</span> stream);
 };
 
 [NoInterfaceObject]<!-- this is based on PositionError in geolocation -->
@@ -85308,7 +85308,7 @@
     </dl>
 
     <p>If the user accepts, the <var title="">successCallback</var> is
-    invoked, with a suitable <code>GeneratedStream</code> object as
+    invoked, with a suitable <code>LocalMediaStream</code> object as
     its argument.</p>
 
     <p>If the user declines, the <var title="">errorCallback</var> (if
@@ -85427,7 +85427,7 @@
 
     <p>Prompt the user in a user-agent-specific manner for permission
     to provide the <span>entry script</span>'s <span>origin</span>
-    with a <code>GeneratedStream</code> object representing a media
+    with a <code>LocalMediaStream</code> object representing a media
     stream.</p>
 
     <p>If <var title="">audio</var> is true, then the provided media
@@ -85462,7 +85462,7 @@
    </li>
 
    <li><p>Let <var title="">stream</var> be the
-   <code>GeneratedStream</code> object for which the user granted
+   <code>LocalMediaStream</code> object for which the user granted
    permission.</p></li>
 
    <li><p><span>Queue a task</span> to invoke <var
@@ -85539,18 +85539,23 @@
 
   <h3>Stream API</h3>
 
-  <p>The <code>Stream</code> interface is used to represent streams,
-  typically (but not necessarily) of audio and/or video content, e.g.
-  from a local camera or a remote site.</p>
+  <p>The <code>MediaStream</code> interface is used to represent
+  streams of media data, typically (but not necessarily) of audio
+  and/or video content, e.g. from a local camera or a remote site. The
+  data from a <code>MediaStream</code> object does not necessarily
+  have a canonical binary form; for example, it could just be "the
+  video currently coming from the user's video camera". This allows
+  user agents to manipulate media streams in whatever fashion is most
+  suitable on the user's platform.</p>
 
-  <p>The <code>GeneratedStream</code> interface is used when the user
+  <p>The <code>LocalMediaStream</code> interface is used when the user
   agent is generating the stream's data (e.g. from a camera or
   streaming it from a local video file). It allows authors to control
   individual tracks during the generation of the content, e.g. to
   allow the user to temporarily disable a local camera during a
   video-conference chat.</p>
 
-  <p>When a <code>GeneratedStream</code> object is being generated
+  <p>When a <code>LocalMediaStream</code> object is being generated
   from a local file (as opposed to a live audio/video source), the
   user agent should stream the data from the file in real time, not
   all at once. This reduces the ease with which pages can distinguish
@@ -85558,31 +85563,34 @@
   user's privacy.</p>
 
   <!-- v2: support reading the bits from the stream directly, for use
-  with streaming over WebSocket? Or do we rely on FileReader for that? -->
+  with streaming over WebSocket? Or do we rely on FileReader for that?
+  sicking suggests defining a DataStream or BlobStream interface that
+  you can get from a Stream to get to the underlying data; such an
+  object would then be readable using the File API -->
 
-  <pre class="idl">interface <dfn>Stream</dfn> {
-  readonly attribute DOMString <span title="dom-stream-label">label</span>;
-  <span>StreamRecorder</span> <span title="dom-stream-record">record</span>();
+  <pre class="idl">interface <dfn>MediaStream</dfn> {
+  readonly attribute DOMString <span title="dom-MediaStream-label">label</span>;
+  <span>MediaStreamRecorder</span> <span title="dom-MediaStream-record">record</span>();
 <!--
-  const unsigned short <span title="dom-stream-LOADING">LOADING</span> = 0; -->
-  const unsigned short <span title="dom-stream-LIVE">LIVE</span> = 1;
-  const unsigned short <span title="dom-stream-ENDED">ENDED</span> = 2;
-  readonly attribute unsigned short <span title="dom-stream-readyState">readyState</span>;
-           attribute <span>Function</span>? <span title="handler-stream-onended">onended</span>;
+  const unsigned short <span title="dom-MediaStream-LOADING">LOADING</span> = 0; -->
+  const unsigned short <span title="dom-MediaStream-LIVE">LIVE</span> = 1;
+  const unsigned short <span title="dom-MediaStream-ENDED">ENDED</span> = 2;
+  readonly attribute unsigned short <span title="dom-MediaStream-readyState">readyState</span>;
+           attribute <span>Function</span>? <span title="handler-MediaStream-onended">onended</span>;
 };
-<span>Stream</span> implements <span>EventTarget</span>;
+<span>MediaStream</span> implements <span>EventTarget</span>;
 
-interface <dfn>GeneratedStream</dfn> : <span>Stream</span> {
-  void <span title="dom-stream-stop">stop</span>();
+interface <dfn>LocalMediaStream</dfn> : <span>MediaStream</span> {
+  void <span title="dom-MediaStream-stop">stop</span>();
 
   // track control
-  readonly attribute <span>MultipleTrackList</span> <span title="dom-stream-audioTracks">audioTracks</span>;
-  readonly attribute <span>ExclusiveTrackList</span> <span title="dom-stream-videoTracks">videoTracks</span>;
+  readonly attribute <span>MultipleTrackList</span> <span title="dom-MediaStream-audioTracks">audioTracks</span>;
+  readonly attribute <span>ExclusiveTrackList</span> <span title="dom-MediaStream-videoTracks">videoTracks</span>;
 };</pre>
 
   <dl class="domintro">
 
-   <dt><var title="">stream</var> . <code title="dom-stream-label">label</code></dt>
+   <dt><var title="">stream</var> . <code title="dom-MediaStream-label">label</code></dt>
 
    <dd>
 
@@ -85593,18 +85601,18 @@
    </dd>
 
 
-   <dt><var title="">recorder</var> = <var title="">stream</var> . <code title="dom-stream-record">record</code>()</dt>
+   <dt><var title="">recorder</var> = <var title="">stream</var> . <code title="dom-MediaStream-record">record</code>()</dt>
 
    <dd>
 
     <p>Begins recording the stream. The returned
-    <code>StreamRecorder</code> object provides access to the recorded
-    data.</p>
+    <code>MediaStreamRecorder</code> object provides access to the
+    recorded data.</p>
 
    </dd>
 
 
-   <dt><var title="">stream</var> . <code title="dom-stream-stop">stop</code>()</dt>
+   <dt><var title="">stream</var> . <code title="dom-MediaStream-stop">stop</code>()</dt>
 
    <dd>
 
@@ -85613,21 +85621,22 @@
    </dd>
 
 
-   <dt><var title="">stream</var> . <code title="dom-stream-audioTracks">audioTracks</code></dt>
+   <dt><var title="">stream</var> . <code title="dom-MediaStream-audioTracks">audioTracks</code></dt>
 
    <dd>
 
     <p>Returns a <code>MultipleTrackList</code> object representing
-    the audio tracks available for mixing into the <code>GeneratedStream</code>'s stream.</p>
+    the audio tracks available for mixing into the
+    <code>LocalMediaStream</code>'s stream.</p>
 
    </dd>
 
-   <dt><var title="">stream</var> . <code title="dom-stream-videoTracks">videoTracks</code></dt>
+   <dt><var title="">stream</var> . <code title="dom-MediaStream-videoTracks">videoTracks</code></dt>
 
    <dd>
 
     <p>Returns an <code>ExclusiveTrackList</code> object representing
-    the video tracks available for the <code>GeneratedStream</code>'s
+    the video tracks available for the <code>LocalMediaStream</code>'s
     stream.</p>
 
    </dd>
@@ -85638,19 +85647,19 @@
   <div class="impl">
 
   <p>The <dfn
-  title="dom-stream-readyState"><code>readyState</code></dfn>
+  title="dom-MediaStream-readyState"><code>readyState</code></dfn>
   attribute represents the state of the stream. It must return the
   value to which the user agent last set it (as defined below). It can
   have the following values:</p>
 
   <dl>
 
-   <dt><dfn title="dom-stream-LIVE"><code>LIVE</code></dfn> (numeric value 1)</dt>
+   <dt><dfn title="dom-MediaStream-LIVE"><code>LIVE</code></dfn> (numeric value 1)</dt>
 
    <dd>The stream is active (the user agent is making a best-effort
    attempt to receive or generate data in real time).</dd>
 
-   <dt><dfn title="dom-stream-ENDED"><code>ENDED</code></dfn> (numeric value 2)</dt>
+   <dt><dfn title="dom-MediaStream-ENDED"><code>ENDED</code></dfn> (numeric value 2)</dt>
 
    <dd>The stream has finished (the user agent is no longer receiving
    or generating data, and will never receive or generate more data
@@ -85658,12 +85667,12 @@
 
   </dl>
 
-  <p>When a <code>Stream</code> object is created, its <code
-  title="dom-stream-readyState">readyState</code> attribute must be
-  set to <code title="dom-stream-LIVE">LIVE</code> (1).</p>
+  <p>When a <code>MediaStream</code> object is created, its <code
+  title="dom-MediaStream-readyState">readyState</code> attribute must be
+  set to <code title="dom-MediaStream-LIVE">LIVE</code> (1).</p>
 
-  <p>When a <code>Stream</code> object ends for any reason other than
-  the <code title="dom-stream-stop">stop()</code> method being invoked
+  <p>When a <code>MediaStream</code> object ends for any reason other than
+  the <code title="dom-MediaStream-stop">stop()</code> method being invoked
   (e.g. because the user rescinds the permission for the page to use
   the local camera, or because the data comes from a finite file and
   the file's end has been reached and the user has not requested that
@@ -85674,19 +85683,19 @@
   <ol>
 
    <li><p>If the object's <code
-   title="dom-stream-readyState">readyState</code> attribute has the
-   value <code title="dom-stream-ENDED">ENDED</code> (2) already, then
-   abort these steps. (The <code title="dom-stream-stop">stop()</code>
+   title="dom-MediaStream-readyState">readyState</code> attribute has the
+   value <code title="dom-MediaStream-ENDED">ENDED</code> (2) already, then
+   abort these steps. (The <code title="dom-MediaStream-stop">stop()</code>
    method was probably called just before the stream stopped for other
    reasons, e.g. the user clicked an in-page stop button and then the
    user-agent-provided stop button.)</p></li>
 
    <li><p>Set the object's <code
-   title="dom-stream-readyState">readyState</code> attribute to <code
-   title="dom-stream-ENDED">ENDED</code> (2).</p></li>
+   title="dom-MediaStream-readyState">readyState</code> attribute to <code
+   title="dom-MediaStream-ENDED">ENDED</code> (2).</p></li>
 
    <li><p><span>Fire a simple event</span> named <code
-   title="event-stream-ended">ended</code> at the object.</p></li>
+   title="event-MediaStream-ended">ended</code> at the object.</p></li>
 
   </ol>
 
@@ -85699,9 +85708,9 @@
 
   <hr>
 
-  <p>When a <code>GeneratedStream</code> object is created, the user
+  <p>When a <code>LocalMediaStream</code> object is created, the user
   agent must generate a globally unique identifier string, and must
-  initialize the object's <code title="dom-stream-label">label</code>
+  initialize the object's <code title="dom-MediaStream-label">label</code>
   attribute to that string. Such strings must only use characters in
   the ranges U+0021, U+0023 to U+0027, U+002A to U+002B, U+002D to
   U+002E, U+0030 to U+0039, U+0041 to U+005A, U+005E to U+007E, and
@@ -85709,36 +85718,36 @@
   including hyphens; the ranges above comes from RFC4574 (the a=label:
   thing in SDP) -->
 
-  <p>When a <code>Stream</code> is created to represent a stream
+  <p>When a <code>MediaStream</code> is created to represent a stream
   obtained from a remote peer, the <code
-  title="dom-stream-label">label</code> attribute is initialized from
+  title="dom-MediaStream-label">label</code> attribute is initialized from
   information provided by the remote source.</p> <!-- described below
   -->
 
-  <p>The <dfn title="dom-stream-label"><code>label</code></dfn>
+  <p>The <dfn title="dom-MediaStream-label"><code>label</code></dfn>
   attribute must return the value to which it was initialized when the
   object was created.</p>
 
   <hr>
 
   <p>When the <dfn
-  title="dom-stream-record"><code>record()</code></dfn> method is
+  title="dom-MediaStream-record"><code>record()</code></dfn> method is
   invoked, the user agent must return a new
-  <code>StreamRecorder</code> object associated with the stream.</p>
+  <code>MediaStreamRecorder</code> object associated with the stream.</p>
 
   <hr>
 
-  <p>When a <code>GeneratedStream</code> object's <dfn
-  title="dom-stream-stop"><code>stop()</code></dfn> method is invoked,
-  the user agent must <span>queue a task</span> that runs the
+  <p>When a <code>LocalMediaStream</code> object's <dfn
+  title="dom-MediaStream-stop"><code>stop()</code></dfn> method is
+  invoked, the user agent must <span>queue a task</span> that runs the
   following steps:</p>
 
   <ol>
 
    <li><p>If the object's <code
-   title="dom-stream-readyState">readyState</code> attribute is in the
-   <code title="dom-stream-ENDED">ENDED</code> (2) state, then abort
-   these steps.</p></li>
+   title="dom-MediaStream-readyState">readyState</code> attribute is
+   in the <code title="dom-MediaStream-ENDED">ENDED</code> (2) state,
+   then abort these steps.</p></li>
 
    <li><p>Permanently stop the generation of data for the stream. If
    the data is being generated from a live source (e.g. a microphone
@@ -85749,46 +85758,46 @@
    ignored.</p></li>
 
    <li><p>Set the object's <code
-   title="dom-stream-readyState">readyState</code> attribute to <code
-   title="dom-stream-ENDED">ENDED</code> (2).</p></li>
+   title="dom-MediaStream-readyState">readyState</code> attribute to
+   <code title="dom-MediaStream-ENDED">ENDED</code> (2).</p></li>
 
    <li><p><span>Fire a simple event</span> named <code
-   title="event-stream-ended">ended</code> at the object.</p></li>
+   title="event-MediaStream-ended">ended</code> at the object.</p></li>
 
   </ol>
 
   <p>The <span>task source</span> for the <span
   title="concept-task">tasks</span> queued for the <code
-  title="dom-stream-stop">stop()</code> method is the <span>DOM
+  title="dom-MediaStream-stop">stop()</code> method is the <span>DOM
   manipulation task source</span>.</p>
 
   <hr>
 
-  <p>A <code>GeneratedStream</code> can have multiple audio and video
+  <p>A <code>LocalMediaStream</code> can have multiple audio and video
   sources (e.g. because the user has multiple microphones, or because
   the real source of the stream is a <span>media resource</span> with
   many media tracks). The stream represented by a
-  <code>GeneratedStream</code> has either zero or one audio track and
+  <code>LocalMediaStream</code> has either zero or one audio track and
   either zero or one video track.</p>
 
   <div class="impl">
 
   <p>The <dfn
-  title="dom-stream-audioTracks"><code>audioTracks</code></dfn>
-  attribute of a <code>GeneratedStream</code> object must return a
+  title="dom-MediaStream-audioTracks"><code>audioTracks</code></dfn>
+  attribute of a <code>LocalMediaStream</code> object must return a
   <span>live</span> <code>MultipleTrackList</code> object representing
-  the audio sources available to the <code>GeneratedStream</code>. The
+  the audio sources available to the <code>LocalMediaStream</code>. The
   same object must be returned each time. The
-  <code>GeneratedStream</code>'s output audio track must be the result
+  <code>LocalMediaStream</code>'s output audio track must be the result
   of mixing all the enabled audio sources, if any.</p>
 
   <p>The <dfn
-  title="dom-stream-videoTracks"><code>videoTracks</code></dfn>
-  attribute of a <code>GeneratedStream</code> object must return a
+  title="dom-MediaStream-videoTracks"><code>videoTracks</code></dfn>
+  attribute of a <code>LocalMediaStream</code> object must return a
   <span>live</span> <code>ExclusiveTrackList</code> object
   representing the video sources available to the
-  <code>GeneratedStream</code>. The same object must be returned each
-  time. The <code>GeneratedStream</code>'s output video track must be
+  <code>LocalMediaStream</code>. The same object must be returned each
+  time. The <code>LocalMediaStream</code>'s output video track must be
   the selected video source, if any.</p>
 
   <p>User agents may label audio and video sources (e.g. "Internal
@@ -85796,14 +85805,14 @@
   title="dom-TrackList-getLabel">getLabel()</code> methods (on the
   <code>MultipleTrackList</code> and <code>ExclusiveTrackList</code>
   objects) must use the labels the user agent has assigned as the
-  track labels of the source tracks of the <code>GeneratedStream</code>
+  track labels of the source tracks of the <code>LocalMediaStream</code>
   object. Otherwise, the <code
   title="dom-TrackList-getLabel">getLabel()</code> methods must use the
   empty string as the track labels of the source tracks of the
-  <code>GeneratedStream</code> object. The <code
+  <code>LocalMediaStream</code> object. The <code
   title="dom-TrackList-getLanguage">getLanguage()</code> methods must
   use the empty string as the track language for all the source tracks
-  of the <code>GeneratedStream</code> object.</p>
+  of the <code>LocalMediaStream</code> object.</p>
 
   </div>
 
@@ -85812,13 +85821,13 @@
   <p>The following are the <span>event handlers</span> (and their
   corresponding <span title="event handler event type">event handler
   event types</span>) that must be supported, as IDL attributes, by
-  all objects implementing the <code>Stream</code> interface:</p>
+  all objects implementing the <code>MediaStream</code> interface:</p>
 
   <table>
    <thead>
     <tr><th><span title="event handlers">Event handler</span> <th><span>Event handler event type</span>
    <tbody>
-    <tr><td><dfn title="handler-stream-onended"><code>onended</code></dfn> <td> <code title="event-stream-ended">ended</code>
+    <tr><td><dfn title="handler-MediaStream-onended"><code>onended</code></dfn> <td> <code title="event-MediaStream-ended">ended</code>
   </table>
 
   </div>
@@ -85848,8 +85857,8 @@
 
   </div>
 
-  <pre class="idl">interface <dfn>StreamRecorder</dfn> {
-  void <span title="dom-StreamRecorder-getRecordedData">getRecordedData</span>(in <span>BlobCallback</span>? callback);
+  <pre class="idl">interface <dfn>MediaStreamRecorder</dfn> {
+  void <span title="dom-MediaStreamRecorder-getRecordedData">getRecordedData</span>(in <span>BlobCallback</span>? callback);
 };
 
 [Callback=FunctionOnly, NoInterfaceObject]
@@ -85859,7 +85868,7 @@
 
   <dl class="domintro">
 
-   <dt><var title="">recorder</var> . <code title="dom-StreamRecorder-getRecordedData">getRecordedData</code>(<var title="">callback</var>)</dt>
+   <dt><var title="">recorder</var> . <code title="dom-MediaStreamRecorder-getRecordedData">getRecordedData</code>(<var title="">callback</var>)</dt>
 
    <dd>
 
@@ -85873,7 +85882,7 @@
   <div class="impl">
 
   <p>When the <dfn
-  title="dom-StreamRecorder-getRecordedData"><code>getRecordedData()</code></dfn>
+  title="dom-MediaStreamRecorder-getRecordedData"><code>getRecordedData()</code></dfn>
   method is called, the user agent must run the following steps:</p>
 
   <ol>
@@ -85887,9 +85896,9 @@
    exception here without changing the algorithm) -->
 
    <li><p>Let <var title="">data</var> be the data that was streamed
-   by the <code>Stream</code> object from which the
-   <code>StreamRecorder</code> was created since the creation of the
-   <code>StreamRecorder</code> object.</li>
+   by the <code>MediaStream</code> object from which the
+   <code>MediaStreamRecorder</code> was created since the creation of the
+   <code>MediaStreamRecorder</code> object.</li>
 
    <li><p>Return, and run the remaining steps asynchronously.</p></li>
 
@@ -85908,9 +85917,9 @@
   </ol>
 
   <p class="note">The <code
-  title="dom-StreamRecorder-getRecordedData">getRecordedData()</code>
+  title="dom-MediaStreamRecorder-getRecordedData">getRecordedData()</code>
   method can be called multiple times on one
-  <code>StreamRecorder</code> object; each time, it will create a new
+  <code>MediaStreamRecorder</code> object; each time, it will create a new
   file as if this was the first time the method was being called. In
   particular, the method does not stop or reset the recording when the
   method is called.</p>
@@ -85977,7 +85986,7 @@
 
   <pre class="idl">[Supplemental]
 interface <dfn title="dom-URL">URL</dfn> {
-  static DOMString <span title="dom-URL-createObjectURL">createObjectURL</span>(in <span>Stream</span> stream);
+  static DOMString <span title="dom-URL-createObjectURL">createObjectURL</span>(in <span>MediaStream</span> stream);
 };</pre>
 
   <dl class="domintro">
@@ -85986,7 +85995,7 @@
 
    <dd>
 
-    <p>Mints a <span>Blob URL</span> to refer to the given <code>Stream</code>.</p>
+    <p>Mints a <span>Blob URL</span> to refer to the given <code>MediaStream</code>.</p>
 
    </dd>
 
@@ -85996,9 +86005,9 @@
 
   <p>When the <dfn
   title="dom-URL-createObjectURL"><code>createObjectURL()</code></dfn>
-  method is called with a <code>Stream</code> argument, the user agent
+  method is called with a <code>MediaStream</code> argument, the user agent
   must return a unique <span>Blob URL</span> for the given
-  <code>Stream</code>. <a href="#refsFILEAPI">[FILEAPI]</a></p>
+  <code>MediaStream</code>. <a href="#refsFILEAPI">[FILEAPI]</a></p>
 
   <p>For audio and video streams, the data exposed on that stream must
   be in a format supported by the user agent for use in
@@ -86008,8 +86017,8 @@
   File API specification calls a <span>Blob URI</span>, except that
   anything in the definition of that feature that refers to
   <code>File</code> and <code>Blob</code> objects is hereby extended
-  to also apply to <code>Stream</code> and
-  <code>GeneratedStream</code> objects.</p>
+  to also apply to <code>MediaStream</code> and
+  <code>LocalMediaStream</code> objects.</p>
 
   </div>
 
@@ -86074,10 +86083,10 @@
   readonly attribute unsigned short <span title="dom-PeerConnection-readyState">readyState</span>;
 
   void <span title="dom-PeerConnection-send">send</span>(in DOMString text); <!-- v2: binary -->
-  void <span title="dom-PeerConnection-addStream">addStream</span>(in <span>Stream</span> stream);
-  void <span title="dom-PeerConnection-removeStream">removeStream</span>(in <span>Stream</span> stream);
-  readonly attribute <span>Stream</span>[] <span title="dom-PeerConnection-localStreams">localStreams</span>;
-  readonly attribute <span>Stream</span>[] <span title="dom-PeerConnection-remoteStreams">remoteStreams</span>;
+  void <span title="dom-PeerConnection-addStream">addStream</span>(in <span>MediaStream</span> stream);
+  void <span title="dom-PeerConnection-removeStream">removeStream</span>(in <span>MediaStream</span> stream);
+  readonly attribute <span>MediaStream</span>[] <span title="dom-PeerConnection-localStreams">localStreams</span>;
+  readonly attribute <span>MediaStream</span>[] <span title="dom-PeerConnection-remoteStreams">remoteStreams</span>;
 
   void <span title="dom-PeerConnection-close">close</span>();
 
@@ -86210,7 +86219,7 @@
     every message will be received.</p>
 
     <p>When a message sent in this manner from the other peer is
-    received, a <code title="event-stream-message">message</code>
+    received, a <code title="event-MediaStream-message">message</code>
     event is fired at the <code>PeerConnection</code> object.</p>
 
     <p>The maximum length of <var title="">text</var> is 504 bytes
@@ -86228,7 +86237,7 @@
     peer.</p>
 
     <p>When the other peer starts sending a stream in this manner, an
-    <code title="event-stream-addstream">addstream</code>
+    <code title="event-MediaStream-addstream">addstream</code>
     event is fired at the <code>PeerConnection</code> object.</p>
 
    </dd>
@@ -86241,7 +86250,7 @@
 
     <p>When the other peer stops sending a stream in this manner, a
     <code
-    title="event-stream-removestream">removestream</code>
+    title="event-MediaStream-removestream">removestream</code>
     event is fired at the <code>PeerConnection</code> object.</p>
 
    </dd>
@@ -86265,8 +86274,8 @@
     is currently receiving from the remote peer.</p>
 
     <p>This array is updated when <code
-    title="event-stream-addstream">addstream</code> and <code
-    title="event-stream-removestream">removestream</code>
+    title="event-MediaStream-addstream">addstream</code> and <code
+    title="event-MediaStream-removestream">removestream</code>
     events are fired.</p>
 
    </dd>
@@ -86439,12 +86448,12 @@
 
    <li><p>Let <var title="">connection</var>'s <code
    title="dom-PeerConnection-localStreams">localStreams</code>
-   attribute be an empty read-only <code>Stream</code> array. <a
+   attribute be an empty read-only <code>MediaStream</code> array. <a
    href="#refsWEBIDL">[WEBIDL]</a></p></li>
 
    <li><p>Let <var title="">connection</var>'s <code
    title="dom-PeerConnection-remoteStreams">remoteStreams</code>
-   attribute be an empty read-only <code>Stream</code> array. <a
+   attribute be an empty read-only <code>MediaStream</code> array. <a
    href="#refsWEBIDL">[WEBIDL]</a></p></li>
 
    <li><p>Return <var title="">connection</var>, but continue these
@@ -86474,7 +86483,7 @@
    <span>queue a task</span> that sets it to <code
    title="dom-PeerConnection-NEGOTIATING">NEGOTIATING</code> (1) and
    then <span title="fire a simple event">fires a simple event</span>
-   named <code title="event-stream-connecting">connecting</code> at the
+   named <code title="event-MediaStream-connecting">connecting</code> at the
    <code>PeerConnection</code> object.</p>
 
   </ol>
@@ -86500,7 +86509,7 @@
 
   </ol>
 
-  <p>All streams represented by <code>Stream</code> objects must be
+  <p>All streams represented by <code>MediaStream</code> objects must be
   marked as "sendonly" by the peer that initially adds the stream to
   the session. The <code>PeerConnection</code> API does not support
   bidirectional ("sendrecv") audio or video media streams. <a
@@ -86520,10 +86529,10 @@
   the stream is flowing.</p>
 
   <p>All SDP media descriptions for streams represented by
-  <code>Stream</code> objects must include a label attribute ("<code
+  <code>MediaStream</code> objects must include a label attribute ("<code
   title="">a=label:</code>") whose value is the value of the
-  <code>Stream</code> object's <code
-  title="dom-stream-label">label</code> attribute. <a
+  <code>MediaStream</code> object's <code
+  title="dom-MediaStream-label">label</code> attribute. <a
   href="#refsSDP">[SDP]</a> <a href="#refsSDPLABEL">[SDPLABEL]</a></p>
 
   <p><span title="PeerConnection ICE
@@ -86544,16 +86553,17 @@
    <code>PeerConnection</code> whose ICE Agent is expecting this
    media.</p></li>
 
-   <li><p>If there is already a <code>Stream</code> object for the
+   <li><p>If there is already a <code>MediaStream</code> object for the
    media stream to which this component belongs, then associate the
    component with that media stream and abort these steps. (Some media
    streams have multiple components; this API does not expose the
    role of these individual components in ICE.)</p></li>
 
-   <li><p>Create a <code>Stream</code> object to represent the media
-   stream. Set its <code title="attr-stream-label">label</code>
-   attribute to the value of the SDP Label attribute for that
-   component's media stream.</p></li>
+   <li><p>Create a <code>MediaStream</code> object to represent the
+   media stream. Set its <code
+   title="dom-MediaStream-label">label</code> attribute to the value
+   of the SDP Label attribute for that component's media
+   stream.</p></li>
 
    <li>
 
@@ -86567,14 +86577,14 @@
      steps.</p></li> <!-- close() was probably called just before this
      task ran -->
 
-     <li><p>Add the newly created <code>Stream</code> object to the
+     <li><p>Add the newly created <code>MediaStream</code> object to the
      end of <var title="">connection</var>'s <code
      title="dom-PeerConnection-remoteStreams">remoteStreams</code>
      array.</p></li>
 
      <li><p><span>Fire a stream event</span> named <code
-     title="event-stream-addstream">addstream</code> with the newly
-     created <code>Stream</code> object at the <var
+     title="event-MediaStream-addstream">addstream</code> with the newly
+     created <code>MediaStream</code> object at the <var
      title="">connection</var> object.</p></li>
 
     </ol>
@@ -86594,7 +86604,7 @@
    <code>PeerConnection</code> whose <span><code>PeerConnection</code>
    ICE Agent</span> has determined that a stream is being removed.</p></li>
 
-   <li><p>Let <var title="">stream</var> be the <code>Stream</code>
+   <li><p>Let <var title="">stream</var> be the <code>MediaStream</code>
    object that represents the media stream being removed, if any. If
    there isn't one, then abort these steps.</p></li>
 
@@ -86616,7 +86626,7 @@
      array.</p></li>
 
      <li><p><span>Fire a stream event</span> named <code
-     title="event-stream-removestream">removestream</code> with <var
+     title="event-MediaStream-removestream">removestream</code> with <var
      title="">stream</var> at the <var title="">connection</var>
      object.</p></li>
 
@@ -86698,7 +86708,7 @@
    readiness state</span> to <code
    title="dom-PeerConnection-NEGOTIATING">NEGOTIATING</code> (1) and
    then <span title="fire a simple event">fires a simple event</span>
-   named <code title="event-stream-connecting">connecting</code> at the
+   named <code title="event-MediaStream-connecting">connecting</code> at the
    <code>PeerConnection</code> object.</p>
 
   </ol>
@@ -86710,7 +86720,7 @@
   <span><code>PeerConnection</code> readiness state</span> to <code
   title="dom-PeerConnection-ACTIVE">ACTIVE</code> (2) and then <span
   title="fire a simple event">fires a simple event</span> named <code
-  title="event-stream-open">open</code> at the
+  title="event-MediaStream-open">open</code> at the
   <code>PeerConnection</code> object.</p>
 
   <p>When a <span><code>PeerConnection</code> ICE Agent</span>
@@ -86720,7 +86730,7 @@
   <span><code>PeerConnection</code> readiness state</span> to <code
   title="dom-PeerConnection-NEGOTIATING">NEGOTIATING</code> (1) and
   then <span title="fire a simple event">fires a simple event</span>
-  named <code title="event-stream-connecting">connecting</code> at the
+  named <code title="event-MediaStream-connecting">connecting</code> at the
   <code>PeerConnection</code> object.</p>
                                    
   <p>The <dfn title="dom-PeerConnection-readyState"><code
@@ -86840,7 +86850,7 @@
   title="dom-PeerConnection-localStreams"><code>localStreams</code></dfn>
   and <dfn
   title="dom-PeerConnection-remoteStreams"><code>remoteStreams</code></dfn>
-  attributes must return the read-only <code>Stream</code> arrays that
+  attributes must return the read-only <code>MediaStream</code> arrays that
   the attributes were respectively set to when the
   <code>PeerConnection</code>'s constructor ran.</p>
   
@@ -86865,7 +86875,7 @@
    title="dom-PeerConnection-CLOSED">CLOSED</code> (3).</p></li>
 <!--
    <li><p><span>Queue a task</span> to <span>fire a simple
-   event</span> named <code title="event-stream-close">close</code> at the
+   event</span> named <code title="event-MediaStream-close">close</code> at the
    <code>PeerConnection</code> object.</p></li>
 -->
   </ol>
@@ -86888,13 +86898,13 @@
    <thead>
     <tr><th><span title="event handlers">Event handler</span> <th><span>Event handler event type</span>
    <tbody>
-    <tr><td><dfn title="handler-PeerConnection-onconnecting"><code>onconnecting</code></dfn> <td> <code title="event-stream-connecting">connecting</code>
-    <tr><td><dfn title="handler-PeerConnection-onopen"><code>onopen</code></dfn> <td> <code title="event-stream-open">open</code>
-<!--    <tr><td><dfn title="handler-PeerConnection-onerror"><code>onerror</code></dfn> <td> <code title="event-stream-error">error</code>-->
-<!--    <tr><td><dfn title="handler-PeerConnection-onclose"><code>onclose</code></dfn> <td> <code title="event-stream-close">close</code>-->
-    <tr><td><dfn title="handler-PeerConnection-onmessage"><code>onmessage</code></dfn> <td> <code title="event-stream-message">message</code>
-    <tr><td><dfn title="handler-PeerConnection-onaddstream"><code>onaddstream</code></dfn> <td> <code title="event-stream-addstream">addstream</code>
-    <tr><td><dfn title="handler-PeerConnection-onremovestream"><code>onremovestream</code></dfn> <td> <code title="event-stream-removestream">removestream</code>
+    <tr><td><dfn title="handler-PeerConnection-onconnecting"><code>onconnecting</code></dfn> <td> <code title="event-MediaStream-connecting">connecting</code>
+    <tr><td><dfn title="handler-PeerConnection-onopen"><code>onopen</code></dfn> <td> <code title="event-MediaStream-open">open</code>
+<!--    <tr><td><dfn title="handler-PeerConnection-onerror"><code>onerror</code></dfn> <td> <code title="event-MediaStream-error">error</code>-->
+<!--    <tr><td><dfn title="handler-PeerConnection-onclose"><code>onclose</code></dfn> <td> <code title="event-MediaStream-close">close</code>-->
+    <tr><td><dfn title="handler-PeerConnection-onmessage"><code>onmessage</code></dfn> <td> <code title="event-MediaStream-message">message</code>
+    <tr><td><dfn title="handler-PeerConnection-onaddstream"><code>onaddstream</code></dfn> <td> <code title="event-MediaStream-addstream">addstream</code>
+    <tr><td><dfn title="handler-PeerConnection-onremovestream"><code>onremovestream</code></dfn> <td> <code title="event-MediaStream-removestream">removestream</code>
   </table>
 
   <hr>
@@ -86919,7 +86929,7 @@
 var local = new PeerConnection('TURNS example.net', sendSignalingChannel);
 local.signalingChannel(...); // if we have a message from the other side, pass it along here
 
-// (aLocalStream is some GeneratedStream object)
+// (aLocalStream is some LocalMediaStream object)
 local.addStream(aLocalStream); // start sending video
 
 function sendSignalingChannel(message) {
@@ -87246,13 +87256,13 @@
 
   <h3>Event definitions</h3>
 
-  <p>The <code title="event-stream-addstream">addstream</code> and
-  <code title="event-stream-removestream">removestream</code> events
+  <p>The <code title="event-MediaStream-addstream">addstream</code> and
+  <code title="event-MediaStream-removestream">removestream</code> events
   use the <code>StreamEvent</code> interface:</p>
 
   <pre class="idl">interface <dfn>StreamEvent</dfn> : <span>Event</span> {
-  readonly attribute <span>Stream</span>? <span title="dom-StreamEvent-stream">stream</span>;
-  void <span title="dom-StreamEvent-initStreamEvent">initStreamEvent</span>(in DOMString typeArg, in boolean canBubbleArg, in boolean cancelableArg, in <span>Stream</span>? streamArg);
+  readonly attribute <span>MediaStream</span>? <span title="dom-StreamEvent-stream">stream</span>;
+  void <span title="dom-StreamEvent-initStreamEvent">initStreamEvent</span>(in DOMString typeArg, in boolean canBubbleArg, in boolean cancelableArg, in <span>MediaStream</span>? streamArg);
 };</pre>
 
   <div class="impl">
@@ -87264,11 +87274,11 @@
   href="#refsDOMEVENTS">[DOMEVENTS]</a></p>
 
   <p>The <dfn title="dom-StreamEvent-stream"><code>stream</code></dfn>
-  attribute represents the <code>Stream</code> object associated with
+  attribute represents the <code>MediaStream</code> object associated with
   the event.</p>
 
   <p><dfn title="fire a stream event">Firing a stream event named <var
-  title="">e</var></dfn> with a <code>Stream</code> <var
+  title="">e</var></dfn> with a <code>MediaStream</code> <var
   title="">stream</var> means that an event with the name <var
   title="">e</var>, which does not bubble (except where otherwise
   stated) and is not cancelable (except where otherwise stated), and
@@ -87284,7 +87294,7 @@
 
   <!--END dev-html--><p><i>This section is non-normative.</i></p><!--START dev-html-->
 
-  <p>The following event fires on <code>Stream</code> objects:</p>
+  <p>The following event fires on <code>MediaStream</code> objects:</p>
 
   <table>
    <thead>
@@ -87295,9 +87305,9 @@
 
    <tbody>
     <tr>
-     <td><dfn title="event-stream-ended"><code>ended</code></dfn>
+     <td><dfn title="event-MediaStream-ended"><code>ended</code></dfn>
      <td><code>Event</code>
-     <td>The <code>Stream</code> object will no longer stream any data, either because the user revoked the permissions, or because the source device has been ejected, or because the remote peer stopped sending data, or because the <code title="dom-stream-stop">stop()</code> method was invoked.
+     <td>The <code>MediaStream</code> object will no longer stream any data, either because the user revoked the permissions, or because the source device has been ejected, or because the remote peer stopped sending data, or because the <code title="dom-MediaStream-stop">stop()</code> method was invoked.
 
   </table>
 
@@ -87314,39 +87324,39 @@
    <tbody>
 
     <tr>
-     <td><dfn title="event-stream-connecting"><code>connecting</code></dfn>
+     <td><dfn title="event-MediaStream-connecting"><code>connecting</code></dfn>
      <td><code>Event</code>
      <td>The ICE Agent has begun negotiating with the peer. This can happen multiple times during the lifetime of the <code>PeerConnection</code> object.
 
     <tr>
-     <td><dfn title="event-stream-open"><code>open</code></dfn>
+     <td><dfn title="event-MediaStream-open"><code>open</code></dfn>
      <td><code>Event</code>
      <td>The ICE Agent has finished negotiating with the peer.
 
 <!--
     <tr>
-     <td><dfn title="event-stream-error"><code>error</code></dfn>
+     <td><dfn title="event-MediaStream-error"><code>error</code></dfn>
      <td><code>Event</code>
      <td>
 
     <tr>
-     <td><dfn title="event-stream-close"><code>close</code></dfn>
+     <td><dfn title="event-MediaStream-close"><code>close</code></dfn>
      <td><code>Event</code>
      <td>The <code title="dom-PeerConnection-close">close()</code> method was called.
 -->
 
     <tr>
-     <td><dfn title="event-stream-message"><code>message</code></dfn>
+     <td><dfn title="event-MediaStream-message"><code>message</code></dfn>
      <td><code>MessageEvent</code>
      <td>A <span>data UDP media stream</span> message was received.
 
     <tr>
-     <td><dfn title="event-stream-addstream"><code>addstream</code></dfn>
+     <td><dfn title="event-MediaStream-addstream"><code>addstream</code></dfn>
      <td><code>StreamEvent</code>
      <td>A new stream has been added to the <code title="dom-PeerConnection-remoteStreams">remoteStreams</code> array.
 
     <tr>
-     <td><dfn title="event-stream-removestream"><code>removestream</code></dfn>
+     <td><dfn title="event-MediaStream-removestream"><code>removestream</code></dfn>
      <td><code>StreamEvent</code>
      <td>A stream has been removed from the <code title="dom-PeerConnection-remoteStreams">remoteStreams</code> array.
 




More information about the Commit-Watchers mailing list