CVS 2011/webrtc/editor/sources

Update of /sources/public/2011/webrtc/editor/sources
In directory roscoe:/tmp/cvs-serv15311/sources

Modified Files:
	getusermedia.html getusermedia.js webrtc.css webrtc.html 
	webrtc.js 
Added Files:
	MediaRecorder.html 
Log Message:
Added 20140704 archived version (initial import of MediaRecorder spec).

--- /sources/public/2011/webrtc/editor/sources/getusermedia.html	2014/06/20 02:36:32	1.5
+++ /sources/public/2011/webrtc/editor/sources/getusermedia.html	2014/07/04 11:39:01	1.6
@@ -187,31 +187,6 @@
 
         <p>A conforming user-agent <em title="must" class="rfc2119">must</em>
         support all the setting names defined in this spec.</p>
-
-        <p>As represented in this specification, a source is the
-        realization of a device as presented by the User Agent. Thus,
-        it is possible that the actual settings of the device may
-        differ from those presented by the User Agent. As an example,
-        there are some operating systems and native device APIs that
-        will treat a camera with a single native capture resolution as
-        if it can produce any resolution less than that value,
-        downsampling as necessary. Even though the camera technically
-        has only one specific width and one specific height it can
-        support, it is likely that the User Agent will represent this
-        camera as a source with a range of supported widths and
-        heights. To enable the application to determine when this has
-        occurred, tracks provide both
-        a <code><a>getSettings()</a></code> method (which always
-        returns a setting that satisfies the constraints applied to
-        the track) and a <code><a>getNativeSettings()</a></code>
-        method (which always returns, to the best of the User Agent's
-        determination, the actual setting of the native device). Note
-        that both the track settings and the native settings are
-        snapshots and can change without application involvement. In
-        particular, changes in the native settings could cause changes
-        in the track settings that would result in the latter values
-        being outside of the constraints and thus causing
-        overconstrained events for all affected tracks.</p>
       </dd>
 
 
@@ -542,17 +517,10 @@
 
         <dd>
           <p>When a <code><a>MediaStream</a></code> object is created, the user
-          agent MUST generate a globally unique identifier string, and MUST
-          initialize the object's <code><a href=
-          "#dom-mediastream-id">id</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 MUST be 36 characters long.</p>
-          <!-- UUIDs have 36 characters
-      including hyphens; the ranges above comes from RFC4574 (the a=label:
-      thing in SDP) -->
-          <!-- described below -->
-
+          agent MUST generate an identifier string, and MUST initialize the
+          object's <code><a href="#dom-mediastream-id">id</a></code> attribute
+          to that string. A good practice is to use an UUID, which is 36
+          characters long in its canonical form.</p>
 
           <p>The <dfn id="dom-mediastream-id"><code>id</code></dfn> attribute
           MUST return the value to which it was initialized when the object was
@@ -713,17 +681,21 @@
 
 
             <li>
-              <p>Let <var>trackSetClone</var> be a list that contains the
+              <p>Let <var>clonedTracks</var> be a list that contains the
               result of running <code><a href=
               "#dom-mediastreamtrack-clone">MediaStreamTrack.clone()</a></code>
-              on all the tracks in this stream.</p>
+              on all the tracks in the stream on which this method was called.
+              </p>
             </li>
 
 
             <li>
-              <p>Let <var>trackSetClone</var> be <var>streamClone</var>'s
+              <p>Let <var>clonedTracks</var> be <var>streamClone</var>'s
               <a href="#track-set">track set</a>.</p>
             </li>
+
+
+            <li>Return <var>streamClone</var>.</li>
           </ol>
         </dd>
 
@@ -818,30 +790,72 @@
       source reference count to keep track of source usage, but the specifics
       are out of scope for this specification.</p>
 
+      <p>If there is no stored permission to use that source, the
+      UA SHOULD also remove the "permission granted" indicator for the source.</p>
+
 
       <section>
         <h3>Life-cycle and Media Flow</h3>
 
         <h4>Life-cycle</h4>
-        <p>A <code><a>MediaStreamTrack</a></code> has three stages in its
-        life-cycle: <code>new</code>, <code>live</code> and <code>ended</code>.
-        A track begins as <code>new</code> prior to being connected to a
-        source. The current stage is reflected by the object's <code><a href=
+        <p>A <code><a>MediaStreamTrack</a></code> has two stages in its
+        life-cycle: <code>live</code> and <code>ended</code>.
+        A newly created <code><a>MediaStreamTrack</a></code> can be in any
+        stage depending on how it was created. For example, cloning an ended
+        track results in a new ended track. The current stage is reflected by
+        the object's <code><a href=
         "#dom-mediastreamtrack-readystate">readyState</a></code> attribute.</p>
 
-        <p class="note">This document describres no way to create a
-        <code><a>MediaStreamTrack</a></code> that is _not_ connected to
-        a source. <code>new</code> allows for future extensions. </p>
-
-        <p>Once connected, the <code><a href=
-        "#event-mediastreamtrack-started">started</a></code> event fires and
-        the track becomes <code>live</code>. In the <code>live</code> state,
+
+        <p>In the <code>live</code> state,
         the track is active and media is available for use by consumers (but
         may be replaced by zero-information-content if the
         <code><a>MediaStreamTrack</a></code> is <a href=
         "#track-muted">muted</a> or <a href="#track-enabled">enabled</a>, see
         below).</p>
 
+        <p>A muted or disabled <code><a>MediaStreamTrack</a></code> renders
+        either silence (audio), black frames (video), or a
+        zero-information-content equivalent. For example, a video element
+        sourced by a muted or disabled <code><a>MediaStreamTrack</a></code>
+        (contained within a <code><a>MediaStream</a></code>), is playing but
+        the rendered content is the muted output. When all tracks
+        connected to a source are muted or disabled, the "on-air" or
+        "recording" indicator for that source can be turned off; when
+        the track is no longer muted or disabled, it MUST be turned
+        back on.</p>
+
+
+        <p>The muted/unmuted state of a track reflects if the source provides
+        any media at this moment. The enabled/disabled state is under
+        application control and determines if the track outputs media (to its
+        consumers). Hence, media from the source only flows when a
+        <code><a>MediaStreamTrack</a></code> object is both unmuted and
+        enabled.</p>
+
+
+        <p>A <code><a>MediaStreamTrack</a></code> is <dfn id=
+        "track-muted">muted</dfn> when the source is temporarily unable to
+        provide the track with data. A track can be muted by a user. Often this
+        action is outside the control of the application. This could be as a
+        result of the user hitting a hardware switch, or toggling a control in
+        the operating system or browser chrome. A track can also be muted by
+        the user agent.</p>
+
+
+        <p>Applications are able to <dfn id="track-enabled">enable</dfn> or
+        disable a <code><a>MediaStreamTrack</a></code> to prevent it from
+        rendering media from the source. A muted track will however, regardless
+        of the enabled state, render silence and blackness. A disabled track is
+        logically equivalent to a muted track, from a consumer point of
+        view.</p>
+
+
+        <p>For a newly created <code><a>MediaStreamTrack</a></code> object, the
+        following applies. The track is always enabled unless stated otherwise
+        (for example when cloned) and the muted state reflects the state of the
+        source at the time the track is created.</p>
+
         <p>A <code><a>MediaStreamTrack</a></code> object is said to
         <em>end</em> when the source of the track is disconnected or
         exhausted.</p>
@@ -865,7 +879,7 @@
         be looped, or because the application invoked the <code><a href=
         "#dom-mediastreamtrack-stop">stop()</a></code> method on
         the <code><a>MediaStreamTrack</a></code> object, or because the UA has
-        instructed the track to end for any reason) it is said to be ended.</p>
+        instructed the track to end for any reason) it is said to be <dfn id="track-ended">ended</dfn>.</p>
 
         <p>When a <code><a>MediaStreamTrack</a></code> <var>track</var>
         ends for any reason other than the <code><a href=
@@ -976,8 +990,7 @@
         <p>When <code><a>applyConstraints()</a></code> is called, a user agent
         MUST queue a task to evaluate
         those changes when the task queue is next serviced. Similarly, if the
-        <a href=
-        "#widl-MediaSourceStates-sourceType"><code>sourceType</code></a>
+        <a><code>sourceType</code></a>
         changes, then the user agent MUST perform the same actions to
         re-evaluate the constraints of each track affected by that source
         change.</p>
@@ -1015,10 +1028,12 @@
           <dd>
             <p>Unless a <code><a>MediaStreamTrack</a></code> object is created
             as a part a of special purpose algorithm that specifies how the
-            track id must be initialized, the user agent MUST generate a
-            globally unique identifier string and initialize the object's
+            track id must be initialized, the user agent MUST generate an
+            identifier string and initialize the object's
             <code><a href="#dom-mediastreamtrack-id">id</a></code> attribute to
-            that string.</p>
+            that string. See <code><a href=
+            "#dom-mediastream-id">MediaStream.id</a></code> for guidelines on
+            how to generate such an identifier.</p>
 
 
             <p>An example of an algorithm that specifies how the track id must
@@ -1114,7 +1129,7 @@
           <dt>readonly attribute boolean remote</dt>
 
 
-          <dd>If the track is sourced by an <code>RTCPeerConnection</code>, the
+          <dd>If the track is sourced by a non-local source, the
           <dfn id="dom-mediastreamtrack-remote"><code>remote</code></dfn>
           attribute MUST return the value <code>true</code>. Otherwise, it must
           return the value <code>false</code>.</dd>
@@ -1131,15 +1146,6 @@
           </dd>
 
 
-          <dt>attribute EventHandler onstarted</dt>
-
-
-          <dd>This event handler, of type <code><a href=
-          "#event-mediastreamtrack-started">started</a></code>, MUST be
-          supported by all objects implementing the
-          <code><a>MediaStreamTrack</a></code> interface.</dd>
-
-
           <dt>attribute EventHandler onended</dt>
 
 
@@ -1149,24 +1155,6 @@
           interface.</dd>
 
 
-          <dt>Settings getNativeSettings()</dt>
-
-
-          <dd>The <dfn>getNativeSettings()</dfn> method returns the
-          native settings of all the properties of the object.  Note
-          that the actual setting of a property <em title="must"
-          class="rfc2119">must</em> be a single value.  Unlike the
-          return value from the <code><a>getSettings()</a></code>
-          method, this return object a) MUST reflect, to the best of
-          the User Agent's ability, the actual native settings of the
-          source device, b) MAY have values that do not match the
-          current composite set of constraints applied by all tracks
-          associated with this source, only to the extent necessary to
-          reflect the native settings of the source device, and c)
-          MUST be the same for all tracks associated with this same
-          source.</dd>
-
-
           <dt>MediaStreamTrack clone()</dt>
 
 
@@ -1229,10 +1217,8 @@
 
 
               <li>
-                <p>If <var>track</var> has no source attached
-                (<code><a>sourceType</a></code> is "none") or if the source is
-                provided by an <code>RTCPeerConnection</code>, then abort these
-                steps.</p>
+                <p>If <var>track</var> is sourced by a non-local source, then
+                abort these steps.</p>
               </li>
 
 
@@ -1260,7 +1246,7 @@
 
 
         <dd>
-          <p>See <a href="#constraintable-interface">ConstrainablePattern Interface</a>
+          <p>See <a href="#constrainable-interface">ConstrainablePattern Interface</a>
             for the definition of this method.</p>
         </dd>
 
@@ -1268,7 +1254,7 @@
         <dt>MediaTrackConstraints getConstraints()</dt>
 
 
-        <dd>See <a href="#constraintable-interface">ConstrainablePattern Interface</a>
+        <dd>See <a href="#constrainable-interface">ConstrainablePattern Interface</a>
           for the definition of this method.
         </dd>
 
@@ -1276,7 +1262,7 @@
         <dt>Settings getSettings()</dt>
 
 
-        <dd>See <a href="#constraintable-interface">ConstrainablePattern Interface</a>
+        <dd>See <a href="#constrainable-interface">ConstrainablePattern Interface</a>
           for the definition of this method.
         </dd>
         <dt>void applyConstraints()</dt>
@@ -1299,20 +1285,21 @@
 
             <dd>Called if the required constraints cannot be satisfied.</dd>
           </dl>
-         See <a href="#constraintable-interface">ConstrainablePattern Interface</a>
+         See <a href="#constrainable-interface">ConstrainablePattern Interface</a>
          for the definition of this method.</dd>
-        </dl>
 
 
-        <dl class='idl' title='enum MediaStreamTrackState'>
-          <dt>new</dt>
+          <dt>attribute EventHandler onoverconstrained</dt>
 
 
-          <dd>The track type is new and has not been initialized (connected to
-          a source of any kind). This state implies that the track's label will
-          be the empty string.</dd>
+          <dd>
+            <p>See <a href="#constrainable-interface">ConstrainablePattern
+            Interface</a> for the definition of this event handler.</p>
+          </dd>
+        </dl>
 
 
+        <dl class='idl' title='enum MediaStreamTrackState'>
           <dt>live</dt>
 
 
@@ -1350,14 +1337,6 @@
 
 
         <dl class="idl" title="enum SourceTypeEnum">
-          <dt>none</dt>
-
-
-          <dd>This track has no source. This is the case when the track is in
-          the <code>"new"</code> or <code>"ended"</code>
-          <code><a>readyState</a></code>.</dd>
-
-
           <dt>camera</dt>
 
 
@@ -1394,55 +1373,9 @@
             <dt>ConstrainLong sampleSize</dt><dd> </dd>
             <dt>boolean echoCancelation</dt><dd> </dd>
             <dt>ConstrainDOMString sourceId</dt> <dd> </dd>
+            <dt>DOMString groupId</dt><dd> </dd>
           </dl>
       </section>
-
-      <section>
-        <h2>Isolated Media Streams</h2>
-
-
-        <p>When the <code><dfn>peerIdentity</dfn></code> option is supplied to
-        <code><a>getUserMedia</a></code>, the resulting
-        <code><a>MediaStream</a></code> is isolated so that its content is not
-        accessible to any application. An isolated
-        <code><a>MediaStream</a></code> may be used for two purposes:</p>
-
-        <ul>
-          <li>
-            <p>Displayed in an appropriate tag (e.g., a video or audio
-            element). The browser MUST ensure that content is inaccessible to
-            the application by ensuring that the resulting content is given the
-            same protections as content that is <a
-            href="http://www.w3.org/html/wg/drafts/html/master/infrastructure.html#cors-cross-origin">CORS
-            cross-origin</a>, as described in the relevant <a
-            href="www.w3.org/html/wg/drafts/html/master/embedded-content-0.html#security-and-privacy-considerations">Security
-            and privacy considerations section </a> of [[HTML5]].</p>
-          </li>
-
-
-          <li>
-            <p>Used as the argument to addStream() for an RTCPeerConnection,
-            subject to the restrictions detailed in [[WEBRTC10]].</p>
-          </li>
-        </ul>
-
-        <p>A <code><a>MediaStreamTrack</a></code> that is added to another
-        <code><a>MediaStream</a></code> remains isolated.  Tracks that are
-        isolated can be added to other <code><a>MediaStream</a></code>s, but
-        this causes the resulting MediaStream to have a combination of isolation
-        restrictions.  A <code><a>MediaStream</a></code> containing
-        <code><a>MediaStreamTrack</a></code> instances with mixed isolation
-        properties can be displayed, but cannot be sent using
-        RTCPeerConnection.</p>
-
-        <p>Any peerIdentity property MUST be retained
-        on <a href="#widl-MediaStreamTrack-clone-MediaStreamTrack">clone</a>d
-        copies of <code><a>MediaStreamTrack</a></code>s.<!-- Any stream or track
-        that might be derived from an isolated stream, such as
-        through <a href="https://www.w3.org/TR/streamproc/#media-element-extensions">captureStreamUntilEnded
-        or captureStream</a>, MUST also retain any isolation protections.</p>
-        -->
-      </section>
     </section>
 
 
@@ -1466,7 +1399,6 @@
       attribute set to <var>track</var>, MUST be created and dispatched at the
       given target.</p>
 
-
       <dl class="idl" data-merge="MediaStreamTrackEventInit" title=
       "interface MediaStreamTrackEvent : Event">
         <dt>Constructor(DOMString type, MediaStreamTrackEventInit
@@ -1474,7 +1406,7 @@

[279 lines skipped]
--- /sources/public/2011/webrtc/editor/sources/getusermedia.js	2014/06/20 02:36:32	1.5
+++ /sources/public/2011/webrtc/editor/sources/getusermedia.js	2014/07/04 11:39:01	1.6
@@ -19,7 +19,7 @@
    // copyrightStart: "2005",
 
    // if there is a previously published draft, uncomment this and set its YYYY-MM-DD
-   prevED: "http://dev.w3.org/2011/webrtc/editor/archives/20140507/getusermedia.html",
+   prevED: "http://dev.w3.org/2011/webrtc/editor/archives/20140619/getusermedia.html",
 
    // if there a publicly available Editor's Draft, this is the link
    edDraftURI:           "http://dev.w3.org/2011/webrtc/editor/getusermedia.html",
--- /sources/public/2011/webrtc/editor/sources/webrtc.css	2013/11/05 18:10:45	1.1
+++ /sources/public/2011/webrtc/editor/sources/webrtc.css	2014/07/04 11:39:01	1.2
@@ -1,4 +1,3 @@
-
 @media screen {
   html { background: #eeeeee; }
   body { margin-bottom: 30%; border-bottom: thin solid #3c790a; }
--- /sources/public/2011/webrtc/editor/sources/webrtc.html	2014/06/17 12:06:06	1.2
+++ /sources/public/2011/webrtc/editor/sources/webrtc.html	2014/07/04 11:39:01	1.3
@@ -185,14 +185,13 @@
             </p>
           </dd>
 
-
-          <dt>RTCIdentityOption requestIdentity = "ifconfigured"</dt>
-
+          <dt>DOMString peerIdentity</dt>
 
           <dd>
-            <p>See the <a href=
-            "#dom-rtcoaoptions-requestidentity">requestIdentity</a> member of
-            the <code><a>RTCOfferAnswerOptions</a></code> dictionary.</p>
+            <p>Sets the <a href="#target-peer-identity">target peer identity</a>
+            for the <a>RTCPeerConnection</a>.  The <a>RTCPeerConnection</a> will
+            establish a connection to a remote peer unless it can be
+            successfully authenticated with the provided name.</p>
           </dd>
         </dl>
       </section>
@@ -282,26 +281,8 @@
         <p>These dictionaries describe the options that can be used to
         control the offer/answer creation process.</p>
 
+       <dl class="idl" title="dictionary RTCOfferOptions">
 
-        <dl class="idl" title="dictionary RTCOfferAnswerOptions">
-          <dt>RTCIdentityOption requestIdentity = "ifconfigured"</dt>
-
-
-          <dd>
-            <p>The <dfn id=
-            "dom-rtcoaoptions-requestidentity"><code>requestIdentity</code></dfn>
-            option indicates whether an identity should be requested. The option
-            may be used with either of the <code>createOffer()</code> or
-            <code>createAnswer()</code> calls, but also with the <code>
-            <a>RTCPeerConnection</a></code> constructor. Note that since
-            DTLS-SRTP is used, fingerprints will be sent regardless of the
-            value of this option.</p>
-          </dd>
-        </dl>
-
-
-        <dl class="idl" title=
-        "dictionary RTCOfferOptions : RTCOfferAnswerOptions">
 
           <dt>long offerToReceiveVideo</dt>
 
@@ -906,8 +887,7 @@
 
 
           <dt>void createAnswer (RTCSessionDescriptionCallback successCallback,
-          RTCPeerConnectionErrorCallback failureCallback, optional
-          RTCOfferAnswerOptions options)</dt>
+          RTCPeerConnectionErrorCallback failureCallback)</dt>
 
 
           <dd>
@@ -1229,10 +1209,16 @@
                 and does not block the completion of
                 <code>setRemoteDescription</code>, unless there is a <a
                 href="#target-peer-identity">target peer identity</a>.</p>
+
+                <p>The <a href="#target-peer-identity">target peer identity</a>
+                cannot be changed once set.  Once set, if a different value is
+                provided, the user agent MUST throw an
+                <code>InvalidStateError</code> exception and abort this
+                operation.</p>
               </li>
 
               <li>
-                <p>If the "peerIdentity" constraint is applied to the
+                <p>If the "peerIdentity" configuration is applied to the
                 <code><a>RTCPeerConnection</a></code>, this establishes a <dfn
                 id="target-peer-identity">target peer identity</dfn>.
                 Alternatively, if the <code><a>RTCPeerConnection</a></code> has
@@ -1246,11 +1232,9 @@
                 identity</a>, then <code>setRemoteDescription</code> fails
                 unless it contains an identity assertion that matches the <a
                 href="#target-peer-identity">target peer identity</a>.  The
-                <code>RTCPeerConnection</code> MAY be closed if the validated
-                peer identity does not match the <a
-                href="#target-peer-identity">target peer identity</a>.  [[TODO:
-                determine if it is possible at this point to back out the
-                change.  Seems unlikely.]]</p>
+                <code><a>RTCPeerConnection</a></code> MAY be closed if the
+                validated peer identity does not match the <a
+                href="#target-peer-identity">target peer identity</a>.</p>
               </li>
            </ul>
           </dd>
@@ -1677,13 +1661,9 @@
                 href="http://www.w3.org/html/wg/drafts/html/master/infrastructure.html#cors-cross-origin">CORS
                 cross-origin</a>.  These streams can be added to the <a
                 href="#local-streams-set">local streams set</a> but content MUST
-                NOT be transmitted, with one exception.</p>
-
-                <p>A stream marked with the <var>peerIdentity</var> option can
-                be transmitted if the RTCPeerConnection has successfully <a
-                href="sec.identity-verify-assertion">validated the identity</a>
-                of the peer to have the same identity as the value of the
-                <var>peerIdentity</var> option on the stream.</p>
+                NOT be transmitted, though streams marked with
+                <var>peerIdentity</var> can be transmitted if they meet the
+                requirements for sending (see <a href="#isolated-pc"></a>) .</p>
 
                 <p>All other streams that are not accessible to the application
                 MUST NOT be sent to the peer, with silence (audio), black frames
@@ -4113,7 +4093,6 @@
   <section>
     <h2 id="sec.identity-proxy">Identity</h2>
 
-
     <section>
       <h3>Identity Provider Interaction</h3>
 
@@ -4960,6 +4939,214 @@
         </dd>
       </dl>
     </section>
+
+    <section>
+      <h3>Isolated Media Streams</h3>
+
+      <p>A MediaStream acquired using <code>getUserMedia()</code> is, by
+      default, accessible to an application.  This means that the application is
+      able to access the contents of tracks, modify their content, and send that
+      media to any peer it chooses.</p>
+
+      <p>WebRTC supports calling scenarios where media is sent to a specifically
+      identified peer, without the contents of media streams being accessible to
+      applications.  This is enabled by use of the
+      <code><dfn>peerIdentity</dfn></code> parameter to
+      <code>getUserMedia()</code>.</p>
+
+      <p>An application willingly relinquishes access to media by including a
+      <code>peerIdentity</code> parameter in the
+      <code>MediaStreamConstraints</code>.  This attribute is set to a
+      <code>DOMString</code> containing the identity of a specific peer.</p>
+
+      <p>The <code><dfn>MediaStreamConstraints</dfn></code> dictionary is
+      expanded to include the <code>peerIdentity</code> parameter.</p>
+
+      <dl class="idl" title="dictionary MediaStreamConstraints">
+        <dt>DOMString peerIdentity</dt>
+        <dd>
+          <p>If set, <code>peerIdentity</code> isolates media from the
+          application.  Media can only be sent to the identified peer.</p>
+        </dd>
+      </dl>
+
+      <p>A user that is prompted to provide consent for access to a camera or
+      microphone can be shown the value of the <code>peerIdentity</code>
+      parameter, so that they can be informed that the consent is more narrowly
+      restricted.</p>
+
+      <p>When the <code><dfn>peerIdentity</dfn></code> option is supplied to
+      <code>getUserMedia()</code>, all of the <code>MediaStreamTrack</code>s in
+      the resulting <code>MediaStream</code> are isolated so that content is not
+      accessible to any application.  Isolated <code>MediaStreamTrack</code>s
+      can be used for two purposes:</p>
+
+      <ul>
+        <li>
+          <p>Displayed in an appropriate media tag (e.g., a video or audio
+          element). The browser MUST ensure that content is inaccessible to the
+          application by ensuring that the resulting content is given the same
+          protections as content that
+          is <a href="http://www.w3.org/html/wg/drafts/html/master/infrastructure.html#cors-cross-origin">CORS
+          cross-origin</a>, as described in the
+          relevant <a href="http://www.w3.org/html/wg/drafts/html/master/embedded-content-0.html#security-and-privacy-considerations">Security
+          and privacy considerations section </a> of [[HTML5]].</p>
+        </li>
+
+        <li>
+          <p>Used as the argument to <a
+          href="#widl-RTCPeerConnection-addStream-void-MediaStream-stream">addStream()</a>
+          on an <code><a>RTCPeerConnection</a></code> instance, subject to the
+          restrictions in <a href="#isolated-pc"></a>.</p>
+        </li>
+      </ul>
+
+      <p>A <code>MediaStreamTrack</code> that is added to another
+      <code>MediaStream</code> remains isolated. When an isolated
+      <code>MediaStreamTrack</code> is added to a <code>MediaStream</code> with
+      a different peerIdentity, the <code>MediaStream</code> gets a combination
+      of isolation restrictions. A <code>MediaStream</code> containing
+      <code>MediaStreamTrack</code> instances with mixed isolation properties
+      can be displayed, but cannot be sent using <code>
+      <a>RTCPeerConnection</a></code>.</p>
+
+      <p>Any <code>peerIdentity</code> property MUST be retained on cloned
+      copies of <code>MediaStreamTrack</code>s.</p>
+
+      <!-- Any stream or track that might be derived from an isolated stream,
+           such as
+           through <a href="https://www.w3.org/TR/streamproc/#media-element-extensions">captureStreamUntilEnded
+           or captureStream</a>, MUST also retain any isolation protections.
+        -->
+
+      <section id="isolated-track">
+        <h4>Extended MediaStreamTrack Properties</h4>
+
+        <p><code>MediaStreamTrack</code> is expanded to include
+        an <var>isolated</var> attribute and a corresponding event.  This allows
+        an application to quickly and easily determine whether a track is
+        accessible.</p>
+
+
+        <dl title="partial interface MediaStreamTrack">
+          <dt>readonly attribute boolean isolated</dt>
+          <dd>
+            <p>A <code>MediaStreamTrack</code> is isolated (and the
+            corresponding <var>isolated</var> attribute set to <var>true</var>)
+            when content is inaccessible to the owning document.  This occurs as
+            a result of setting the <var>peerIdentity</var> option.  A track is
+            also isolated if it comes from a cross origin source.</p>
+          </dd>
+
+          <dt>attribute EventHandler onisolationchange</dt>
+          <dd>
+            <p>This event handler, of
+            type <a href="#event-isolationchange">isolationchange</a>, is fired when
+            the value of the <var>isolated</var> attribute changes.</p>
+          </dd>
+        </dl>
+
+      </section>
+
+      <section id="isolated-pc">
+        <h4>Isolated Streams and RTCPeerConnection</h4>
+
+        <p>A <code>MediaStreamTrack</code> with a <var>peerIdentity</var> option
+        set can be added to any <code><a>RTCPeerConnection</a></code>.  However,
+        the content of an isolated track MUST NOT be transmitted unless all of
+        the following constraints are met:</p>
+
+        <ul>
+          <li>
+            <p>A <code>MediaStreamTrack</code> from a stream acquired using the
+            <var>peerIdentity</var> option can be transmitted if the
+            <code><a>RTCPeerConnection</a></code> has successfully <a
+            href="sec.identity-verify-assertion">validated the identity</a> of
+            the peer AND that identity is the same identity that was used in the
+            <var>peerIdentity</var> option associated with the track.  That is,
+            the <code>name</code> attribute of the <code>peerIdentity</code>
+            attribute of the <code><a>RTCPeerConnection</a></code> instance MUST
+            match the value of the <code>peerIdentity</code> option passed to
+            <code>getUserMedia()</code>.</p>
+
+            <p>Rules for matching identity are described in
+            [[!RTCWEB-SECURITY-ARCH]].</p>
+          </li>
+
+          <li>
+            <p>The peer has indicated that it will respect the isolation
+            properties of streams.  That is, a DTLS connection with a promise to
+            respect stream confidentiality, as defined in [[!WEBRTC-ALPN]] has
+            been established.</p>
+          </li>
+        </ul>
+
+        <p>Failing to meet these conditions means that no media can be sent for
+        the affected <code>MediaStreamTrack</code>.  Video MUST be replaced by
+        black frames, audio MUST be replaced by silence, and equivalently
+        information-free content MUST be provided for other media types.</p>
+
+        <p>Remotely sourced <code>MediaStreamTrack</code>s MUST be isolated if
+        they are received over a DTLS connection that has been negotiated with
+        track isolation.  This protects isolated media from the application in
+        the receiving browser.  These tracks MUST only be displayed to a user
+        using the appropriate media element (e.g., &lt;video> or
+        &lt;audio>).</p>
+
+        <p>Any <code>MediaStreamTrack</code> that has the <var>peerIdentity</var> option set causes all tracks
+        sent using the same <code><a>RTCPeerConnection</a></code> to be isolated
+        at the receiving peer.  All DTLS connections created for a
+        <code><a>RTCPeerConnection</a></code> with isolated local streams MUST
+        be negotiated so that media remains isolated at the remote peer.  This
+        causes non-isolated media to become isolated at the receiving peer if
+        any isolated tracks are added to the same
+        <code><a>RTCPeerConnection</a></code>.</p>
+
+        <p class="note">Tracks that are not bound to a
+        particular <var>peerIdentity</var> do not cause other streams to be
+        isolated, these tracks simply do not have their content transmitted.</p>
+
+        <p>If a stream becomes isolated after initially being accessible, or an
+        isolated stream is added to an active session, then media for that
+        stream is replaced by information-free content (e.g., black frames or
+        silence).</p>
+
+      </section>
+
+      <section id="isolation-protection">
+        <h4>Protection Afforded by Media Isolation</h4>
+
+        <p>Media isolation ensures that the content of
+        a <code>MediaStreamTrack</code> is not accessible to web applications.
+        However, to ensure that media with a <var>peerIdentity</var> option set
+        can be sent to peers, some meta-information about the media will be
+        exposed to applications.</p>
+
+        <p>Applications will be able to observe the parameters of the media that
+        affect session negotiation and conversion into RTP.  This includes the
+        codecs that might be supported by the track, the bitrate, the number of
+        packets, and the current settings that are set on the
+        <code>MediaStreamTrack</code>.</p>
+
+        <p>In particular, the <a href="#statistics-model">statistics</a>
+        that <code><a>RTCPeerConnection</a></code> records are not reduced in
+        capability.  New statistics that might compromise isolation MUST be
+        avoided, or explicitly suppressed for isolated streams.</p>
+
+        <p>Most of these data are exposed to the network when the media is
+        transmitted.  Only the settings for the <code>MediaStreamTrack</code>
+        present a new source of information.  This can includes the frame rate
+        and resolution of video tracks, the bandwidth of audio tracks, and other
+        information about the source, which would not otherwise be revealed to a
+        network observer.  Since settings don't change at a high frequency or in
+        response to changes in media content, settings only reveal limited
+        reveal information about the content of a track.  However, any setting
+        that might change dynamically in response to the content of an
+        isolated <code>MediaStreamTrack</code> MUST have changes suppressed.</p>
+
+      </section>
+    </section>
+
   </section>
 
 
@@ -5532,6 +5719,19 @@
 
 
         <tr>
+          <td><dfn id="event-isolationchange"><code>isolationchange</code></dfn>
+          </td>
+
+          <td><code><a>Event</a></code>
+          </td>
+
+          <td>A new <code><a>Event</a></code> is dispatched to the script when
+          the <var>isolated</var> attribute on a <code>MediaStreamTrack</code>
+          changes.</td>
+        </tr>
+
+
+        <tr>
           <td><dfn id="event-identityresult"><code>identityresult</code></dfn>
           </td>
 
@@ -5662,11 +5862,19 @@
 
     <p>This section will be removed before publication.</p>
     <!-- Why do the first two headings automatically convert to <h2>? -->
+    <!-- Because you haven't added a <section> element around them
+         and respec rewrites h? elements based on the section depth -->
 
 
     <h3>Changes since April 10, 2014</h3>
 
     <ol>
+      <li>Bug 25774: Mixed isolation</li>
+    </ol>
+
+    <h3>Changes since April 10, 2014</h3>
+
+    <ol>
       <li>Bug 25855: Clarification about conformance requirements phrased as
       algorithms</li>
 
@@ -5694,31 +5902,36 @@
 
       <li>Made insertDTMF() throw on unrecognized characters (used to
       ignore).</li>
+
+      <li> Removed requestIdentity from RTCConfiguration and
+      RTCOfferAnswerOptions.  Removed RTCOfferAnswerOptions as a result. </li>
+
+      <t>Adding isolated property and associated event to MediaStreamTrack.</li>
     </ol>
 
     <h3>Changes since March 21, 2014</h3>
 
     <ol>
       <li>  Changes to identity-related text: </li>
-      
+
       <ul>
-     
+
         <li> Removed noaccess constraint </li>
-        
+
         <li> Add the ability to peerIdentity constrain RTCPeerConnection, which
         limits communication to a single peer </li>
-   
+

[18 lines skipped]
--- /sources/public/2011/webrtc/editor/sources/webrtc.js	2014/06/17 12:06:06	1.2
+++ /sources/public/2011/webrtc/editor/sources/webrtc.js	2014/07/04 11:39:01	1.3
@@ -1,11 +1,10 @@
-
 var respecConfig = {
   // specification status (e.g. WD, LCWD, NOTE, etc.). If in doubt use ED.
   specStatus:           "ED",
 
   // the specification's short name, as in http://www.w3.org/TR/short-name/
   shortName:            "webrtc",
-  
+
   // if your specification has a subtitle that goes below the main
   // formal title, define it here
   // subtitle   :  "an excellent document",
@@ -22,7 +21,7 @@
   // copyrightStart: "2005",
 
   // if there is a previously published draft, uncomment this and set its YYYY-MM-DD
-  prevED: "http://dev.w3.org/2011/webrtc/editor/archives/20140410/webrtc.html",
+  prevED: "http://dev.w3.org/2011/webrtc/editor/archives/20140617/webrtc.html",
 
   // if there a publicly available Editor's Draft, this is the link
   edDraftURI: "http://dev.w3.org/2011/webrtc/editor/webrtc.html",
@@ -46,7 +45,7 @@
     { name: "Anant Narayanan", company: "Mozilla (until November 2012)" }
   ],
 
-  // authors, add as many as you like. 
+  // authors, add as many as you like.
   // This is optional, uncomment if you have authors as well as editors.
   // only "name" is REQUIRED. Same format as editors.
 
@@ -54,16 +53,16 @@
   //    { name: "Your Name", url: "http://example.org/",
   //      company: "Your Company", companyURL: "http://example.com/" }
   //],
-    
+
   // name of the WG
   wg:           "Web Real-Time Communications Working Group",
-    
+
   // URI of the public WG page
   wgURI:        "http://www.w3.org/2011/04/webrtc/",
-    
+
   // name (without the @w3c.org) of the public mailing to which comments are due
   wgPublicList: "public-webrtc",
-    
+
   // URI of the patent status for this WG, for Rec-track documents
   // !!!! IMPORTANT !!!!
   // This is important for Rec-track documents, do not copy a patent URI from a random

--- /sources/public/2011/webrtc/editor/sources/MediaRecorder.html	2014/07/04 11:39:01	NONE
+++ /sources/public/2011/webrtc/editor/sources/MediaRecorder.html	2014/07/04 11:39:01	1.1
 <!DOCTYPE html>
<html>

 <head>
    <title>MediaStream Recording</title>
    <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
    <script type="text/javascript" src='https://www.w3.org/Tools/respec/respec-w3c-common' class='remove'></script>
    <script type="text/javascript" class='remove'>
            var respecConfig = {
                  specStatus: "ED",
                  editors: [{
                        name: "Jim Barnett",
                        company: "Genesys",
},
                     { name: "Travis Leithead",
                            company: "Microsoft Corp.",
                            url: "mailto:travis.leithead@microsoft.com?subject=MediaStream Capture Scenarios Feedback",
                            companyURL: "http://www.microsoft.com"}],
                  // publishDate:  "2013-11-08",
                  edDraftURI:   "http://dvcs.w3.org/hg/dap/raw-file/tip/media-stream-capture/RecordingProposal.html",
                  previousPublishDate: null,
                  prevED: "https://dvcs.w3.org/hg/dap/raw-file/default/media-stream-capture/MediaRecorder.html",
                  noIDLIn:  true,
                  inlineCSS:  true,
                  noRecTrack:  true,
                  shortName:  "mediastream-recording",
                  wg:         ["Device APIs Working Group", "Web Real-Time Communications Working Group"],
                  wgURI:    ["http://www.w3.org/2009/dap/", "http://www.w3.org/2011/04/webrtc/"],
                  wgPublicList: "public-media-capture",
                  wgPatentURI:  ["http://www.w3.org/2004/01/pp-impl/43696/status", "http://www.w3.org/2004/01/pp-impl/47318/status"]
              };
    </script>
    <style type="text/css">
      /* ReSpec.js CSS optimizations (Richard Tibbett) - cut-n-paste :) */
      div.example {
          border-top: 1px solid #ff4500;
          border-bottom: 1px solid #ff4500;
          background: #fff;
          padding:    1em;
          font-size: 0.9em;
          margin-top: 1em;
      }
      div.example::before {
          content:    "Example";
          display:    block;
          width:      150px;
          background: #ff4500;
          color:  #fff;
          font-family:    initial;
          padding:    3px;
          padding-left: 5px;
          font-weight:    bold;
          margin: -1em 0 1em -1em;
      }

      /* Clean up pre.idl */
      pre.idl::before {
          font-size:0.9em;
      }

      /* Add better spacing to sections */
      section, .section {
          margin-bottom: 2em;
      }

      /* Reduce note & issue render size */
      .note, .issue {
          font-size:0.8em;
      }

      /* Add addition spacing to <ol> and <ul> for rule definition */
      ol.rule li, ul.rule li {
          padding:0.2em;
      }
    </style>
  </head>


  <body>
        <section id="abstract">
                <p>This document defines a recording API for use with MediaStreams as defined in
                        [[!GETUSERMEDIA]]</p></section>

  <section id="sotd">



        <p>
          <em>This section describes the status of this document at the time of its publication. Other
          documents may supersede this document. A list of current <acronym title="World Wide Web Consortium">W3C</acronym> publications and the latest revision
          of this technical report can be found in the <a href="http://www.w3.org/TR/"><acronym title="World Wide Web Consortium">W3C</acronym> technical reports
          index</a> at http://www.w3.org/TR/.</em>
        </p>

    <p>This document is not complete. It is subject to major changes and, while
    early experimentations are encouraged, it is therefore not intended for
    implementation.
    The Media Capture Task Force expects this specification to evolve
    significantly based on:</p>

    <ul>
      <li>Privacy issues that arise when capturing media.</li>

      <li>Technical discussions within the task force.</li>

      <li>Experience gained through early experimentations.</li>

      <li>Feedback received from other groups and individuals.</li>
    </ul>

        <p>
          This document was published by the <a href="http://www.w3.org/2011/04/webrtc/">Web Real-Time Communication Working Group</a> as an Editor's Draft.

          If you wish to make comments regarding this document, please send them to
          <a href="mailto:public-media-capture@w3.org">public-media-capture@w3.org</a>
          (<a href="mailto:public-media-capture-request@w3.org?subject=subscribe">subscribe</a>,
          <a href="http://lists.w3.org/Archives/Public/public-media-capture/">archives</a>).


          All feedback is welcome.
        </p>

          <p>
            Publication as an Editor's Draft does not imply endorsement by the <acronym title="World Wide Web Consortium">W3C</acronym> Membership.
            This is a draft document and may be updated, replaced or obsoleted by other documents at
            any time. It is inappropriate to cite this document as other than work in progress.
          </p>


        <p>

            This document was produced by a group operating under the
            <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/">5 February 2004 <acronym title="World Wide Web Consortium">W3C</acronym> Patent Policy</a>.




              <acronym title="World Wide Web Consortium">W3C</acronym> maintains a public list of any patent disclosures (<a href="http://www.w3.org/2004/01/pp-impl/47318/status" rel="disclosure">Web Real-Time Communication Working Group</a>, <a href="http://www.w3.org/2004/01/pp-impl/43696/status" rel="disclosure">Device APIs Working Group</a>)

            made in connection with the deliverables of the group; that page also includes instructions for
            disclosing a patent. An individual who has actual knowledge of a patent which the individual believes contains
            <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/#def-essential">Essential Claim(s)</a> must disclose the
            information in accordance with <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/#sec-Disclosure">section
            6 of the <acronym title="World Wide Web Consortium">W3C</acronym> Patent Policy</a>.


        </p>




</section>


<section id="overview" class="informative"><h2>Overview</h2>

  <p>This API attempts to make basic recording very simple, while still allowing for more complex use cases.  In the simplest case,
        the application instatiates the MediaRecorder object, calls record() and then calls stop() or waits for the MediaStream to be ended.  The contents of the recording
        will be made available in the platform's default encoding via the dataavailable event.  Functions are available to query
        the platform's available set of encodings, and to select the desired ones if the author wishes.  The application can also choose
        how much data it wants to receive at one time.  By default a Blob containing the entire recording is returned when
        the recording finishes.  However the application can choose to receive smaller buffers of data at regular intervals.  </p>
 </section>

        <h2>Conformance</h2>
           <p>This specification defines conformance criteria that apply to a single
    product: the <dfn>user agent</dfn> that implements the interfaces that it
    contains.</p>
     <p>Conformance requirements phrased as algorithms or specific steps may be
implemented in any manner, so long as the end result is equivalent to the
behavior specified in this document. </p>


    <p>Implementations that use ECMAScript to implement the APIs defined in
    this specification must implement them in a manner consistent with the
    ECMAScript Bindings defined in the Web IDL specification [[!WEBIDL]], as
    this specification uses that specification and terminology.</p>
    <p></p>
        </section>


 <section id="MediaRecorderAPI"><h2>Media Recorder API</h2>



<dl title='interface MediaRecorder : EventTarget' class="idl">
        <dt>Constructor(MediaStream stream, [TreatUndefinedAs=Missing] optional DOMString mimeType)</dt><dd>
                                <dl class='parameters'>
            <dt>MediaStream stream</dt>
            <dd>
              The MediaStrea to be recorded.
            </dd>
             <dt>[TreatUndefinedAs=Missing] optional DOMString mimeType</dt>
            <dd>
              The container format for the recording, which may include any
              parameters that are defined for the format.  If the UA does not
              support the format or any of the parameters specified, it
              <em title="must" class="rfc2119"> must </em> raise an <code>UnsupportedOption</code> Exception. If
              this paramater is not specified, the UA will use a platform-specific
              default format.
            </dd>
          </dl></dd>
                <dt>readonly attribute MediaStream stream</dt><dd>The MediaStream to be
                        recorded.  </dd>
                        <dt>readonly attribute DOMString mimeType</dt><dd>The MIME type that was be selected as the container for recording. This entry includes all the parameters to the base MimeType. The UA should be able to play back any of the MIME types it supports for recording. For example, it should be able to display a video recording in the HTML <img> tag. The default value for this property is platform-specific.</dd>
        <dt>readonly attribute RecordingStateEnum state</dt><dd>The current state of the MediaRecorder object. </dd>
        <dt>attribute EventHandler onstart</dt><dd>Called to handle the start event.</dd>
        <dt>attribute EventHandler onstop</dt><dd>Called to handle the stop event.</dd>
        <dt>attribute EventHandler ondataavailable</dt><dd>Called to handle the dataavailable event.  Note that the Blob (see [[!FILE-API]]) of recorded data is contained in this event and can
                be accessed via the 'data' attribute.</dd>
                <dt>attribute EventHandler onpause</dt><dd>Called to handle the pause event. </dd>
                <dt>attribute EventHandler onresume</dt><dd>Called to handle the resume event. </dd>
                <dt>attribute EventHandler onerror</dt><dd>Called to handle the DOMError event. </dd>
           <dt>attribute Boolean ignoreMutedMedia</dt><dd>If this attribute is set to
        <code>true</code>, the MediaRecorder will not record anything when the input Media
        Stream is muted.  If this attribute is <code>false</code>, the MediaRecorder will
         record silence (for audio) and black frames (for video) when the input MediaStrea
         is muted.  When the MediaRecorder is created, the UA <em title="must" class="rfc2119">must</em> set
         this attribute to <code>false</code>.</dd>



                <dt>void start()</dt>

<dd>When a <code>MediaRecorder</code> object’s <code>start()</code> method is invoked,
                        the UA <em title="must" class="rfc2119">must</em> queue a task, using the DOM manipulation task source,
                        that runs the following steps:
                <ol>
                        <li>If the <code>state</code> is not "inactive",        raise a DOM <code>InvalidState</code> error and terminate these steps. Otherwise:</li>
                                <li>Set <code>state</code> to 'recording' and wait until media

                                        becomes available from <code>stream</code>.</li>
                        <li>Once data becomes available raise a <code>start</code> event and start gathering the

                                data into a Blob (see [[!FILE-API]]). </li>
                <li>If the <code>timeSlice</code> argument has been provided, then once <code>timeSlice</code>
                        milliseconds of data have been colleced, or some minimum time slice imposed
                        by the UA, whichever is greater, raise a <code>dataavailable</code> event containing
                        the Blob of collected data, and start gathering a new Blob of data.  Otherwise (if <code>timeSlice</code>
                        has not been provided), continue gathering data into the original Blob.</li>
                        <li>When the <code>stream</code> is ended set <code>recording</code>
                                to 'inactive' and stop gathering data. Callers SHOULD not rely on exactness of the timeSlice value, especially if the timeSlice value is small. Callers SHOULD consider timeSlice as a minimum value</li>
                                        <li>Then  raise a <code>dataavailable</code> event containing the Blob of data.</li>
                                        <li>Finally, raise a <code>stop</code> event.</li>
                        </ol>

                        <p>Note that <code>stop()</code>,
                                <code>requestData()</code>, and <code>pause</code> also affect the recording behavior.</p>


                        <p>The UA <em title="must" class="rfc2119">must</em> record the MediaStream
                        in such a way that the original Tracks can be retrieved at playback time. When multiple Blobs
                        are returned (because of <code>timeSlice</code> or <code>requestData</code>), the individual
                        Blobs need not be playable, but the combination of all the Blobs from a completed recording <em title="must" class="rfc2119">must</em>
                        be playable.  If any Track within the
                        MediaStream is muted at any time (i.e., if its <code>readyState</code> is set to <code>muted</code>), the UA
                        <em title="must" class="rfc2119">must</em> insert black frames or silence until the Track is unmuted. If the UA is
                        unable to start recording or at any point is unable to contine recording, it <em title="must" class="rfc2119">must</em> raise
                        a <code>DOMError</code> event, followed by a <code>dataavailable</code> event containing
                        the Blob it has gathered, follwed by the <code>stop</code> event.
                </p>
                <dl class='parameters'>
            <dt>optional  long timeslice</dt>
            <dd>
              The number of milliseconds of data to return in a single Blob.
            </dd>
          </dl>
          </dd>

    <dt>void stop()</dt>

    <dd>When a <code>MediaRecorder</code> object’s <code>stop</code> method is invoked,
          the UA <em title="must" class="rfc2119">must</em>
          queue a task, using the DOM manipulation task source, that runs the following steps:
                <ol>
                        <li>If <code>state</code> is "inactive", raise a DOM <code>InvalideStateError</code>event and terminate these steps.
          Otherwise:</li>
                        <li>Set <code>state</code> to 'inactive' and stop gathering data. </li>
                        <li>Raise a <code>dataavailable</code> event containing the Blob of data that has been gathered.</li>
                        <li>Raise a <code>stop</code> event</li>
                        </ol>
                        </dd>
                        <dt>void pause()</dt>
                        <dd>When a <code>MediaRecorder</code> object’s <code>pause()</code>method is invoked,
        the UA <em title="must" class="rfc2119">must</em>
          queue a task, using the DOM manipulation task source, that runs the following steps:
                <ol>
                <li>If <code>state</code> is  "inactive"
          raise a DOM
          <code>InvalidState</code> error and terminate these steps.  Otherwise: </li>
                <li>Set <code>state</code> to "paused".</li>
                <li>Stop gathering data into its current Blob (but keep the Blob available so that
                        recording can be resumed in the future).</li>
                        <li>Raise a <code>pause</code> event </li>
        </ol>
        </dd>
        <dt>void resume()</dt>
        <dd>When a <code>MediaRecorder</code> object’s <code>resume()</code> method is invoked,
        the UA <em title="must" class="rfc2119">must</em>
          queue a task, using the DOM manipulation task source, that runs the following steps:
                <ol>
                        <li>If <code>state</code> is  "inactive"
          raise a DOM <code>InvalidState</code>
          error and terminate these steps.  Otherwise: </li>
                <li>Set <code>state</code> to "recording".</li>
                <li>Resume (or continue) gathering data into its current Blob.</li>
                <li>Raise a <code>resume</code> event.</li>
        </ol></dd>

        <dt>void requestData()</dt>
        <dd>
        When a <code>MediaRecorder</code>object’s <code>requestData()</code> method is invoked,
        the UA <em title="must" class="rfc2119">must</em>
          queue a task, using the DOM manipulation task source, that runs the following steps:
                <ol>
                        <li>If <code>state</code> is not "recording"
         raise a DOM
          <code>InvalidState</code> error and terminate these steps.
          Otherwise:</li>
                <li>Raise a <code>dataavailable</code> event containing the current Blob of saved data. (Note that this Blob
                        will be empty if no data has been gathered yet.)</li>
                <li>Create a new Blob and gather subsequent data into it.</li>
        </ol>
                </dd>

        <dt>static DOMString canRecordMimeType(DOMString mimeType)</dt>
        <dd><p>This method <em title="must" class="rfc2119">must</em> return the
                empty string if <code>mimeType</code> is a type that the user agent knows
                it cannot record; it <em title="must" class="rfc2119">must</em> return
                "probably" if the user agent is confident that <code>mimeType</code>
                represents a type that it can record; and it <em title="must" class="rfc2119">must</em> return
                "maybe" otherwise. Implementors are encouraged to return "maybe"
                unless the type can be confidently established as being supported or not.</p>
                                <dl class='parameters'>
            <dt>DOMString mimeType</dt>
            <dd>
              A MimeType, including parameters, specifying a container format for
              recording.
            </dd>
          </dl>
        </dd>

</dl>




[231 lines skipped]

Received on Friday, 4 July 2014 11:39:05 UTC