CVS 2011/webrtc/editor

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

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

--- /sources/public/2011/webrtc/editor/getusermedia.html	2014/06/20 02:48:50	1.33
+++ /sources/public/2011/webrtc/editor/getusermedia.html	2014/07/04 11:38:59	1.34
@@ -385,7 +385,7 @@
 }
 
 code {
-    color:  #ff4500;
+    color:  #C83500;
 }
 
 /* --- TOC --- */
@@ -467,11 +467,11 @@
   </p>
   <h1 class="title p-name" id="title" property="dcterms:title">Media Capture and Streams</h1>
   
-  <h2 id="w3c-editor-s-draft-19-june-2014" property="dcterms:issued" datatype="xsd:dateTime" content="2014-06-20T02:02:40.000Z"><acronym title="World Wide Web Consortium">W3C</acronym> Editor's Draft <time class="dt-published" datetime="2014-06-19">19 June 2014</time></h2>
+  <h2 id="w3c-editor-s-draft-04-july-2014" property="dcterms:issued" datatype="xsd:dateTime" content="2014-07-04T09:59:36.000Z"><acronym title="World Wide Web Consortium">W3C</acronym> Editor's Draft <time class="dt-published" datetime="2014-07-04">04 July 2014</time></h2>
   <dl>
     
       <dt>This version:</dt>
-      <dd><a class="u-url" href="http://dev.w3.org/2011/webrtc/editor/archives/20140619/getusermedia.html">http://dev.w3.org/2011/webrtc/editor/archives/20140619/getusermedia.html</a></dd>
+      <dd><a class="u-url" href="http://dev.w3.org/2011/webrtc/editor/archive/20140704/getusermedia.html">http://dev.w3.org/2011/webrtc/editor/archive/20140704/getusermedia.html</a></dd>
       <dt>Latest published version:</dt>
       <dd><a href="http://www.w3.org/TR/mediacapture-streams/">http://www.w3.org/TR/mediacapture-streams/</a></dd>
     
@@ -485,7 +485,7 @@
     
       
         <dt>Previous editor's draft:</dt>
-        <dd><a href="http://dev.w3.org/2011/webrtc/editor/archives/20140507/getusermedia.html">http://dev.w3.org/2011/webrtc/editor/archives/20140507/getusermedia.html</a></dd>
+        <dd><a href="http://dev.w3.org/2011/webrtc/editor/archives/20140619/getusermedia.html">http://dev.w3.org/2011/webrtc/editor/archives/20140619/getusermedia.html</a></dd>
       
     
     
@@ -583,9 +583,9 @@
       
     
   
-</section><section id="toc"><h2 id="h2_toc" role="heading" aria-level="1" class="introductory">Table of Contents</h2><ul id="respecContents" role="directory" class="toc"><li class="tocline"><a class="tocxref" href="#intro"><span class="secno">1. </span>Introduction</a></li><li class="tocline"><a class="tocxref" href="#conformance"><span class="secno">2. </span>Conformance</a></li><li class="tocline"><a class="tocxref" href="#terminology"><span class="secno">3. </span>Terminology</a></li><li class="tocline"><a class="tocxref" href="#stream-api"><span class="secno">4. </span>MediaStream API</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#introduction"><span class="secno">4.1 </span>Introduction</a></li><li class="tocline"><a class="tocxref" href="#mediastream"><span class="secno">4.2 </span>MediaStream</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#constructors"><span class="secno">4.2.1 </span>Constructors</a></li><li class="tocline"><a class="tocxref" href="#attributes"><pan class="secno">4.2.2 </span>Attributes</a></li><li class="tocline"><a class="tocxref" href="#methods"><span class="secno">4.2.3 </span>Methods</a></li></ul></li><li class="tocline"><a class="tocxref" href="#mediastreamtrack"><span class="secno">4.3 </span>MediaStreamTrack</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#life-cycle-and-media-flow"><span class="secno">4.3.1 </span>Life-cycle and Media Flow</a></li><li class="tocline"><a class="tocxref" href="#tracks-and-constraints"><span class="secno">4.3.2 </span>Tracks and Constraints</a></li><li class="tocline"><a class="tocxref" href="#media-stream-track-interface-definition"><span class="secno">4.3.3 </span>Interface Definition</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#attributes-1"><span class="secno">4.3.3.1 </span>Attributes</a></li><li class="tocline"><a class="tocxref" href="#methods-1"><span class="secno">4.3.3.2 </span>Methods</a></li></ul></li><li class="tocline"><a class="tocxref" href="#track-source-tyes"><span class="secno">4.3.4 </span>Track Source Types</a></li><li class="tocline"><a class="tocxref" href="#media-track-constraints"><span class="secno">4.3.5 </span>MediaTrackConstraints</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#dictionary-mediatrackconstraints-members"><span class="secno">4.3.5.1 </span>Dictionary <span class="formerLink"><code>MediaTrackConstraints</code></span> Members</a></li><li class="tocline"><a class="tocxref" href="#dictionary-mediatrackconstraintset-members"><span class="secno">4.3.5.2 </span>Dictionary <span class="formerLink"><code>MediaTrackConstraintSet</code></span> Members</a></li></ul></li><li class="tocline"><a class="tocxref" href="#isolated-media-streams"><span class="secno">4.3.6 </span>Isolated Media Streams</a></li></ul></li><li class="tocline"><a class="tocxref" href="#mediastreamtrackevent"><span class="secno">4.4 </span>MediaStreamTrackEvent</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#constructors-1"><span class="secno>4.4.1 </span>Constructors</a></li><li class="tocline"><a class="tocxref" href="#attributes-2"><span class="secno">4.4.2 </span>Attributes</a></li><li class="tocline"><a class="tocxref" href="#dictionary-mediastreamtrackeventinit-members"><span class="secno">4.4.3 </span>Dictionary <span class="formerLink"><code>MediaStreamTrackEventInit</code></span> Members</a></li></ul></li></ul></li><li class="tocline"><a class="tocxref" href="#the-model-sources-sinks-constraints-and-settings"><span class="secno">5. </span>The model: sources, sinks, constraints, and settings</a></li><li class="tocline"><a class="tocxref" href="#mediastreams-as-media-elements"><span class="secno">6. </span>MediaStreams as Media Elements</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#direct-assignment-to-media-elements"><span class="secno">6.1 </span>Direct Assignment to Media Elements</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#attributes-3"><span class="secno">6.1.1 </span>Attributes</a></li></ul><li><li class="tocline"><a class="tocxref" href="#loading-and-playing-a-mediastream-in-a-media-element"><span class="secno">6.2 </span>Loading and Playing a MediaStream in a Media Element</a></li><li class="tocline"><a class="tocxref" href="#media-element-attributes-when-playing-a-mediastream"><span class="secno">6.3 </span>Media Element Attributes when Playing a MediaStream</a></li></ul></li><li class="tocline"><a class="tocxref" href="#error-handling"><span class="secno">7. </span>Error Handling</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#attributes-4"><span class="secno">7.1 </span>Attributes</a></li><li class="tocline"><a class="tocxref" href="#constructors-2"><span class="secno">7.2 </span>Constructors</a></li><li class="tocline"><a class="tocxref" href="#attributes-5"><span class="secno">7.3 </span>Attributes</a></li><li class="tocline"><a class="tocxref" href="#dictionary-mediastreamerroreventinit-members"><span class="secno">7.4 </span>Dictionary <span class="formerLink"><code>MeiaStreamErrorEventInit</code></span> Members</a></li></ul></li><li class="tocline"><a class="tocxref" href="#event-summary"><span class="secno">8. </span>Event summary</a></li><li class="tocline"><a class="tocxref" href="#enumerating-devices"><span class="secno">9. </span>Enumerating Local Media Devices</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#navigatorusermedia"><span class="secno">9.1 </span>NavigatorUserMedia</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#attributes-6"><span class="secno">9.1.1 </span>Attributes</a></li></ul></li><li class="tocline"><a class="tocxref" href="#mediadevices"><span class="secno">9.2 </span>MediaDevices</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#attributes-7"><span class="secno">9.2.1 </span>Attributes</a></li><li class="tocline"><a class="tocxref" href="#methods-2"><span class="secno">9.2.2 </span>Methods</a></li></ul></li><li class="tocline"><a class="tocxref" href="#device-info"><span class="secno">9.3 </span>evice Info</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#callback-mediadeviceinfocallback-parameters"><span class="secno">9.3.1 </span>Callback <span class="formerLink"><code>MediaDeviceInfoCallback</code></span> Parameters</a></li><li class="tocline"><a class="tocxref" href="#dictionary-mediadeviceinfo-members"><span class="secno">9.3.2 </span>Dictionary <span class="formerLink"><code>MediaDeviceInfo</code></span> Members</a></li></ul></li></ul></li><li class="tocline"><a class="tocxref" href="#local-content"><span class="secno">10. </span>Obtaining local multimedia content</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#navigatorusermedia-interface-extensions"><span class="secno">10.1 </span>NavigatorUserMedia Interface Extensions</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#methods-3"><span class="secno">10.1.1 </span>Methods</a></li></ul></li><li class="tocline"><a class="tocxref" href="#mediadevices-interface-extensions"><span class="secno">10.2 <span>MediaDevices Interface Extensions</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#methods-4"><span class="secno">10.2.1 </span>Methods</a></li></ul></li><li class="tocline"><a class="tocxref" href="#mediastreamconstraints"><span class="secno">10.3 </span>MediaStreamConstraints</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#dictionary-mediastreamconstraints-members"><span class="secno">10.3.1 </span>Dictionary <span class="formerLink"><code>MediaStreamConstraints</code></span> Members</a></li></ul></li><li class="tocline"><a class="tocxref" href="#navigatorusermediasuccesscallback"><span class="secno">10.4 </span>NavigatorUserMediaSuccessCallback</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#callback-navigatorusermediasuccesscallback-parameters"><span class="secno">10.4.1 </span>Callback <span class="formerLink"><code>NavigatorUserMediaSuccessCallback</code></span> Parameters</a></li></ul></li><li class="tocline"><a class="tocxref" href="#navigatorusrmediaerrorcallback"><span class="secno">10.5 </span>NavigatorUserMediaErrorCallback</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#callback-navigatorusermediaerrorcallback-parameters"><span class="secno">10.5.1 </span>Callback <span class="formerLink"><code>NavigatorUserMediaErrorCallback</code></span> Parameters</a></li></ul></li><li class="tocline"><a class="tocxref" href="#implementation-suggestions"><span class="secno">10.6 </span>Implementation Suggestions</a></li></ul></li><li class="tocline"><a class="tocxref" href="#constrainable-interface"><span class="secno">11. </span>Constrainable Pattern</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#interface-definition"><span class="secno">11.1 </span>Interface Definition</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#attributes-8"><span class="secno">11.1.1 </span>Attributes</a></li><li class="tocline"><a class="tocxref" href="#methods-5"><span class="secno">11.1.2 </span>Methods</a></li><li class="toclie"><a class="tocxref" href="#applyconstraints-failure-callback"><span class="secno">11.1.3 </span>applyConstraints Failure Callback</a><ul class="toc"></ul></li></ul></li><li class="tocline"><a class="tocxref" href="#registry"><span class="secno">11.2 </span>The Property Registry</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#dictionary-constraindoublerange-members"><span class="secno">11.2.1 </span>Dictionary <span class="formerLink"><code>ConstrainDoubleRange</code></span> Members</a></li><li class="tocline"><a class="tocxref" href="#dictionary-constrainlongrange-members"><span class="secno">11.2.2 </span>Dictionary <span class="formerLink"><code>ConstrainLongRange</code></span> Members</a></li><li class="tocline"><a class="tocxref" href="#dictionary-constraindomstringparameters-members"><span class="secno">11.2.3 </span>Dictionary <span class="formerLink"><code>ConstrainDOMStringParameters</code></span> Members</a></li><li class="tocline"><a class="tocxref" href="#dictionary-constrainvieofacingmodeparameters-members"><span class="secno">11.2.4 </span>Dictionary <span class="formerLink"><code>ConstrainVideoFacingModeParameters</code></span> Members</a></li></ul></li><li class="tocline"><a class="tocxref" href="#capabilities"><span class="secno">11.3 </span>Capabilities</a></li><li class="tocline"><a class="tocxref" href="#settings"><span class="secno">11.4 </span><span>Settings</span>
+</section><section id="toc"><h2 id="h2_toc" role="heading" aria-level="1" class="introductory">Table of Contents</h2><ul id="respecContents" role="directory" class="toc"><li class="tocline"><a class="tocxref" href="#intro"><span class="secno">1. </span>Introduction</a></li><li class="tocline"><a class="tocxref" href="#conformance"><span class="secno">2. </span>Conformance</a></li><li class="tocline"><a class="tocxref" href="#terminology"><span class="secno">3. </span>Terminology</a></li><li class="tocline"><a class="tocxref" href="#stream-api"><span class="secno">4. </span>MediaStream API</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#introduction"><span class="secno">4.1 </span>Introduction</a></li><li class="tocline"><a class="tocxref" href="#mediastream"><span class="secno">4.2 </span>MediaStream</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#constructors"><span class="secno">4.2.1 </span>Constructors</a></li><li class="tocline"><a class="tocxref" href="#attributes"><pan class="secno">4.2.2 </span>Attributes</a></li><li class="tocline"><a class="tocxref" href="#methods"><span class="secno">4.2.3 </span>Methods</a></li></ul></li><li class="tocline"><a class="tocxref" href="#mediastreamtrack"><span class="secno">4.3 </span>MediaStreamTrack</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#life-cycle-and-media-flow"><span class="secno">4.3.1 </span>Life-cycle and Media Flow</a></li><li class="tocline"><a class="tocxref" href="#tracks-and-constraints"><span class="secno">4.3.2 </span>Tracks and Constraints</a></li><li class="tocline"><a class="tocxref" href="#media-stream-track-interface-definition"><span class="secno">4.3.3 </span>Interface Definition</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#attributes-1"><span class="secno">4.3.3.1 </span>Attributes</a></li><li class="tocline"><a class="tocxref" href="#methods-1"><span class="secno">4.3.3.2 </span>Methods</a></li></ul></li><li class="tocline"><a class="tocxref" href="#track-source-tyes"><span class="secno">4.3.4 </span>Track Source Types</a></li><li class="tocline"><a class="tocxref" href="#media-track-constraints"><span class="secno">4.3.5 </span>MediaTrackConstraints</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#dictionary-mediatrackconstraints-members"><span class="secno">4.3.5.1 </span>Dictionary <span class="formerLink"><code>MediaTrackConstraints</code></span> Members</a></li><li class="tocline"><a class="tocxref" href="#dictionary-mediatrackconstraintset-members"><span class="secno">4.3.5.2 </span>Dictionary <span class="formerLink"><code>MediaTrackConstraintSet</code></span> Members</a></li></ul></li></ul></li><li class="tocline"><a class="tocxref" href="#mediastreamtrackevent"><span class="secno">4.4 </span>MediaStreamTrackEvent</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#constructors-1"><span class="secno">4.4.1 </span>Constructors</a></li><li class="tocline"><a class="tocxref" href="#attributes-2"><span class="secno">4.4.2 </span>Attriutes</a></li><li class="tocline"><a class="tocxref" href="#dictionary-mediastreamtrackeventinit-members"><span class="secno">4.4.3 </span>Dictionary <span class="formerLink"><code>MediaStreamTrackEventInit</code></span> Members</a></li></ul></li></ul></li><li class="tocline"><a class="tocxref" href="#the-model-sources-sinks-constraints-and-settings"><span class="secno">5. </span>The model: sources, sinks, constraints, and settings</a></li><li class="tocline"><a class="tocxref" href="#mediastreams-as-media-elements"><span class="secno">6. </span>MediaStreams as Media Elements</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#direct-assignment-to-media-elements"><span class="secno">6.1 </span>Direct Assignment to Media Elements</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#attributes-3"><span class="secno">6.1.1 </span>Attributes</a></li></ul></li><li class="tocline"><a class="tocxref" href="#loading-and-playing-a-mediastream-in-a-media-element"><span class="secno">6.2 </spanLoading and Playing a MediaStream in a Media Element</a></li><li class="tocline"><a class="tocxref" href="#media-element-attributes-when-playing-a-mediastream"><span class="secno">6.3 </span>Media Element Attributes when Playing a MediaStream</a></li></ul></li><li class="tocline"><a class="tocxref" href="#error-handling"><span class="secno">7. </span>Error Handling</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#attributes-4"><span class="secno">7.1 </span>Attributes</a></li><li class="tocline"><a class="tocxref" href="#constructors-2"><span class="secno">7.2 </span>Constructors</a></li><li class="tocline"><a class="tocxref" href="#attributes-5"><span class="secno">7.3 </span>Attributes</a></li><li class="tocline"><a class="tocxref" href="#dictionary-mediastreamerroreventinit-members"><span class="secno">7.4 </span>Dictionary <span class="formerLink"><code>MediaStreamErrorEventInit</code></span> Members</a></li></ul></li><li class="tocline"><a class="tocxref" href="#event-summary"><span clas="secno">8. </span>Event summary</a></li><li class="tocline"><a class="tocxref" href="#enumerating-devices"><span class="secno">9. </span>Enumerating Local Media Devices</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#navigatorusermedia"><span class="secno">9.1 </span>NavigatorUserMedia</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#attributes-6"><span class="secno">9.1.1 </span>Attributes</a></li></ul></li><li class="tocline"><a class="tocxref" href="#mediadevices"><span class="secno">9.2 </span>MediaDevices</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#attributes-7"><span class="secno">9.2.1 </span>Attributes</a></li><li class="tocline"><a class="tocxref" href="#methods-2"><span class="secno">9.2.2 </span>Methods</a></li></ul></li><li class="tocline"><a class="tocxref" href="#device-info"><span class="secno">9.3 </span>Device Info</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#callback-mediadeviceinfocallback-parameters"><span class=secno">9.3.1 </span>Callback <span class="formerLink"><code>MediaDeviceInfoCallback</code></span> Parameters</a></li><li class="tocline"><a class="tocxref" href="#dictionary-mediadeviceinfo-members"><span class="secno">9.3.2 </span>Dictionary <span class="formerLink"><code>MediaDeviceInfo</code></span> Members</a></li></ul></li></ul></li><li class="tocline"><a class="tocxref" href="#local-content"><span class="secno">10. </span>Obtaining local multimedia content</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#navigatorusermedia-interface-extensions"><span class="secno">10.1 </span>NavigatorUserMedia Interface Extensions</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#methods-3"><span class="secno">10.1.1 </span>Methods</a></li></ul></li><li class="tocline"><a class="tocxref" href="#mediadevices-interface-extensions"><span class="secno">10.2 </span>MediaDevices Interface Extensions</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#methods-4"><span class="secno>10.2.1 </span>Methods</a></li></ul></li><li class="tocline"><a class="tocxref" href="#mediastreamconstraints"><span class="secno">10.3 </span>MediaStreamConstraints</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#dictionary-mediastreamconstraints-members"><span class="secno">10.3.1 </span>Dictionary <span class="formerLink"><code>MediaStreamConstraints</code></span> Members</a></li></ul></li><li class="tocline"><a class="tocxref" href="#navigatorusermediasuccesscallback"><span class="secno">10.4 </span>NavigatorUserMediaSuccessCallback</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#callback-navigatorusermediasuccesscallback-parameters"><span class="secno">10.4.1 </span>Callback <span class="formerLink"><code>NavigatorUserMediaSuccessCallback</code></span> Parameters</a></li></ul></li><li class="tocline"><a class="tocxref" href="#navigatorusermediaerrorcallback"><span class="secno">10.5 </span>NavigatorUserMediaErrorCallback</a><ul class="toc"><li class="tocline"><a class=tocxref" href="#callback-navigatorusermediaerrorcallback-parameters"><span class="secno">10.5.1 </span>Callback <span class="formerLink"><code>NavigatorUserMediaErrorCallback</code></span> Parameters</a></li></ul></li><li class="tocline"><a class="tocxref" href="#implementation-suggestions"><span class="secno">10.6 </span>Implementation Suggestions</a></li></ul></li><li class="tocline"><a class="tocxref" href="#constrainable-interface"><span class="secno">11. </span>Constrainable Pattern</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#interface-definition"><span class="secno">11.1 </span>Interface Definition</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#attributes-8"><span class="secno">11.1.1 </span>Attributes</a></li><li class="tocline"><a class="tocxref" href="#methods-5"><span class="secno">11.1.2 </span>Methods</a></li><li class="tocline"><a class="tocxref" href="#applyconstraints-failure-callback"><span class="secno">11.1.3 </span>applyConstraints Failure Callback</><ul class="toc"></ul></li></ul></li><li class="tocline"><a class="tocxref" href="#registry"><span class="secno">11.2 </span>The Property Registry</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#dictionary-constraindoublerange-members"><span class="secno">11.2.1 </span>Dictionary <span class="formerLink"><code>ConstrainDoubleRange</code></span> Members</a></li><li class="tocline"><a class="tocxref" href="#dictionary-constrainlongrange-members"><span class="secno">11.2.2 </span>Dictionary <span class="formerLink"><code>ConstrainLongRange</code></span> Members</a></li><li class="tocline"><a class="tocxref" href="#dictionary-constraindomstringparameters-members"><span class="secno">11.2.3 </span>Dictionary <span class="formerLink"><code>ConstrainDOMStringParameters</code></span> Members</a></li><li class="tocline"><a class="tocxref" href="#dictionary-constrainvideofacingmodeparameters-members"><span class="secno">11.2.4 </span>Dictionary <span class="formerLink"><code>ConstrainVideoFacingModePrameters</code></span> Members</a></li></ul></li><li class="tocline"><a class="tocxref" href="#capabilities"><span class="secno">11.3 </span>Capabilities</a></li><li class="tocline"><a class="tocxref" href="#settings"><span class="secno">11.4 </span><span>Settings</span>
       </a></li><li class="tocline"><a class="tocxref" href="#constraints"><span class="secno">11.5 </span><span>Constraints and ConstraintSet</span>
-      </a><ul class="toc"><li class="tocline"><a class="tocxref" href="#dictionary-constraints-members"><span class="secno">11.5.1 </span>Dictionary <span class="formerLink"><code>Constraints</code></span> Members</a></li></ul></li></ul></li><li class="tocline"><a class="tocxref" href="#examples"><span class="secno">12. </span>Examples</a></li><li class="tocline"><a class="tocxref" href="#error-names"><span class="secno">13. </span>Error Names</a></li><li class="tocline"><a class="tocxref" href="#iana-registrations"><span class="secno">14. </span>IANA Registrations</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#track-property-registrations"><span class="secno">14.1 </span>Track Property Registrations</a></li></ul></li><li class="tocline"><a class="tocxref" href="#change-log"><span class="secno">15. </span>Change Log</a></li><li class="tocline"><a class="tocxref" href="#acknowledgements"><span class="secno">A. </span>Acknowledgements</a></li><li class="tocline"><a class="tocxref" href="#reerences"><span class="secno">B. </span>References</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#normative-references"><span class="secno">B.1 </span>Normative references</a></li><li class="tocline"><a class="tocxref" href="#informative-references"><span class="secno">B.2 </span>Informative references</a></li></ul></li></ul></section>
+      </a><ul class="toc"><li class="tocline"><a class="tocxref" href="#dictionary-constraints-members"><span class="secno">11.5.1 </span>Dictionary <span class="formerLink"><code>Constraints</code></span> Members</a></li></ul></li></ul></li><li class="tocline"><a class="tocxref" href="#examples"><span class="secno">12. </span>Examples</a></li><li class="tocline"><a class="tocxref" href="#error-names"><span class="secno">13. </span>Error Names</a></li><li class="tocline"><a class="tocxref" href="#privacy-and-security-considerations"><span class="secno">14. </span>Privacy and Security Considerations</a></li><li class="tocline"><a class="tocxref" href="#iana-registrations"><span class="secno">15. </span>IANA Registrations</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#track-property-registrations"><span class="secno">15.1 </span>Track Property Registrations</a></li></ul></li><li class="tocline"><a class="tocxref" href="#change-log"><span class="secno">16. </span>Change Log</a></li><li class"tocline"><a class="tocxref" href="#acknowledgements"><span class="secno">A. </span>Acknowledgements</a></li><li class="tocline"><a class="tocxref" href="#references"><span class="secno">B. </span>References</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#normative-references"><span class="secno">B.1 </span>Normative references</a></li><li class="tocline"><a class="tocxref" href="#informative-references"><span class="secno">B.2 </span>Informative references</a></li></ul></li></ul></section>
 
 
   
@@ -745,31 +745,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 class="internalDFN" href="#dfn-getsettings">getSettings()</a></code> method (which always
-        returns a setting that satisfies the constraints applied to
-        the track) and a <code><a class="internalDFN" href="#dfn-getnativesettings">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>
 
 
@@ -1096,16 +1071,10 @@
           algorithm).</p>
         </dd><dt id="widl-MediaStream-id"><code>id</code> of type <span class="idlAttrType">DOMString</span>, readonly   </dt><dd>
           <p>When a <code><a class="idlType" href="#idl-def-MediaStream"><code>MediaStream</code></a></code> object is created, the user
-          agent <em title="MUST" class="rfc2119">MUST</em> generate a globally unique identifier string, and <em title="MUST" class="rfc2119">MUST</em>
-          initialize the object's <code><a href="#dom-mediastream-id">id</a></code> attribute to that string. Such
-          strings <em title="MUST" class="rfc2119">MUST</em> 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 <em title="MUST" class="rfc2119">MUST</em> 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 <em title="MUST" class="rfc2119">MUST</em> generate an identifier string, and <em title="MUST" class="rfc2119">MUST</em> 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
           <em title="MUST" class="rfc2119">MUST</em> return the value to which it was initialized when the object was
@@ -1168,16 +1137,20 @@
 
 
             <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>
         <div><em>No parameters.</em></div><div><em>Return type: </em><code><a class="idlType" href="#idl-def-MediaStream"><code>MediaStream</code></a></code></div></dd><dt id="widl-MediaStream-getAudioTracks-sequence-MediaStreamTrack"><code>getAudioTracks</code></dt><dd>
           <p>Returns a sequence of <code><a class="idlType" href="#idl-def-MediaStreamTrack"><code>MediaStreamTrack</code></a></code> objects
@@ -1264,27 +1237,69 @@
       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 <em title="SHOULD" class="rfc2119">SHOULD</em> also remove the "permission granted" indicator for the source.</p>
+
 
       <section id="life-cycle-and-media-flow">
         <h4 id="h4_life-cycle-and-media-flow" role="heading" aria-level="3"><span class="secno">4.3.1 </span>Life-cycle and Media Flow</h4>
 
         <h4 id="life-cycle">Life-cycle</h4>
-        <p>A <code><a class="idlType" href="#idl-def-MediaStreamTrack"><code>MediaStreamTrack</code></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="#dom-mediastreamtrack-readystate">readyState</a></code> attribute.</p>
-
-        <div class="note"><div id="h_note_3" role="heading" aria-level="4" class="note-title"><span>Note</span></div><p class="">This document describres no way to create a
-        <code><a class="idlType" href="#idl-def-MediaStreamTrack"><code>MediaStreamTrack</code></a></code> that is _not_ connected to
-        a source. <code>new</code> allows for future extensions. </p></div>
+        <p>A <code><a class="idlType" href="#idl-def-MediaStreamTrack"><code>MediaStreamTrack</code></a></code> has two stages in its
+        life-cycle: <code>live</code> and <code>ended</code>.
+        A newly created <code><a class="idlType" href="#idl-def-MediaStreamTrack"><code>MediaStreamTrack</code></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>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 class="idlType" href="#idl-def-MediaStreamTrack"><code>MediaStreamTrack</code></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 class="idlType" href="#idl-def-MediaStreamTrack"><code>MediaStreamTrack</code></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 class="idlType" href="#idl-def-MediaStreamTrack"><code>MediaStreamTrack</code></a></code>
+        (contained within a <code><a class="idlType" href="#idl-def-MediaStream"><code>MediaStream</code></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 <em title="MUST" class="rfc2119">MUST</em> 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 class="idlType" href="#idl-def-MediaStreamTrack"><code>MediaStreamTrack</code></a></code> object is both unmuted and
+        enabled.</p>
+
+
+        <p>A <code><a class="idlType" href="#idl-def-MediaStreamTrack"><code>MediaStreamTrack</code></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 class="idlType" href="#idl-def-MediaStreamTrack"><code>MediaStreamTrack</code></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 class="idlType" href="#idl-def-MediaStreamTrack"><code>MediaStreamTrack</code></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 class="idlType" href="#idl-def-MediaStreamTrack"><code>MediaStreamTrack</code></a></code> object is said to
         <em>end</em> when the source of the track is disconnected or
         exhausted.</p>
@@ -1304,7 +1319,7 @@
         the file's end has been reached and the user has not requested that it
         be looped, or because the application invoked the <code><a href="#dom-mediastreamtrack-stop">stop()</a></code> method on
         the <code><a class="idlType" href="#idl-def-MediaStreamTrack"><code>MediaStreamTrack</code></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 class="idlType" href="#idl-def-MediaStreamTrack"><code>MediaStreamTrack</code></a></code> <var>track</var>
         ends for any reason other than the <code><a href="#dom-mediastreamtrack-stop">stop()</a></code> method being invoked,
@@ -1411,7 +1426,7 @@
         <p>When <code><a class="internalDFN" href="#dfn-applyconstraints">applyConstraints()</a></code> is called, a user agent
         <em title="MUST" class="rfc2119">MUST</em> 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 class="internalDFN" href="#dfn-sourcetype"><code>sourceType</code></a>
         changes, then the user agent <em title="MUST" class="rfc2119">MUST</em> perform the same actions to
         re-evaluate the constraints of each track affected by that source
         change.</p>
@@ -1441,15 +1456,14 @@
 <span class="idlAttribute">    readonly    attribute <span class="idlAttrType">boolean</span>               <span class="idlAttrName"><a href="#widl-MediaStreamTrack-_readonly">_readonly</a></span>;</span>
 <span class="idlAttribute">    readonly    attribute <span class="idlAttrType">boolean</span>               <span class="idlAttrName"><a href="#widl-MediaStreamTrack-remote">remote</a></span>;</span>
 <span class="idlAttribute">    readonly    attribute <span class="idlAttrType"><a class="idlType" href="#idl-def-MediaStreamTrackState"><code>MediaStreamTrackState</code></a></span> <span class="idlAttrName"><a href="#widl-MediaStreamTrack-readyState">readyState</a></span>;</span>
-<span class="idlAttribute">                attribute <span class="idlAttrType">EventHandler</span>          <span class="idlAttrName"><a href="#widl-MediaStreamTrack-onstarted">onstarted</a></span>;</span>
 <span class="idlAttribute">                attribute <span class="idlAttrType">EventHandler</span>          <span class="idlAttrName"><a href="#widl-MediaStreamTrack-onended">onended</a></span>;</span>
-<span class="idlMethod">    <span class="idlMethType"><a class="internalDFN" href="#dfn-settings">Settings</a></span>              <span class="idlMethName"><a href="#widl-MediaStreamTrack-getNativeSettings-Settings">getNativeSettings</a></span> ();</span>
 <span class="idlMethod">    <span class="idlMethType"><a class="idlType" href="#idl-def-MediaStreamTrack"><code>MediaStreamTrack</code></a></span>      <span class="idlMethName"><a href="#widl-MediaStreamTrack-clone-MediaStreamTrack">clone</a></span> ();</span>
 <span class="idlMethod">    <span class="idlMethType">void</span>                  <span class="idlMethName"><a href="#widl-MediaStreamTrack-stop-void">stop</a></span> ();</span>
 <span class="idlMethod">    <span class="idlMethType"><a class="internalDFN" href="#dfn-capabilities">Capabilities</a></span>          <span class="idlMethName"><a href="#widl-MediaStreamTrack-getCapabilities-Capabilities">getCapabilities</a></span> ();</span>
 <span class="idlMethod">    <span class="idlMethType"><a class="idlType" href="#idl-def-MediaTrackConstraints"><code>MediaTrackConstraints</code></a></span> <span class="idlMethName"><a href="#widl-MediaStreamTrack-getConstraints-MediaTrackConstraints">getConstraints</a></span> ();</span>
 <span class="idlMethod">    <span class="idlMethType"><a class="internalDFN" href="#dfn-settings">Settings</a></span>              <span class="idlMethName"><a href="#widl-MediaStreamTrack-getSettings-Settings">getSettings</a></span> ();</span>
 <span class="idlMethod">    <span class="idlMethType">void</span>                  <span class="idlMethName"><a href="#widl-MediaStreamTrack-applyConstraints-void-MediaTrackConstraints-constraints-VoidFunction-successCallback-ConstraintErrorCallback-errorCallback">applyConstraints</a></span> (<span class="idlParam"><span class="idlParamType"><a class="idlType" href="#idl-def-MediaTrackConstraints"><code>MediaTrackConstraints</code></a></span> <span class="idlParamName">constraints</span></span>, <span class="idlParam"><span class="idlParamType">VoidFunction</span> <span class="idlParamName">successCallback</span></span>, <span class="idlParam"><span class="idlParamType"><a class="idlType" href="#idl-def-ConstraintErrorCallback"><code>ConstraintErrorCallback</code></a></span> <span class="idlParamName">errorCallback</span></span>);</span>
+<span class="idlAttribute">                attribute <span class="idlAttrType">EventHandler</span>          <span class="idlAttrName"><a href="#widl-MediaStreamTrack-onoverconstrained">onoverconstrained</a></span>;</span>
 };</span></pre><section id="attributes-1"><h5 id="h5_attributes-1" role="heading" aria-level="4"><span class="secno">4.3.3.1 </span>Attributes</h5><dl class="attributes"><dt id="widl-MediaStreamTrack-enabled"><code>enabled</code> of type <span class="idlAttrType">boolean</span>,            </dt><dd>
             <p>The <dfn id="dom-mediastreamtrack-enabled"><code>MediaStreamTrack.enabled</code></dfn>
             attribute controls the <code><a href="#track-enabled">enabled</a></code> state for the object.</p>
@@ -1459,17 +1473,18 @@
             the <code><a class="idlType" href="#idl-def-MediaStreamTrack"><code>MediaStreamTrack</code></a></code> object has been <a href="#track-detached">detached</a> from its source or not.</p>
 
 
-            <div class="note"><div id="h_note_4" role="heading" aria-level="5" class="note-title"><span>Note</span></div><p class="">Thus, after a <code><a class="idlType" href="#idl-def-MediaStreamTrack"><code>MediaStreamTrack</code></a></code>
+            <div class="note"><div id="h_note_3" role="heading" aria-level="5" class="note-title"><span>Note</span></div><p class="">Thus, after a <code><a class="idlType" href="#idl-def-MediaStreamTrack"><code>MediaStreamTrack</code></a></code>
             is detached from its source, its <code><a href="#dom-mediastreamtrack-enabled">enabled</a></code> attribute still
             changes value when set; it just doesn't do anything with that new
             value.</p></div>
           </dd><dt id="widl-MediaStreamTrack-id"><code>id</code> of type <span class="idlAttrType">DOMString</span>, readonly   </dt><dd>
             <p>Unless a <code><a class="idlType" href="#idl-def-MediaStreamTrack"><code>MediaStreamTrack</code></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 <em title="MUST" class="rfc2119">MUST</em> generate a
-            globally unique identifier string and initialize the object's
+            track id must be initialized, the user agent <em title="MUST" class="rfc2119">MUST</em> 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
@@ -1499,9 +1514,10 @@
           by all objects implementing the <code><a class="idlType" href="#idl-def-MediaStreamTrack"><code>MediaStreamTrack</code></a></code>
           interface.</dd><dt id="widl-MediaStreamTrack-onmute"><code>onmute</code> of type <span class="idlAttrType">EventHandler</span>,            </dt><dd>This event handler, of type <code><a href="#event-mediastreamtrack-mute">mute</a></code>, <em title="MUST" class="rfc2119">MUST</em> be supported by
           all objects implementing the <code><a class="idlType" href="#idl-def-MediaStreamTrack"><code>MediaStreamTrack</code></a></code>
-          interface.</dd><dt id="widl-MediaStreamTrack-onstarted"><code>onstarted</code> of type <span class="idlAttrType">EventHandler</span>,            </dt><dd>This event handler, of type <code><a href="#event-mediastreamtrack-started">started</a></code>, <em title="MUST" class="rfc2119">MUST</em> be
-          supported by all objects implementing the
-          <code><a class="idlType" href="#idl-def-MediaStreamTrack"><code>MediaStreamTrack</code></a></code> interface.</dd><dt id="widl-MediaStreamTrack-onunmute"><code>onunmute</code> of type <span class="idlAttrType">EventHandler</span>,            </dt><dd>This event handler, of type <code><a href="#event-mediastreamtrack-unmute">unmute</a></code>, <em title="MUST" class="rfc2119">MUST</em> be supported
+          interface.</dd><dt id="widl-MediaStreamTrack-onoverconstrained"><code>onoverconstrained</code> of type <span class="idlAttrType">EventHandler</span>,            </dt><dd>
+            <p>See <a href="#constrainable-interface">ConstrainablePattern
+            Interface</a> for the definition of this event handler.</p>
+          </dd><dt id="widl-MediaStreamTrack-onunmute"><code>onunmute</code> of type <span class="idlAttrType">EventHandler</span>,            </dt><dd>This event handler, of type <code><a href="#event-mediastreamtrack-unmute">unmute</a></code>, <em title="MUST" class="rfc2119">MUST</em> be supported
           by all objects implementing the <code><a class="idlType" href="#idl-def-MediaStreamTrack"><code>MediaStreamTrack</code></a></code>
           interface.</dd><dt id="widl-MediaStreamTrack-_readonly"><code>readonly</code> of type <span class="idlAttrType">boolean</span>, readonly   </dt><dd>If the track (audio or video) is backed by a read-only source
           such as a file, or the track source is a local microphone or camera,
@@ -1512,12 +1528,12 @@
             <p>The <dfn id="dom-mediastreamtrack-readystate"><code>readyState</code></dfn>
             attribute represents the state of the track. It <em title="MUST" class="rfc2119">MUST</em> return the
             value to which the user agent last set it.</p>
-          </dd><dt id="widl-MediaStreamTrack-remote"><code>remote</code> of type <span class="idlAttrType">boolean</span>, readonly   </dt><dd>If the track is sourced by an <code>RTCPeerConnection</code>, the
+          </dd><dt id="widl-MediaStreamTrack-remote"><code>remote</code> of type <span class="idlAttrType">boolean</span>, readonly   </dt><dd>If the track is sourced by a non-local source, the
           <dfn id="dom-mediastreamtrack-remote"><code>remote</code></dfn>
           attribute <em title="MUST" class="rfc2119">MUST</em> return the value <code>true</code>. Otherwise, it must
           return the value <code>false</code>.</dd></dl></section><section id="methods-1"><h5 id="h5_methods-1" role="heading" aria-level="4"><span class="secno">4.3.3.2 </span>Methods</h5><dl class="methods"><dt id="widl-MediaStreamTrack-applyConstraints-void-MediaTrackConstraints-constraints-VoidFunction-successCallback-ConstraintErrorCallback-errorCallback"><code>applyConstraints</code></dt><dd>
          
-         See <a href="#constraintable-interface">ConstrainablePattern Interface</a>
+         See <a href="#constrainable-interface">ConstrainablePattern Interface</a>
          for the definition of this method.<table class="parameters"><tbody><tr><th>Parameter</th><th>Type</th><th>Nullable</th><th>Optional</th><th>Description</th></tr><tr><td class="prmName">constraints</td><td class="prmType"><code><a class="idlType" href="#idl-def-MediaTrackConstraints"><code>MediaTrackConstraints</code></a></code></td><td class="prmNullFalse"><span role="img" aria-label="False">✘</span></td><td class="prmOptFalse"><span role="img" aria-label="False">✘</span></td><td class="prmDesc">A new constraint structure to apply to this object.</td></tr><tr><td class="prmName">successCallback</td><td class="prmType"><code>VoidFunction</code></td><td class="prmNullFalse"><span role="img" aria-label="False">✘</span></td><td class="prmOptFalse"><span role="img" aria-label="False">✘</span></td><td class="prmDesc">Called if the required constraints can be satisfied.</td></tr><tr><td class="prmName">errorCallback</td><td class="prmType"><code><a class="idlType" href="#idl-def-ConstraintErrorCalback"><code>ConstraintErrorCallback</code></a></code></td><td class="prmNullFalse"><span role="img" aria-label="False">✘</span></td><td class="prmOptFalse"><span role="img" aria-label="False">✘</span></td><td class="prmDesc">Called if the required constraints cannot be satisfied.</td></tr></tbody></table><div><em>Return type: </em><code>void</code></div></dd><dt id="widl-MediaStreamTrack-clone-MediaStreamTrack"><code>clone</code></dt><dd>
             <p>Clones the given <code><a class="idlType" href="#idl-def-MediaStreamTrack"><code>MediaStreamTrack</code></a></code>.</p>
 
@@ -1552,22 +1568,11 @@
               </li>
             </ol>
           <div><em>No parameters.</em></div><div><em>Return type: </em><code><a class="idlType" href="#idl-def-MediaStreamTrack"><code>MediaStreamTrack</code></a></code></div></dd><dt id="widl-MediaStreamTrack-getCapabilities-Capabilities"><code>getCapabilities</code></dt><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>
-        <div><em>No parameters.</em></div><div><em>Return type: </em><code><a class="internalDFN" href="#dfn-capabilities">Capabilities</a></code></div></dd><dt id="widl-MediaStreamTrack-getConstraints-MediaTrackConstraints"><code>getConstraints</code></dt><dd>See <a href="#constraintable-interface">ConstrainablePattern Interface</a>
+        <div><em>No parameters.</em></div><div><em>Return type: </em><code><a class="internalDFN" href="#dfn-capabilities">Capabilities</a></code></div></dd><dt id="widl-MediaStreamTrack-getConstraints-MediaTrackConstraints"><code>getConstraints</code></dt><dd>See <a href="#constrainable-interface">ConstrainablePattern Interface</a>
           for the definition of this method.
-        <div><em>No parameters.</em></div><div><em>Return type: </em><code><a class="idlType" href="#idl-def-MediaTrackConstraints"><code>MediaTrackConstraints</code></a></code></div></dd><dt id="widl-MediaStreamTrack-getNativeSettings-Settings"><code>getNativeSettings</code></dt><dd>The <dfn id="dfn-getnativesettings">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 class="internalDFN" href="#dfn-getsettings">getSettings()</a></code>
-          method, this return object a) <em title="MUST" class="rfc2119">MUST</em> reflect, to the best of
-          the User Agent's ability, the actual native settings of the
-          source device, b) <em title="MAY" class="rfc2119">MAY</em> 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)
-          <em title="MUST" class="rfc2119">MUST</em> be the same for all tracks associated with this same
-          source.<div><em>No parameters.</em></div><div><em>Return type: </em><code><a class="internalDFN" href="#dfn-settings">Settings</a></code></div></dd><dt id="widl-MediaStreamTrack-getSettings-Settings"><code>getSettings</code></dt><dd>See <a href="#constraintable-interface">ConstrainablePattern Interface</a>
+        <div><em>No parameters.</em></div><div><em>Return type: </em><code><a class="idlType" href="#idl-def-MediaTrackConstraints"><code>MediaTrackConstraints</code></a></code></div></dd><dt id="widl-MediaStreamTrack-getSettings-Settings"><code>getSettings</code></dt><dd>See <a href="#constrainable-interface">ConstrainablePattern Interface</a>
           for the definition of this method.
         <div><em>No parameters.</em></div><div><em>Return type: </em><code><a class="internalDFN" href="#dfn-settings">Settings</a></code></div></dd><dt id="widl-MediaStreamTrack-stop-void"><code>stop</code></dt><dd>
             <p>When a <code><a class="idlType" href="#idl-def-MediaStreamTrack"><code>MediaStreamTrack</code></a></code> object's <dfn id="dom-mediastreamtrack-stop"><code>stop()</code></dfn> method is
@@ -1582,10 +1587,8 @@
 
 
               <li>
-                <p>If <var>track</var> has no source attached
-                (<code><a class="internalDFN" href="#dfn-sourcetype">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>
 
 
@@ -1609,12 +1612,9 @@
 
 
         <pre class="idl"><span class="idlEnum" id="idl-def-MediaStreamTrackState">enum <span class="idlEnumID">MediaStreamTrackState</span> {
-    "<a href="#idl-def-MediaStreamTrackState.new" class="idlEnumItem">new</a>",
     "<a href="#idl-def-MediaStreamTrackState.live" class="idlEnumItem">live</a>",
     "<a href="#idl-def-MediaStreamTrackState.ended" class="idlEnumItem">ended</a>"
-};</span></pre><table class="simple"><tbody><tr><th colspan="2">Enumeration description</th></tr><tr><td><code id="idl-def-MediaStreamTrackState.new">new</code></td><td>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.</td></tr><tr><td><code id="idl-def-MediaStreamTrackState.live">live</code></td><td>
+};</span></pre><table class="simple"><tbody><tr><th colspan="2">Enumeration description</th></tr><tr><td><code id="idl-def-MediaStreamTrackState.live">live</code></td><td>
             <p>The track is active (the track's underlying media source is
             making a best-effort attempt to provide data in real time).</p>
 
@@ -1640,12 +1640,9 @@
 
 
         <pre class="idl"><span class="idlEnum" id="idl-def-SourceTypeEnum">enum <span class="idlEnumID">SourceTypeEnum</span> {
-    "<a href="#idl-def-SourceTypeEnum.none" class="idlEnumItem">none</a>",
     "<a href="#idl-def-SourceTypeEnum.camera" class="idlEnumItem">camera</a>",
     "<a href="#idl-def-SourceTypeEnum.microphone" class="idlEnumItem">microphone</a>"
-};</span></pre><table class="simple"><tbody><tr><th colspan="2">Enumeration description</th></tr><tr><td><code id="idl-def-SourceTypeEnum.none">none</code></td><td>This track has no source. This is the case when the track is in
-          the <code>"new"</code> or <code>"ended"</code>
-          <code><a class="internalDFN" href="#dom-mediastreamtrack-readystate">readyState</a></code>.</td></tr><tr><td><code id="idl-def-SourceTypeEnum.camera">camera</code></td><td>A valid source type only for video
+};</span></pre><table class="simple"><tbody><tr><th colspan="2">Enumeration description</th></tr><tr><td><code id="idl-def-SourceTypeEnum.camera">camera</code></td><td>A valid source type only for video
           <code><a class="idlType" href="#idl-def-MediaStreamTrack"><code>MediaStreamTrack</code></a></code>s. The source is a local
           video-producing camera source.</td></tr><tr><td><code id="idl-def-SourceTypeEnum.microphone">microphone</code></td><td>A valid source type only for audio
           <code><a class="idlType" href="#idl-def-MediaStreamTrack"><code>MediaStreamTrack</code></a></code>s. The source is a local
@@ -1664,59 +1661,15 @@
 <span class="idlMember">    <span class="idlMemberType"><a class="idlType" href="#idl-def-ConstrainLong"><code>ConstrainLong</code></a></span>            <span class="idlMemberName"><a href="#widl-MediaTrackConstraintSet-height">height</a></span>;</span>
 <span class="idlMember">    <span class="idlMemberType"><a class="idlType" href="#idl-def-ConstrainDouble"><code>ConstrainDouble</code></a></span>          <span class="idlMemberName"><a href="#widl-MediaTrackConstraintSet-aspectRatio">aspectRatio</a></span>;</span>
 <span class="idlMember">    <span class="idlMemberType"><a class="idlType" href="#idl-def-ConstrainDouble"><code>ConstrainDouble</code></a></span>          <span class="idlMemberName"><a href="#widl-MediaTrackConstraintSet-frameRate">frameRate</a></span>;</span>
-<span class="idlMember">    <span class="idlMemberType">ConstrainVideoFacingMode</span> <span class="idlMemberName"><a href="#widl-MediaTrackConstraintSet-facingMode">facingMode</a></span>;</span>
+<span class="idlMember">    <span class="idlMemberType"><a class="idlType" href="#idl-def-ConstrainVideoFacingMode"><code>ConstrainVideoFacingMode</code></a></span> <span class="idlMemberName"><a href="#widl-MediaTrackConstraintSet-facingMode">facingMode</a></span>;</span>
 <span class="idlMember">    <span class="idlMemberType"><a class="idlType" href="#idl-def-ConstrainDouble"><code>ConstrainDouble</code></a></span>          <span class="idlMemberName"><a href="#widl-MediaTrackConstraintSet-volume">volume</a></span>;</span>
 <span class="idlMember">    <span class="idlMemberType"><a class="idlType" href="#idl-def-ConstrainLong"><code>ConstrainLong</code></a></span>            <span class="idlMemberName"><a href="#widl-MediaTrackConstraintSet-sampleRate">sampleRate</a></span>;</span>
 <span class="idlMember">    <span class="idlMemberType"><a class="idlType" href="#idl-def-ConstrainLong"><code>ConstrainLong</code></a></span>            <span class="idlMemberName"><a href="#widl-MediaTrackConstraintSet-sampleSize">sampleSize</a></span>;</span>
 <span class="idlMember">    <span class="idlMemberType">boolean</span>                  <span class="idlMemberName"><a href="#widl-MediaTrackConstraintSet-echoCancelation">echoCancelation</a></span>;</span>
-<span class="idlMember">    <span class="idlMemberType">ConstrainDOMString</span>       <span class="idlMemberName"><a href="#widl-MediaTrackConstraintSet-sourceId">sourceId</a></span>;</span>
-};</span></pre><section id="dictionary-mediatrackconstraintset-members"><h5 id="h5_dictionary-mediatrackconstraintset-members" role="heading" aria-level="4"><span class="secno">4.3.5.2 </span>Dictionary <a href="#idl-def-MediaTrackConstraintSet" class="idlType"><code>MediaTrackConstraintSet</code></a> Members</h5><dl class="dictionary-members"><dt id="widl-MediaTrackConstraintSet-aspectRatio"><code>aspectRatio</code> of type <span class="idlMemberType"><a class="idlType" href="#idl-def-ConstrainDouble"><code>ConstrainDouble</code></a></span></dt><dd> </dd><dt id="widl-MediaTrackConstraintSet-echoCancelation"><code>echoCancelation</code> of type <span class="idlMemberType">boolean</span></dt><dd> </dd><dt id="widl-MediaTrackConstraintSet-facingMode"><code>facingMode</code> of type <span class="idlMemberType">ConstrainVideoFacingMode</span></dt><dd> </dd><dt id="widl-MediaTrackConstraintSet-frameRate"><code>frameRate</code> of type <span class="idlMemberType"><a class="idlType" href="#idl-def-ConstrainDouble><code>ConstrainDouble</code></a></span></dt><dd> </dd><dt id="widl-MediaTrackConstraintSet-height"><code>height</code> of type <span class="idlMemberType"><a class="idlType" href="#idl-def-ConstrainLong"><code>ConstrainLong</code></a></span></dt><dd> </dd><dt id="widl-MediaTrackConstraintSet-sampleRate"><code>sampleRate</code> of type <span class="idlMemberType"><a class="idlType" href="#idl-def-ConstrainLong"><code>ConstrainLong</code></a></span></dt><dd> </dd><dt id="widl-MediaTrackConstraintSet-sampleSize"><code>sampleSize</code> of type <span class="idlMemberType"><a class="idlType" href="#idl-def-ConstrainLong"><code>ConstrainLong</code></a></span></dt><dd> </dd><dt id="widl-MediaTrackConstraintSet-sourceId"><code>sourceId</code> of type <span class="idlMemberType">ConstrainDOMString</span></dt><dd> </dd><dt id="widl-MediaTrackConstraintSet-volume"><code>volume</code> of type <span class="idlMemberType"><a class="idlType" href="#idl-def-ConstrainDouble"><code>ConstrainDouble</code></a></span></dt><dd></dd><dt id="widl-MediaTrackConstraintSet-width"><code>width</code> of type <span class="idlMemberType"><a class="idlType" href="#idl-def-ConstrainLong"><code>ConstrainLong</code></a></span></dt><dd> </dd></dl></section>
+<span class="idlMember">    <span class="idlMemberType"><a class="idlType" href="#idl-def-ConstrainDOMString"><code>ConstrainDOMString</code></a></span>       <span class="idlMemberName"><a href="#widl-MediaTrackConstraintSet-sourceId">sourceId</a></span>;</span>
+<span class="idlMember">    <span class="idlMemberType">DOMString</span>                <span class="idlMemberName"><a href="#widl-MediaTrackConstraintSet-groupId">groupId</a></span>;</span>
+};</span></pre><section id="dictionary-mediatrackconstraintset-members"><h5 id="h5_dictionary-mediatrackconstraintset-members" role="heading" aria-level="4"><span class="secno">4.3.5.2 </span>Dictionary <a href="#idl-def-MediaTrackConstraintSet" class="idlType"><code>MediaTrackConstraintSet</code></a> Members</h5><dl class="dictionary-members"><dt id="widl-MediaTrackConstraintSet-aspectRatio"><code>aspectRatio</code> of type <span class="idlMemberType"><a class="idlType" href="#idl-def-ConstrainDouble"><code>ConstrainDouble</code></a></span></dt><dd> </dd><dt id="widl-MediaTrackConstraintSet-echoCancelation"><code>echoCancelation</code> of type <span class="idlMemberType">boolean</span></dt><dd> </dd><dt id="widl-MediaTrackConstraintSet-facingMode"><code>facingMode</code> of type <span class="idlMemberType"><a class="idlType" href="#idl-def-ConstrainVideoFacingMode"><code>ConstrainVideoFacingMode</code></a></span></dt><dd> </dd><dt id="widl-MediaTrackConstraintSet-frameRate"><code>frameRate</code> of type span class="idlMemberType"><a class="idlType" href="#idl-def-ConstrainDouble"><code>ConstrainDouble</code></a></span></dt><dd> </dd><dt id="widl-MediaTrackConstraintSet-groupId"><code>groupId</code> of type <span class="idlMemberType">DOMString</span></dt><dd> </dd><dt id="widl-MediaTrackConstraintSet-height"><code>height</code> of type <span class="idlMemberType"><a class="idlType" href="#idl-def-ConstrainLong"><code>ConstrainLong</code></a></span></dt><dd> </dd><dt id="widl-MediaTrackConstraintSet-sampleRate"><code>sampleRate</code> of type <span class="idlMemberType"><a class="idlType" href="#idl-def-ConstrainLong"><code>ConstrainLong</code></a></span></dt><dd> </dd><dt id="widl-MediaTrackConstraintSet-sampleSize"><code>sampleSize</code> of type <span class="idlMemberType"><a class="idlType" href="#idl-def-ConstrainLong"><code>ConstrainLong</code></a></span></dt><dd> </dd><dt id="widl-MediaTrackConstraintSet-sourceId"><code>sourceId</code> of type <span class="idlMemberType"><a class="idlType" href="#idldef-ConstrainDOMString"><code>ConstrainDOMString</code></a></span></dt><dd> </dd><dt id="widl-MediaTrackConstraintSet-volume"><code>volume</code> of type <span class="idlMemberType"><a class="idlType" href="#idl-def-ConstrainDouble"><code>ConstrainDouble</code></a></span></dt><dd> </dd><dt id="widl-MediaTrackConstraintSet-width"><code>width</code> of type <span class="idlMemberType"><a class="idlType" href="#idl-def-ConstrainLong"><code>ConstrainLong</code></a></span></dt><dd> </dd></dl></section>
       </section>
-
-      <section id="isolated-media-streams">
-        <h4 id="h4_isolated-media-streams" role="heading" aria-level="3"><span class="secno">4.3.6 </span>Isolated Media Streams</h4>
-
-
-        <p>When the <code><dfn id="dfn-peeridentity">peerIdentity</dfn></code> option is supplied to
-        <code>getUserMedia</code>, the resulting
-        <code><a class="idlType" href="#idl-def-MediaStream"><code>MediaStream</code></a></code> is isolated so that its content is not
-        accessible to any application. An isolated
-        <code><a class="idlType" href="#idl-def-MediaStream"><code>MediaStream</code></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 <em title="MUST" class="rfc2119">MUST</em> 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 [<cite><a href="#bib-HTML5" class="bibref">HTML5</a></cite>].</p>
-          </li>
-
-
-          <li>
-            <p>Used as the argument to addStream() for an RTCPeerConnection,
-            subject to the restrictions detailed in [<cite><a href="#bib-WEBRTC10" class="bibref">WEBRTC10</a></cite>].</p>
-          </li>
-        </ul>

[392 lines skipped]
--- /sources/public/2011/webrtc/editor/webrtc.html	2014/06/17 12:06:06	1.39
+++ /sources/public/2011/webrtc/editor/webrtc.html	2014/07/04 11:38:59	1.40
@@ -48,7 +48,7 @@
 }
 
 code {
-    color:  #ff4500;
+    color:  #C83500;
 }
 
 /* --- TOC --- */
@@ -437,11 +437,11 @@
   </p>
   <h1 class="title p-name" id="title" property="dcterms:title">WebRTC 1.0: Real-time Communication Between Browsers</h1>
   
-  <h2 id="w3c-editor-s-draft-17-june-2014" property="dcterms:issued" datatype="xsd:dateTime" content="2014-06-17T10:55:37.000Z"><acronym title="World Wide Web Consortium">W3C</acronym> Editor's Draft <time class="dt-published" datetime="2014-06-17">17 June 2014</time></h2>
+  <h2 id="w3c-editor-s-draft-01-july-2014" property="dcterms:issued" datatype="xsd:dateTime" content="2014-07-01T10:16:49.000Z"><acronym title="World Wide Web Consortium">W3C</acronym> Editor's Draft <time class="dt-published" datetime="2014-07-01">01 July 2014</time></h2>
   <dl>
     
       <dt>This version:</dt>
-      <dd><a class="u-url" href="http://dev.w3.org/2011/webrtc/editor/archives/20140617/webrtc.html">http://dev.w3.org/2011/webrtc/editor/archives/20140617/webrtc.html</a></dd>
+      <dd><a class="u-url" href="http://dev.w3.org/2011/webrtc/editor/archive/20140704/webrtc.html">http://dev.w3.org/2011/webrtc/editor/archive/20140704/webrtc.html</a></dd>
       <dt>Latest published version:</dt>
       <dd><a href="http://www.w3.org/TR/webrtc/">http://www.w3.org/TR/webrtc/</a></dd>
     
@@ -455,7 +455,7 @@
     
       
         <dt>Previous editor's draft:</dt>
-        <dd><a href="http://dev.w3.org/2011/webrtc/editor/archives/20140410/webrtc.html">http://dev.w3.org/2011/webrtc/editor/archives/20140410/webrtc.html</a></dd>
+        <dd><a href="http://dev.w3.org/2011/webrtc/editor/archives/20140617/webrtc.html">http://dev.w3.org/2011/webrtc/editor/archives/20140617/webrtc.html</a></dd>
       
     
     
@@ -579,7 +579,7 @@
       
     
   
-</section><section id="toc"><h2 id="h2_toc" role="heading" aria-level="1" class="introductory">Table of Contents</h2><ul id="respecContents" role="directory" class="toc"><li class="tocline"><a class="tocxref" href="#intro"><span class="secno">1. </span>Introduction</a></li><li class="tocline"><a class="tocxref" href="#conformance"><span class="secno">2. </span>Conformance</a></li><li class="tocline"><a class="tocxref" href="#terminology"><span class="secno">3. </span>Terminology</a></li><li class="tocline"><a class="tocxref" href="#peer-to-peer-connections"><span class="secno">4. </span>Peer-to-peer connections</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#introduction"><span class="secno">4.1 </span>Introduction</a></li><li class="tocline"><a class="tocxref" href="#configuration"><span class="secno">4.2 </span>Configuration</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#rtcconfiguration-type"><span class="secno">4.2.1 </span>RTCConfiguration Type</a><ul class="toc"><liclass="tocline"><a class="tocxref" href="#dictionary-rtcconfiguration-members"><span class="secno">4.2.1.1 </span>Dictionary <span class="formerLink"><code>RTCConfiguration</code></span> Members</a></li></ul></li><li class="tocline"><a class="tocxref" href="#rtciceserver-type"><span class="secno">4.2.2 </span>RTCIceServer Type</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#dictionary-rtciceserver-members"><span class="secno">4.2.2.1 </span>Dictionary <span class="formerLink"><code>RTCIceServer</code></span> Members</a></li></ul></li><li class="tocline"><a class="tocxref" href="#rtcicetransports-enum"><span class="secno">4.2.3 </span>RTCIceTransports Enum</a></li><li class="tocline"><a class="tocxref" href="#offer-answer-options"><span class="secno">4.2.4 </span>Offer/Answer Options</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#dictionary-rtcofferansweroptions-members"><span class="secno">4.2.4.1 </span>Dictionary <span class="formerLink"><code>RTCOfferAnswerOptions</code</span> Members</a></li><li class="tocline"><a class="tocxref" href="#dictionary-rtcofferoptions-members"><span class="secno">4.2.4.2 </span>Dictionary <span class="formerLink"><code>RTCOfferOptions</code></span> Members</a></li></ul></li></ul></li><li class="tocline"><a class="tocxref" href="#rtcpeerconnection-interface"><span class="secno">4.3 </span>RTCPeerConnection Interface</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#operation"><span class="secno">4.3.1 </span>Operation</a></li><li class="tocline"><a class="tocxref" href="#interface-definition"><span class="secno">4.3.2 </span>Interface Definition</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#constructors"><span class="secno">4.3.2.1 </span>Constructors</a></li><li class="tocline"><a class="tocxref" href="#attributes"><span class="secno">4.3.2.2 </span>Attributes</a></li><li class="tocline"><a class="tocxref" href="#methods"><span class="secno">4.3.2.3 </span>Methods</a></li></ul></li><li class="tocline"><a clas="tocxref" href="#garbage-collection"><span class="secno">4.3.3 </span>Garbage collection</a></li></ul></li><li class="tocline"><a class="tocxref" href="#state-definitions"><span class="secno">4.4 </span>State Definitions</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#rtcpeerstate-enum"><span class="secno">4.4.1 </span>RTCPeerState Enum</a></li><li class="tocline"><a class="tocxref" href="#rtcicegatheringstate-enum"><span class="secno">4.4.2 </span>RTCIceGatheringState Enum</a></li><li class="tocline"><a class="tocxref" href="#rtciceconnectionstate-enum"><span class="secno">4.4.3 </span>RTCIceConnectionState Enum</a></li></ul></li><li class="tocline"><a class="tocxref" href="#callback-definitions"><span class="secno">4.5 </span>Callback Definitions</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#rtcpeerconnectionerrorcallback"><span class="secno">4.5.1 </span>RTCPeerConnectionErrorCallback</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#callback-rtcpeerconectionerrorcallback-parameters"><span class="secno">4.5.1.1 </span>Callback <span class="formerLink"><code>RTCPeerConnectionErrorCallback</code></span> Parameters</a></li></ul></li></ul></li><li class="tocline"><a class="tocxref" href="#error-handling"><span class="secno">4.6 </span>Error Handling</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#general-principles"><span class="secno">4.6.1 </span>General Principles</a></li><li class="tocline"><a class="tocxref" href="#rtcsdperror"><span class="secno">4.6.2 </span>RTCSdpError</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#attributes-1"><span class="secno">4.6.2.1 </span>Attributes</a></li></ul></li></ul></li><li class="tocline"><a class="tocxref" href="#session-description-model"><span class="secno">4.7 </span>Session Description Model</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#rtcsdptype"><span class="secno">4.7.1 </span>RTCSdpType</a></li><li class="tocline"><a class="tocxref" href="#rtcsessiondescrition-class"><span class="secno">4.7.2 </span>RTCSessionDescription Class</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#constructors-1"><span class="secno">4.7.2.1 </span>Constructors</a></li><li class="tocline"><a class="tocxref" href="#attributes-2"><span class="secno">4.7.2.2 </span>Attributes</a></li><li class="tocline"><a class="tocxref" href="#serializer"><span class="secno">4.7.2.3 </span>Serializer</a></li><li class="tocline"><a class="tocxref" href="#dictionary-rtcsessiondescriptioninit-members"><span class="secno">4.7.2.4 </span>Dictionary <span class="formerLink"><code>RTCSessionDescriptionInit</code></span> Members</a></li></ul></li><li class="tocline"><a class="tocxref" href="#rtcsessiondescriptioncallback"><span class="secno">4.7.3 </span>RTCSessionDescriptionCallback</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#callback-rtcsessiondescriptioncallback-parameters"><span class="secno">4.7.3.1 </span>Callback <span class="formerLink"><code>RTCSessionDescriptioCallback</code></span> Parameters</a></li></ul></li></ul></li><li class="tocline"><a class="tocxref" href="#interfaces-for-connectivity-establishment"><span class="secno">4.8 </span>Interfaces for Connectivity Establishment</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#rtcicecandidate-type"><span class="secno">4.8.1 </span>RTCIceCandidate Type</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#constructors-2"><span class="secno">4.8.1.1 </span>Constructors</a></li><li class="tocline"><a class="tocxref" href="#attributes-3"><span class="secno">4.8.1.2 </span>Attributes</a></li><li class="tocline"><a class="tocxref" href="#serializer-1"><span class="secno">4.8.1.3 </span>Serializer</a></li><li class="tocline"><a class="tocxref" href="#dictionary-rtcicecandidateinit-members"><span class="secno">4.8.1.4 </span>Dictionary <span class="formerLink"><code>RTCIceCandidateInit</code></span> Members</a></li></ul></li><li class="tocline"><a class="tocxref" href="#rtcpeerconnectioniceevet"><span class="secno">4.8.2 </span>RTCPeerConnectionIceEvent</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#constructors-3"><span class="secno">4.8.2.1 </span>Constructors</a></li><li class="tocline"><a class="tocxref" href="#attributes-4"><span class="secno">4.8.2.2 </span>Attributes</a></li><li class="tocline"><a class="tocxref" href="#dictionary-rtcpeerconnectioniceeventinit-members"><span class="secno">4.8.2.3 </span>Dictionary <span class="formerLink"><code>RTCPeerConnectionIceEventInit</code></span> Members</a></li></ul></li></ul></li></ul></li><li class="tocline"><a class="tocxref" href="#peer-to-peer-data-api"><span class="secno">5. </span>Peer-to-peer Data API</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#rtcpeerconnection-interface-extensions"><span class="secno">5.1 </span>RTCPeerConnection Interface Extensions</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#attributes-5"><span class="secno">5.1.1 </span>Attributes</a></li><li class="tocline"<a class="tocxref" href="#methods-1"><span class="secno">5.1.2 </span>Methods</a></li></ul></li><li class="tocline"><a class="tocxref" href="#rtcdatachannel"><span class="secno">5.2 </span>RTCDataChannel</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#attributes-6"><span class="secno">5.2.1 </span>Attributes</a></li><li class="tocline"><a class="tocxref" href="#methods-2"><span class="secno">5.2.2 </span>Methods</a></li><li class="tocline"><a class="tocxref" href="#dictionary-rtcdatachannelinit-members"><span class="secno">5.2.3 </span>Dictionary <span class="formerLink"><code>RTCDataChannelInit</code></span> Members</a></li></ul></li><li class="tocline"><a class="tocxref" href="#rtcdatachannelevent"><span class="secno">5.3 </span>RTCDataChannelEvent</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#constructors-4"><span class="secno">5.3.1 </span>Constructors</a></li><li class="tocline"><a class="tocxref" href="#attributes-7"><span class="secno">5.3.2 </span>Attributes</a></i><li class="tocline"><a class="tocxref" href="#dictionary-rtcdatachanneleventinit-members"><span class="secno">5.3.3 </span>Dictionary <span class="formerLink"><code>RTCDataChannelEventInit</code></span> Members</a></li></ul></li><li class="tocline"><a class="tocxref" href="#garbage-collection-1"><span class="secno">5.4 </span>Garbage Collection</a></li></ul></li><li class="tocline"><a class="tocxref" href="#peer-to-peer-dtmf"><span class="secno">6. </span>Peer-to-peer DTMF</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#rtcpeerconnection-interface-extensions-1"><span class="secno">6.1 </span>RTCPeerConnection Interface Extensions</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#methods-3"><span class="secno">6.1.1 </span>Methods</a></li></ul></li><li class="tocline"><a class="tocxref" href="#rtcdtmfsender"><span class="secno">6.2 </span>RTCDTMFSender</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#attributes-8"><span class="secno">6.2.1 </span>Attributes</></li><li class="tocline"><a class="tocxref" href="#methods-4"><span class="secno">6.2.2 </span>Methods</a></li></ul></li><li class="tocline"><a class="tocxref" href="#rtcdtmftonechangeevent"><span class="secno">6.3 </span>RTCDTMFToneChangeEvent</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#constructors-5"><span class="secno">6.3.1 </span>Constructors</a></li><li class="tocline"><a class="tocxref" href="#attributes-9"><span class="secno">6.3.2 </span>Attributes</a></li><li class="tocline"><a class="tocxref" href="#dictionary-rtcdtmftonechangeeventinit-members"><span class="secno">6.3.3 </span>Dictionary <span class="formerLink"><code>RTCDTMFToneChangeEventInit</code></span> Members</a></li></ul></li></ul></li><li class="tocline"><a class="tocxref" href="#statistics-model"><span class="secno">7. </span>Statistics Model</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#introduction-1"><span class="secno">7.1 </span>Introduction</a></li><li class="tocline"><a class="tocxref" hef="#rtcpeerconnection-interface-extensions-2"><span class="secno">7.2 </span>RTCPeerConnection Interface Extensions</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#methods-5"><span class="secno">7.2.1 </span>Methods</a></li></ul></li><li class="tocline"><a class="tocxref" href="#rtcstatscallback"><span class="secno">7.3 </span>RTCStatsCallback</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#callback-rtcstatscallback-parameters"><span class="secno">7.3.1 </span>Callback <span class="formerLink"><code>RTCStatsCallback</code></span> Parameters</a></li></ul></li><li class="tocline"><a class="tocxref" href="#rtcstatsreport-object"><span class="secno">7.4 </span>RTCStatsReport Object</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#methods-6"><span class="secno">7.4.1 </span>Methods</a></li></ul></li><li class="tocline"><a class="tocxref" href="#rtcstats-dictionary"><span class="secno">7.5 </span>RTCStats Dictionary</a><ul class="toc"><li class="tocline"><a class"tocxref" href="#dictionary-rtcstats-members"><span class="secno">7.5.1 </span>Dictionary <span class="formerLink"><code>RTCStats</code></span> Members</a></li></ul></li><li class="tocline"><a class="tocxref" href="#derived-stats-dictionaries"><span class="secno">7.6 </span>Derived Stats Dictionaries</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#dictionary-rtcrtpstreamstats-members"><span class="secno">7.6.1 </span>Dictionary <span class="formerLink"><code>RTCRTPStreamStats</code></span> Members</a></li><li class="tocline"><a class="tocxref" href="#dictionary-rtcinboundrtpstreamstats-members"><span class="secno">7.6.2 </span>Dictionary <span class="formerLink"><code>RTCInboundRTPStreamStats</code></span> Members</a></li><li class="tocline"><a class="tocxref" href="#dictionary-rtcoutboundrtpstreamstats-members"><span class="secno">7.6.3 </span>Dictionary <span class="formerLink"><code>RTCOutboundRTPStreamStats</code></span> Members</a></li></ul></li><li class="tocline"><a class="tocxref" hef="#example"><span class="secno">7.7 </span>Example</a></li></ul></li><li class="tocline"><a class="tocxref" href="#identity"><span class="secno">8. </span>Identity</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#identity-provider-interaction"><span class="secno">8.1 </span>Identity Provider Interaction</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#identity-provider-selection"><span class="secno">8.1.1 </span>Identity Provider Selection</a></li><li class="tocline"><a class="tocxref" href="#instantiating-an-idp-proxy"><span class="secno">8.1.2 </span>Instantiating an IdP Proxy</a></li></ul></li><li class="tocline"><a class="tocxref" href="#requesting-identity-assertions"><span class="secno">8.2 </span>Requesting Identity Assertions</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#user-login-procedure"><span class="secno">8.2.1 </span>User Login Procedure</a></li></ul></li><li class="tocline"><a class="tocxref" href="#verifying-identity-assertions"><span clss="secno">8.3 </span>Verifying Identity Assertions</a></li><li class="tocline"><a class="tocxref" href="#rtcpeerconnection-interface-extensions-3"><span class="secno">8.4 </span>RTCPeerConnection Interface Extensions</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#attributes-10"><span class="secno">8.4.1 </span>Attributes</a></li><li class="tocline"><a class="tocxref" href="#methods-7"><span class="secno">8.4.2 </span>Methods</a></li></ul></li><li class="tocline"><a class="tocxref" href="#rtcidentityassertion-type"><span class="secno">8.5 </span>RTCIdentityAssertion Type</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#dictionary-rtcidentityassertion-members"><span class="secno">8.5.1 </span>Dictionary <span class="formerLink"><code>RTCIdentityAssertion</code></span> Members</a></li></ul></li><li class="tocline"><a class="tocxref" href="#rtcidentityevent-type"><span class="secno">8.6 </span>RTCIdentityEvent Type</a><ul class="toc"><li class="tocline"><a class="tocxref" href"#attributes-11"><span class="secno">8.6.1 </span>Attributes</a></li></ul></li><li class="tocline"><a class="tocxref" href="#rtcidentityerrorevent-type"><span class="secno">8.7 </span>RTCIdentityErrorEvent Type</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#attributes-12"><span class="secno">8.7.1 </span>Attributes</a></li></ul></li><li class="tocline"><a class="tocxref" href="#examples"><span class="secno">8.8 </span>Examples</a></li></ul></li><li class="tocline"><a class="tocxref" href="#media-stream-api-extensions-for-network-use"><span class="secno">9. </span>Media Stream API Extensions for Network Use</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#introduction-2"><span class="secno">9.1 </span>Introduction</a></li><li class="tocline"><a class="tocxref" href="#mediastream"><span class="secno">9.2 </span>MediaStream</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#id"><span class="secno">9.2.1 </span>id</a></li><li class="tocline"><a class="tocxref" hre="#events-on-mediastream"><span class="secno">9.2.2 </span>Events on MediaStream</a></li></ul></li><li class="tocline"><a class="tocxref" href="#mediastreamtrack"><span class="secno">9.3 </span>MediaStreamTrack</a></li><li class="tocline"><a class="tocxref" href="#mediastreamevent"><span class="secno">9.4 </span>MediaStreamEvent</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#constructors-6"><span class="secno">9.4.1 </span>Constructors</a></li><li class="tocline"><a class="tocxref" href="#attributes-13"><span class="secno">9.4.2 </span>Attributes</a></li><li class="tocline"><a class="tocxref" href="#dictionary-mediastreameventinit-members"><span class="secno">9.4.3 </span>Dictionary <span class="formerLink"><code>MediaStreamEventInit</code></span> Members</a></li></ul></li></ul></li><li class="tocline"><a class="tocxref" href="#examples-and-call-flows"><span class="secno">10. </span>Examples and Call Flows</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#simple-peer-to-peerexample"><span class="secno">10.1 </span>Simple Peer-to-peer Example</a></li><li class="tocline"><a class="tocxref" href="#advanced-peer-to-peer-example"><span class="secno">10.2 </span>Advanced Peer-to-peer Example</a></li><li class="tocline"><a class="tocxref" href="#peer-to-peer-data-example"><span class="secno">10.3 </span>Peer-to-peer Data Example</a></li><li class="tocline"><a class="tocxref" href="#call-flow-browser-to-browser"><span class="secno">10.4 </span>Call Flow Browser to Browser</a></li><li class="tocline"><a class="tocxref" href="#dtmf-example"><span class="secno">10.5 </span>DTMF Example</a></li></ul></li><li class="tocline"><a class="tocxref" href="#event-summary"><span class="secno">11. </span>Event summary</a></li><li class="tocline"><a class="tocxref" href="#security-considerations"><span class="secno">12. </span>Security Considerations</a></li><li class="tocline"><a class="tocxref" href="#change-log"><span class="secno">13. </span>Change Log</a></li><li class="tocline"><a class="tocxrf" href="#acknowledgements"><span class="secno">A. </span>Acknowledgements</a></li><li class="tocline"><a class="tocxref" href="#references"><span class="secno">B. </span>References</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#normative-references"><span class="secno">B.1 </span>Normative references</a></li><li class="tocline"><a class="tocxref" href="#informative-references"><span class="secno">B.2 </span>Informative references</a></li></ul></li></ul></section>
+</section><section id="toc"><h2 id="h2_toc" role="heading" aria-level="1" class="introductory">Table of Contents</h2><ul id="respecContents" role="directory" class="toc"><li class="tocline"><a class="tocxref" href="#intro"><span class="secno">1. </span>Introduction</a></li><li class="tocline"><a class="tocxref" href="#conformance"><span class="secno">2. </span>Conformance</a></li><li class="tocline"><a class="tocxref" href="#terminology"><span class="secno">3. </span>Terminology</a></li><li class="tocline"><a class="tocxref" href="#peer-to-peer-connections"><span class="secno">4. </span>Peer-to-peer connections</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#introduction"><span class="secno">4.1 </span>Introduction</a></li><li class="tocline"><a class="tocxref" href="#configuration"><span class="secno">4.2 </span>Configuration</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#rtcconfiguration-type"><span class="secno">4.2.1 </span>RTCConfiguration Type</a><ul class="toc"><liclass="tocline"><a class="tocxref" href="#dictionary-rtcconfiguration-members"><span class="secno">4.2.1.1 </span>Dictionary <span class="formerLink"><code>RTCConfiguration</code></span> Members</a></li></ul></li><li class="tocline"><a class="tocxref" href="#rtciceserver-type"><span class="secno">4.2.2 </span>RTCIceServer Type</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#dictionary-rtciceserver-members"><span class="secno">4.2.2.1 </span>Dictionary <span class="formerLink"><code>RTCIceServer</code></span> Members</a></li></ul></li><li class="tocline"><a class="tocxref" href="#rtcicetransports-enum"><span class="secno">4.2.3 </span>RTCIceTransports Enum</a></li><li class="tocline"><a class="tocxref" href="#offer-answer-options"><span class="secno">4.2.4 </span>Offer/Answer Options</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#dictionary-rtcofferoptions-members"><span class="secno">4.2.4.1 </span>Dictionary <span class="formerLink"><code>RTCOfferOptions</code></span> Memers</a></li></ul></li></ul></li><li class="tocline"><a class="tocxref" href="#rtcpeerconnection-interface"><span class="secno">4.3 </span>RTCPeerConnection Interface</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#operation"><span class="secno">4.3.1 </span>Operation</a></li><li class="tocline"><a class="tocxref" href="#interface-definition"><span class="secno">4.3.2 </span>Interface Definition</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#constructors"><span class="secno">4.3.2.1 </span>Constructors</a></li><li class="tocline"><a class="tocxref" href="#attributes"><span class="secno">4.3.2.2 </span>Attributes</a></li><li class="tocline"><a class="tocxref" href="#methods"><span class="secno">4.3.2.3 </span>Methods</a></li></ul></li><li class="tocline"><a class="tocxref" href="#garbage-collection"><span class="secno">4.3.3 </span>Garbage collection</a></li></ul></li><li class="tocline"><a class="tocxref" href="#state-definitions"><span class="secno">4.4 </span>State Definiions</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#rtcpeerstate-enum"><span class="secno">4.4.1 </span>RTCPeerState Enum</a></li><li class="tocline"><a class="tocxref" href="#rtcicegatheringstate-enum"><span class="secno">4.4.2 </span>RTCIceGatheringState Enum</a></li><li class="tocline"><a class="tocxref" href="#rtciceconnectionstate-enum"><span class="secno">4.4.3 </span>RTCIceConnectionState Enum</a></li></ul></li><li class="tocline"><a class="tocxref" href="#callback-definitions"><span class="secno">4.5 </span>Callback Definitions</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#rtcpeerconnectionerrorcallback"><span class="secno">4.5.1 </span>RTCPeerConnectionErrorCallback</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#callback-rtcpeerconnectionerrorcallback-parameters"><span class="secno">4.5.1.1 </span>Callback <span class="formerLink"><code>RTCPeerConnectionErrorCallback</code></span> Parameters</a></li></ul></li></ul></li><li class="tocline"><a clss="tocxref" href="#error-handling"><span class="secno">4.6 </span>Error Handling</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#general-principles"><span class="secno">4.6.1 </span>General Principles</a></li><li class="tocline"><a class="tocxref" href="#rtcsdperror"><span class="secno">4.6.2 </span>RTCSdpError</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#attributes-1"><span class="secno">4.6.2.1 </span>Attributes</a></li></ul></li></ul></li><li class="tocline"><a class="tocxref" href="#session-description-model"><span class="secno">4.7 </span>Session Description Model</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#rtcsdptype"><span class="secno">4.7.1 </span>RTCSdpType</a></li><li class="tocline"><a class="tocxref" href="#rtcsessiondescription-class"><span class="secno">4.7.2 </span>RTCSessionDescription Class</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#constructors-1"><span class="secno">4.7.2.1 </span>Constructors</a></li><li clss="tocline"><a class="tocxref" href="#attributes-2"><span class="secno">4.7.2.2 </span>Attributes</a></li><li class="tocline"><a class="tocxref" href="#serializer"><span class="secno">4.7.2.3 </span>Serializer</a></li><li class="tocline"><a class="tocxref" href="#dictionary-rtcsessiondescriptioninit-members"><span class="secno">4.7.2.4 </span>Dictionary <span class="formerLink"><code>RTCSessionDescriptionInit</code></span> Members</a></li></ul></li><li class="tocline"><a class="tocxref" href="#rtcsessiondescriptioncallback"><span class="secno">4.7.3 </span>RTCSessionDescriptionCallback</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#callback-rtcsessiondescriptioncallback-parameters"><span class="secno">4.7.3.1 </span>Callback <span class="formerLink"><code>RTCSessionDescriptionCallback</code></span> Parameters</a></li></ul></li></ul></li><li class="tocline"><a class="tocxref" href="#interfaces-for-connectivity-establishment"><span class="secno">4.8 </span>Interfaces for Connectivity Establshment</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#rtcicecandidate-type"><span class="secno">4.8.1 </span>RTCIceCandidate Type</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#constructors-2"><span class="secno">4.8.1.1 </span>Constructors</a></li><li class="tocline"><a class="tocxref" href="#attributes-3"><span class="secno">4.8.1.2 </span>Attributes</a></li><li class="tocline"><a class="tocxref" href="#serializer-1"><span class="secno">4.8.1.3 </span>Serializer</a></li><li class="tocline"><a class="tocxref" href="#dictionary-rtcicecandidateinit-members"><span class="secno">4.8.1.4 </span>Dictionary <span class="formerLink"><code>RTCIceCandidateInit</code></span> Members</a></li></ul></li><li class="tocline"><a class="tocxref" href="#rtcpeerconnectioniceevent"><span class="secno">4.8.2 </span>RTCPeerConnectionIceEvent</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#constructors-3"><span class="secno">4.8.2.1 </span>Constructors</a></li><li class="toclin"><a class="tocxref" href="#attributes-4"><span class="secno">4.8.2.2 </span>Attributes</a></li><li class="tocline"><a class="tocxref" href="#dictionary-rtcpeerconnectioniceeventinit-members"><span class="secno">4.8.2.3 </span>Dictionary <span class="formerLink"><code>RTCPeerConnectionIceEventInit</code></span> Members</a></li></ul></li></ul></li></ul></li><li class="tocline"><a class="tocxref" href="#peer-to-peer-data-api"><span class="secno">5. </span>Peer-to-peer Data API</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#rtcpeerconnection-interface-extensions"><span class="secno">5.1 </span>RTCPeerConnection Interface Extensions</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#attributes-5"><span class="secno">5.1.1 </span>Attributes</a></li><li class="tocline"><a class="tocxref" href="#methods-1"><span class="secno">5.1.2 </span>Methods</a></li></ul></li><li class="tocline"><a class="tocxref" href="#rtcdatachannel"><span class="secno">5.2 </span>RTCDataChannel</a><ul class"toc"><li class="tocline"><a class="tocxref" href="#attributes-6"><span class="secno">5.2.1 </span>Attributes</a></li><li class="tocline"><a class="tocxref" href="#methods-2"><span class="secno">5.2.2 </span>Methods</a></li><li class="tocline"><a class="tocxref" href="#dictionary-rtcdatachannelinit-members"><span class="secno">5.2.3 </span>Dictionary <span class="formerLink"><code>RTCDataChannelInit</code></span> Members</a></li></ul></li><li class="tocline"><a class="tocxref" href="#rtcdatachannelevent"><span class="secno">5.3 </span>RTCDataChannelEvent</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#constructors-4"><span class="secno">5.3.1 </span>Constructors</a></li><li class="tocline"><a class="tocxref" href="#attributes-7"><span class="secno">5.3.2 </span>Attributes</a></li><li class="tocline"><a class="tocxref" href="#dictionary-rtcdatachanneleventinit-members"><span class="secno">5.3.3 </span>Dictionary <span class="formerLink"><code>RTCDataChannelEventInit</code></span> Members</a>/li></ul></li><li class="tocline"><a class="tocxref" href="#garbage-collection-1"><span class="secno">5.4 </span>Garbage Collection</a></li></ul></li><li class="tocline"><a class="tocxref" href="#peer-to-peer-dtmf"><span class="secno">6. </span>Peer-to-peer DTMF</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#rtcpeerconnection-interface-extensions-1"><span class="secno">6.1 </span>RTCPeerConnection Interface Extensions</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#methods-3"><span class="secno">6.1.1 </span>Methods</a></li></ul></li><li class="tocline"><a class="tocxref" href="#rtcdtmfsender"><span class="secno">6.2 </span>RTCDTMFSender</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#attributes-8"><span class="secno">6.2.1 </span>Attributes</a></li><li class="tocline"><a class="tocxref" href="#methods-4"><span class="secno">6.2.2 </span>Methods</a></li></ul></li><li class="tocline"><a class="tocxref" href="#rtcdtmftonechangeevent"><span class="secno">6.3 /span>RTCDTMFToneChangeEvent</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#constructors-5"><span class="secno">6.3.1 </span>Constructors</a></li><li class="tocline"><a class="tocxref" href="#attributes-9"><span class="secno">6.3.2 </span>Attributes</a></li><li class="tocline"><a class="tocxref" href="#dictionary-rtcdtmftonechangeeventinit-members"><span class="secno">6.3.3 </span>Dictionary <span class="formerLink"><code>RTCDTMFToneChangeEventInit</code></span> Members</a></li></ul></li></ul></li><li class="tocline"><a class="tocxref" href="#statistics-model"><span class="secno">7. </span>Statistics Model</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#introduction-1"><span class="secno">7.1 </span>Introduction</a></li><li class="tocline"><a class="tocxref" href="#rtcpeerconnection-interface-extensions-2"><span class="secno">7.2 </span>RTCPeerConnection Interface Extensions</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#methods-5"><span class="secno">7.21 </span>Methods</a></li></ul></li><li class="tocline"><a class="tocxref" href="#rtcstatscallback"><span class="secno">7.3 </span>RTCStatsCallback</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#callback-rtcstatscallback-parameters"><span class="secno">7.3.1 </span>Callback <span class="formerLink"><code>RTCStatsCallback</code></span> Parameters</a></li></ul></li><li class="tocline"><a class="tocxref" href="#rtcstatsreport-object"><span class="secno">7.4 </span>RTCStatsReport Object</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#methods-6"><span class="secno">7.4.1 </span>Methods</a></li></ul></li><li class="tocline"><a class="tocxref" href="#rtcstats-dictionary"><span class="secno">7.5 </span>RTCStats Dictionary</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#dictionary-rtcstats-members"><span class="secno">7.5.1 </span>Dictionary <span class="formerLink"><code>RTCStats</code></span> Members</a></li></ul></li><li class="tocline"><a class="tocxref" href="#erived-stats-dictionaries"><span class="secno">7.6 </span>Derived Stats Dictionaries</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#dictionary-rtcrtpstreamstats-members"><span class="secno">7.6.1 </span>Dictionary <span class="formerLink"><code>RTCRTPStreamStats</code></span> Members</a></li><li class="tocline"><a class="tocxref" href="#dictionary-rtcinboundrtpstreamstats-members"><span class="secno">7.6.2 </span>Dictionary <span class="formerLink"><code>RTCInboundRTPStreamStats</code></span> Members</a></li><li class="tocline"><a class="tocxref" href="#dictionary-rtcoutboundrtpstreamstats-members"><span class="secno">7.6.3 </span>Dictionary <span class="formerLink"><code>RTCOutboundRTPStreamStats</code></span> Members</a></li></ul></li><li class="tocline"><a class="tocxref" href="#example"><span class="secno">7.7 </span>Example</a></li></ul></li><li class="tocline"><a class="tocxref" href="#identity"><span class="secno">8. </span>Identity</a><ul class="toc"><li class="tocline"><a class="tcxref" href="#identity-provider-interaction"><span class="secno">8.1 </span>Identity Provider Interaction</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#identity-provider-selection"><span class="secno">8.1.1 </span>Identity Provider Selection</a></li><li class="tocline"><a class="tocxref" href="#instantiating-an-idp-proxy"><span class="secno">8.1.2 </span>Instantiating an IdP Proxy</a></li></ul></li><li class="tocline"><a class="tocxref" href="#requesting-identity-assertions"><span class="secno">8.2 </span>Requesting Identity Assertions</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#user-login-procedure"><span class="secno">8.2.1 </span>User Login Procedure</a></li></ul></li><li class="tocline"><a class="tocxref" href="#verifying-identity-assertions"><span class="secno">8.3 </span>Verifying Identity Assertions</a></li><li class="tocline"><a class="tocxref" href="#rtcpeerconnection-interface-extensions-3"><span class="secno">8.4 </span>RTCPeerConnection Interface Extension</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#attributes-10"><span class="secno">8.4.1 </span>Attributes</a></li><li class="tocline"><a class="tocxref" href="#methods-7"><span class="secno">8.4.2 </span>Methods</a></li></ul></li><li class="tocline"><a class="tocxref" href="#rtcidentityassertion-type"><span class="secno">8.5 </span>RTCIdentityAssertion Type</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#dictionary-rtcidentityassertion-members"><span class="secno">8.5.1 </span>Dictionary <span class="formerLink"><code>RTCIdentityAssertion</code></span> Members</a></li></ul></li><li class="tocline"><a class="tocxref" href="#rtcidentityevent-type"><span class="secno">8.6 </span>RTCIdentityEvent Type</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#attributes-11"><span class="secno">8.6.1 </span>Attributes</a></li></ul></li><li class="tocline"><a class="tocxref" href="#rtcidentityerrorevent-type"><span class="secno">8.7 </span>RTCIdentityErrorEvent Type</a><u class="toc"><li class="tocline"><a class="tocxref" href="#attributes-12"><span class="secno">8.7.1 </span>Attributes</a></li></ul></li><li class="tocline"><a class="tocxref" href="#examples"><span class="secno">8.8 </span>Examples</a></li></ul></li><li class="tocline"><a class="tocxref" href="#media-stream-api-extensions-for-network-use"><span class="secno">9. </span>Media Stream API Extensions for Network Use</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#introduction-2"><span class="secno">9.1 </span>Introduction</a></li><li class="tocline"><a class="tocxref" href="#mediastream"><span class="secno">9.2 </span>MediaStream</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#id"><span class="secno">9.2.1 </span>id</a></li><li class="tocline"><a class="tocxref" href="#events-on-mediastream"><span class="secno">9.2.2 </span>Events on MediaStream</a></li></ul></li><li class="tocline"><a class="tocxref" href="#mediastreamtrack"><span class="secno">9.3 </span>MediaStreamTrack</a></i><li class="tocline"><a class="tocxref" href="#mediastreamevent"><span class="secno">9.4 </span>MediaStreamEvent</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#constructors-6"><span class="secno">9.4.1 </span>Constructors</a></li><li class="tocline"><a class="tocxref" href="#attributes-13"><span class="secno">9.4.2 </span>Attributes</a></li><li class="tocline"><a class="tocxref" href="#dictionary-mediastreameventinit-members"><span class="secno">9.4.3 </span>Dictionary <span class="formerLink"><code>MediaStreamEventInit</code></span> Members</a></li></ul></li><li class="tocline"><a class="tocxref" href="#isolated-media-streams"><span class="secno">9.5 </span>Isolated Media Streams</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#dictionary-mediastreamconstraints-members"><span class="secno">9.5.1 </span>Dictionary <span class="formerLink"><code>MediaStreamConstraints</code></span> Members</a></li><li class="tocline"><a class="tocxref" href="#isolated-track"><span class="seno">9.5.2 </span>Extended MediaStreamTrack Properties</a></li><li class="tocline"><a class="tocxref" href="#isolated-pc"><span class="secno">9.5.3 </span>Isolated Streams and RTCPeerConnection</a></li><li class="tocline"><a class="tocxref" href="#isolation-protection"><span class="secno">9.5.4 </span>Protection Afforded by Media Isolation</a></li></ul></li></ul></li><li class="tocline"><a class="tocxref" href="#examples-and-call-flows"><span class="secno">10. </span>Examples and Call Flows</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#simple-peer-to-peer-example"><span class="secno">10.1 </span>Simple Peer-to-peer Example</a></li><li class="tocline"><a class="tocxref" href="#advanced-peer-to-peer-example"><span class="secno">10.2 </span>Advanced Peer-to-peer Example</a></li><li class="tocline"><a class="tocxref" href="#peer-to-peer-data-example"><span class="secno">10.3 </span>Peer-to-peer Data Example</a></li><li class="tocline"><a class="tocxref" href="#call-flow-browser-to-browser"><spn class="secno">10.4 </span>Call Flow Browser to Browser</a></li><li class="tocline"><a class="tocxref" href="#dtmf-example"><span class="secno">10.5 </span>DTMF Example</a></li></ul></li><li class="tocline"><a class="tocxref" href="#event-summary"><span class="secno">11. </span>Event summary</a></li><li class="tocline"><a class="tocxref" href="#security-considerations"><span class="secno">12. </span>Security Considerations</a></li><li class="tocline"><a class="tocxref" href="#change-log"><span class="secno">13. </span>Change Log</a></li><li class="tocline"><a class="tocxref" href="#acknowledgements"><span class="secno">A. </span>Acknowledgements</a></li><li class="tocline"><a class="tocxref" href="#references"><span class="secno">B. </span>References</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#normative-references"><span class="secno">B.1 </span>Normative references</a></li><li class="tocline"><a class="tocxref" href="#informative-references"><span class="secno">B.2 </span>Informative eferences</a></li></ul></li></ul></section>
 
 
   
@@ -698,16 +698,18 @@
         <pre class="idl"><span class="idlDictionary" id="idl-def-RTCConfiguration">dictionary <span class="idlDictionaryID">RTCConfiguration</span> {
 <span class="idlMember">    <span class="idlMemberType">sequence&lt;<a class="idlType" href="#idl-def-RTCIceServer"><code>RTCIceServer</code></a>&gt;</span> <span class="idlMemberName"><a href="#widl-RTCConfiguration-iceServers">iceServers</a></span>;</span>
 <span class="idlMember">    <span class="idlMemberType"><a class="idlType" href="#idl-def-RTCIceTransports"><code>RTCIceTransports</code></a></span>       <span class="idlMemberName"><a href="#widl-RTCConfiguration-iceTransports">iceTransports</a></span> = <span class="idlMemberValue">"all"</span>;</span>
-<span class="idlMember">    <span class="idlMemberType"><a class="idlType" href="#idl-def-RTCIdentityOption"><code>RTCIdentityOption</code></a></span>      <span class="idlMemberName"><a href="#widl-RTCConfiguration-requestIdentity">requestIdentity</a></span> = <span class="idlMemberValue">"ifconfigured"</span>;</span>
+<span class="idlMember">    <span class="idlMemberType">DOMString</span>              <span class="idlMemberName"><a href="#widl-RTCConfiguration-peerIdentity">peerIdentity</a></span>;</span>
 };</span></pre><section id="dictionary-rtcconfiguration-members"><h5 id="h5_dictionary-rtcconfiguration-members" role="heading" aria-level="4"><span class="secno">4.2.1.1 </span>Dictionary <a href="#idl-def-RTCConfiguration" class="idlType"><code>RTCConfiguration</code></a> Members</h5><dl class="dictionary-members"><dt id="widl-RTCConfiguration-iceServers"><code>iceServers</code> of type <span class="idlMemberType">sequence&lt;<a class="idlType" href="#idl-def-RTCIceServer"><code>RTCIceServer</code></a>&gt;</span></dt><dd>
             <p>An array containing URIs of servers available to be used
             by ICE, such as STUN and TURN server.</p>
           </dd><dt id="widl-RTCConfiguration-iceTransports"><code>iceTransports</code> of type <span class="idlMemberType"><a class="idlType" href="#idl-def-RTCIceTransports"><code>RTCIceTransports</code></a></span>, defaulting to <code>"all"</code></dt><dd>
             <p>Indicates which candidates the ICE engine is allowed to use.
             </p>
-          </dd><dt id="widl-RTCConfiguration-requestIdentity"><code>requestIdentity</code> of type <span class="idlMemberType"><a class="idlType" href="#idl-def-RTCIdentityOption"><code>RTCIdentityOption</code></a></span>, defaulting to <code>"ifconfigured"</code></dt><dd>
-            <p>See the <a href="#dom-rtcoaoptions-requestidentity">requestIdentity</a> member of
-            the <code><a class="idlType" href="#idl-def-RTCOfferAnswerOptions"><code>RTCOfferAnswerOptions</code></a></code> dictionary.</p>
+          </dd><dt id="widl-RTCConfiguration-peerIdentity"><code>peerIdentity</code> of type <span class="idlMemberType">DOMString</span></dt><dd>
+            <p>Sets the <a href="#target-peer-identity">target peer identity</a>
+            for the <a class="idlType" href="#idl-def-RTCPeerConnection"><code>RTCPeerConnection</code></a>.  The <a class="idlType" href="#idl-def-RTCPeerConnection"><code>RTCPeerConnection</code></a> will
+            establish a connection to a remote peer unless it can be
+            successfully authenticated with the provided name.</p>
           </dd></dl></section>
       </section>
 
@@ -770,26 +772,12 @@
         <p>These dictionaries describe the options that can be used to
         control the offer/answer creation process.</p>
 
-
-        <pre class="idl"><span class="idlDictionary" id="idl-def-RTCOfferAnswerOptions">dictionary <span class="idlDictionaryID">RTCOfferAnswerOptions</span> {
-<span class="idlMember">    <span class="idlMemberType"><a class="idlType" href="#idl-def-RTCIdentityOption"><code>RTCIdentityOption</code></a></span> <span class="idlMemberName"><a href="#widl-RTCOfferAnswerOptions-requestIdentity">requestIdentity</a></span> = <span class="idlMemberValue">"ifconfigured"</span>;</span>
-};</span></pre><section id="dictionary-rtcofferansweroptions-members"><h5 id="h5_dictionary-rtcofferansweroptions-members" role="heading" aria-level="4"><span class="secno">4.2.4.1 </span>Dictionary <a href="#idl-def-RTCOfferAnswerOptions" class="idlType"><code>RTCOfferAnswerOptions</code></a> Members</h5><dl class="dictionary-members"><dt id="widl-RTCOfferAnswerOptions-requestIdentity"><code>requestIdentity</code> of type <span class="idlMemberType"><a class="idlType" href="#idl-def-RTCIdentityOption"><code>RTCIdentityOption</code></a></span>, defaulting to <code>"ifconfigured"</code></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 class="idlType" href="#idl-def-RTCPeerConnection"><code>RTCPeerConnection</code></a></code> constructor. Note that since
-            DTLS-SRTP is used, fingerprints will be sent regardless of the
-            value of this option.</p>
-          </dd></dl></section>
-
-
-        <pre class="idl"><span class="idlDictionary" id="idl-def-RTCOfferOptions">dictionary <span class="idlDictionaryID">RTCOfferOptions</span> : <span class="idlSuperclass"><a class="idlType" href="#idl-def-RTCOfferAnswerOptions"><code>RTCOfferAnswerOptions</code></a></span> {
+       <pre class="idl"><span class="idlDictionary" id="idl-def-RTCOfferOptions">dictionary <span class="idlDictionaryID">RTCOfferOptions</span> {
 <span class="idlMember">    <span class="idlMemberType">long</span>    <span class="idlMemberName"><a href="#widl-RTCOfferOptions-offerToReceiveVideo">offerToReceiveVideo</a></span>;</span>
 <span class="idlMember">    <span class="idlMemberType">long</span>    <span class="idlMemberName"><a href="#widl-RTCOfferOptions-offerToReceiveAudio">offerToReceiveAudio</a></span>;</span>
 <span class="idlMember">    <span class="idlMemberType">boolean</span> <span class="idlMemberName"><a href="#widl-RTCOfferOptions-voiceActivityDetection">voiceActivityDetection</a></span> = <span class="idlMemberValue">true</span>;</span>
 <span class="idlMember">    <span class="idlMemberType">boolean</span> <span class="idlMemberName"><a href="#widl-RTCOfferOptions-iceRestart">iceRestart</a></span> = <span class="idlMemberValue">false</span>;</span>
-};</span></pre><section id="dictionary-rtcofferoptions-members"><h5 id="h5_dictionary-rtcofferoptions-members" role="heading" aria-level="4"><span class="secno">4.2.4.2 </span>Dictionary <a href="#idl-def-RTCOfferOptions" class="idlType"><code>RTCOfferOptions</code></a> Members</h5><dl class="dictionary-members"><dt id="widl-RTCOfferOptions-iceRestart"><code>iceRestart</code> of type <span class="idlMemberType">boolean</span>, defaulting to <code>false</code></dt><dd>
+};</span></pre><section id="dictionary-rtcofferoptions-members"><h5 id="h5_dictionary-rtcofferoptions-members" role="heading" aria-level="4"><span class="secno">4.2.4.1 </span>Dictionary <a href="#idl-def-RTCOfferOptions" class="idlType"><code>RTCOfferOptions</code></a> Members</h5><dl class="dictionary-members"><dt id="widl-RTCOfferOptions-iceRestart"><code>iceRestart</code> of type <span class="idlMemberType">boolean</span>, defaulting to <code>false</code></dt><dd>
             <p>When the value of this dictionary member is true, the
             generated description will have ICE credentials that are different
             from the current credentials (as visible in the
@@ -1236,7 +1224,7 @@
         <pre class="idl"><span class="idlInterface" id="idl-def-RTCPeerConnection">[<span class="idlCtor"> <span class="idlCtorKeyword"></span><span class="idlCtorName"><a href="#widl-ctor-RTCPeerConnection--RTCConfiguration-configuration">Constructor</a></span> (<span class="idlParam"><span class="idlParamType"><a class="idlType" href="#idl-def-RTCConfiguration"><code>RTCConfiguration</code></a></span> <span class="idlParamName">configuration</span></span>)</span>]
 interface <span class="idlInterfaceID">RTCPeerConnection</span> : <span class="idlSuperclass">EventTarget </span> {
 <span class="idlMethod">    <span class="idlMethType">void</span>                  <span class="idlMethName"><a href="#widl-RTCPeerConnection-createOffer-void-RTCSessionDescriptionCallback-successCallback-RTCPeerConnectionErrorCallback-failureCallback-RTCOfferOptions-options">createOffer</a></span> (<span class="idlParam"><span class="idlParamType"><a class="idlType" href="#idl-def-RTCSessionDescriptionCallback"><code>RTCSessionDescriptionCallback</code></a></span> <span class="idlParamName">successCallback</span></span>, <span class="idlParam"><span class="idlParamType"><a class="idlType" href="#idl-def-RTCPeerConnectionErrorCallback"><code>RTCPeerConnectionErrorCallback</code></a></span> <span class="idlParamName">failureCallback</span></span>, <span class="idlParam">optional <span class="idlParamType"><a class="idlType" href="#idl-def-RTCOfferOptions"><code>RTCOfferOptions</code></a></span> <span class="idlParamName">options</span></span>);</span>
-<span class="idlMethod">    <span class="idlMethType">void</span>                  <span class="idlMethName"><a href="#widl-RTCPeerConnection-createAnswer-void-RTCSessionDescriptionCallback-successCallback-RTCPeerConnectionErrorCallback-failureCallback-RTCOfferAnswerOptions-options">createAnswer</a></span> (<span class="idlParam"><span class="idlParamType"><a class="idlType" href="#idl-def-RTCSessionDescriptionCallback"><code>RTCSessionDescriptionCallback</code></a></span> <span class="idlParamName">successCallback</span></span>, <span class="idlParam"><span class="idlParamType"><a class="idlType" href="#idl-def-RTCPeerConnectionErrorCallback"><code>RTCPeerConnectionErrorCallback</code></a></span> <span class="idlParamName">failureCallback</span></span>, <span class="idlParam">optional <span class="idlParamType"><a class="idlType" href="#idl-def-RTCOfferAnswerOptions"><code>RTCOfferAnswerOptions</code></a></span> <span class="idlParamName">options</span></span>);</span>
+<span class="idlMethod">    <span class="idlMethType">void</span>                  <span class="idlMethName"><a href="#widl-RTCPeerConnection-createAnswer-void-RTCSessionDescriptionCallback-successCallback-RTCPeerConnectionErrorCallback-failureCallback">createAnswer</a></span> (<span class="idlParam"><span class="idlParamType"><a class="idlType" href="#idl-def-RTCSessionDescriptionCallback"><code>RTCSessionDescriptionCallback</code></a></span> <span class="idlParamName">successCallback</span></span>, <span class="idlParam"><span class="idlParamType"><a class="idlType" href="#idl-def-RTCPeerConnectionErrorCallback"><code>RTCPeerConnectionErrorCallback</code></a></span> <span class="idlParamName">failureCallback</span></span>);</span>
 <span class="idlMethod">    <span class="idlMethType">void</span>                  <span class="idlMethName"><a href="#widl-RTCPeerConnection-setLocalDescription-void-RTCSessionDescription-description-VoidFunction-successCallback-RTCPeerConnectionErrorCallback-failureCallback">setLocalDescription</a></span> (<span class="idlParam"><span class="idlParamType"><a class="idlType" href="#idl-def-RTCSessionDescription"><code>RTCSessionDescription</code></a></span> <span class="idlParamName">description</span></span>, <span class="idlParam"><span class="idlParamType">VoidFunction</span> <span class="idlParamName">successCallback</span></span>, <span class="idlParam"><span class="idlParamType"><a class="idlType" href="#idl-def-RTCPeerConnectionErrorCallback"><code>RTCPeerConnectionErrorCallback</code></a></span> <span class="idlParamName">failureCallback</span></span>);</span>
 <span class="idlAttribute">    readonly    attribute <span class="idlAttrType"><a class="idlType" href="#idl-def-RTCSessionDescription"><code>RTCSessionDescription</code></a>?</span> <span class="idlAttrName"><a href="#widl-RTCPeerConnection-localDescription">localDescription</a></span>;</span>
 <span class="idlMethod">    <span class="idlMethType">void</span>                  <span class="idlMethName"><a href="#widl-RTCPeerConnection-setRemoteDescription-void-RTCSessionDescription-description-VoidFunction-successCallback-RTCPeerConnectionErrorCallback-failureCallback">setRemoteDescription</a></span> (<span class="idlParam"><span class="idlParamType"><a class="idlType" href="#idl-def-RTCSessionDescription"><code>RTCSessionDescription</code></a></span> <span class="idlParamName">description</span></span>, <span class="idlParam"><span class="idlParamType">VoidFunction</span> <span class="idlParamName">successCallback</span></span>, <span class="idlParam"><span class="idlParamType"><a class="idlType" href="#idl-def-RTCPeerConnectionErrorCallback"><code>RTCPeerConnectionErrorCallback</code></a></span> <span class="idlParamName">failureCallback</span></span>);</span>
@@ -1404,12 +1392,9 @@
                 stream <a 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 <em title="MUST
                 NOT" class="rfc2119">MUST
-                NOT</em> 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</em> be transmitted, though streams marked with
+                <var>peerIdentity</var> can be transmitted if they meet the
+                requirements for sending (see <a class="sec-ref" href="#isolated-pc"><span class="secno">9.5.3</span> <span class="sec-title">Isolated Streams and RTCPeerConnection</span></a>) .</p>
 
                 <p>All other streams that are not accessible to the application
                 <em title="MUST NOT" class="rfc2119">MUST NOT</em> be sent to the peer, with silence (audio), black frames
@@ -1451,7 +1436,7 @@
                 signalingState</a> to <code>closed</code>.</p>
               </li>
             </ol>
-          <div><em>No parameters.</em></div><div><em>Return type: </em><code>void</code></div></dd><dt id="widl-RTCPeerConnection-createAnswer-void-RTCSessionDescriptionCallback-successCallback-RTCPeerConnectionErrorCallback-failureCallback-RTCOfferAnswerOptions-options"><code>createAnswer</code></dt><dd>
+          <div><em>No parameters.</em></div><div><em>Return type: </em><code>void</code></div></dd><dt id="widl-RTCPeerConnection-createAnswer-void-RTCSessionDescriptionCallback-successCallback-RTCPeerConnectionErrorCallback-failureCallback"><code>createAnswer</code></dt><dd>
             <p>The createAnswer method generates an [<cite><a href="#bib-SDP" class="bibref">SDP</a></cite>] answer with the
             supported configuration for the session that is compatible with the
             parameters in the remote configuration. Like createOffer, the
@@ -1505,7 +1490,7 @@
             <p>If the SDP generation process failed for any reason, the user
             agent <em title="MUST" class="rfc2119">MUST</em> queue a task to invoke <var>failureCallback</var> with
             an <code>DOMError</code> object of type TBD as its argument.</p>
-          <table class="parameters"><tbody><tr><th>Parameter</th><th>Type</th><th>Nullable</th><th>Optional</th><th>Description</th></tr><tr><td class="prmName">successCallback</td><td class="prmType"><code><a class="idlType" href="#idl-def-RTCSessionDescriptionCallback"><code>RTCSessionDescriptionCallback</code></a></code></td><td class="prmNullFalse"><span role="img" aria-label="False">✘</span></td><td class="prmOptFalse"><span role="img" aria-label="False">✘</span></td><td class="prmDesc"></td></tr><tr><td class="prmName">failureCallback</td><td class="prmType"><code><a class="idlType" href="#idl-def-RTCPeerConnectionErrorCallback"><code>RTCPeerConnectionErrorCallback</code></a></code></td><td class="prmNullFalse"><span role="img" aria-label="False">✘</span></td><td class="prmOptFalse"><span role="img" aria-label="False">✘</span></td><td class="prmDesc"></td></tr><tr><td class="prmName">options</td><td class="prmType"><code><a class="idlType" href="#idl-def-RTCOfferAnswerOptions"><code>RTCOfferAswerOptions</code></a></code></td><td class="prmNullFalse"><span role="img" aria-label="False">✘</span></td><td class="prmOptTrue"><span role="img" aria-label="True">✔</span></td><td class="prmDesc"></td></tr></tbody></table><div><em>Return type: </em><code>void</code></div></dd><dt id="widl-RTCPeerConnection-createOffer-void-RTCSessionDescriptionCallback-successCallback-RTCPeerConnectionErrorCallback-failureCallback-RTCOfferOptions-options"><code>createOffer</code></dt><dd>
+          <table class="parameters"><tbody><tr><th>Parameter</th><th>Type</th><th>Nullable</th><th>Optional</th><th>Description</th></tr><tr><td class="prmName">successCallback</td><td class="prmType"><code><a class="idlType" href="#idl-def-RTCSessionDescriptionCallback"><code>RTCSessionDescriptionCallback</code></a></code></td><td class="prmNullFalse"><span role="img" aria-label="False">✘</span></td><td class="prmOptFalse"><span role="img" aria-label="False">✘</span></td><td class="prmDesc"></td></tr><tr><td class="prmName">failureCallback</td><td class="prmType"><code><a class="idlType" href="#idl-def-RTCPeerConnectionErrorCallback"><code>RTCPeerConnectionErrorCallback</code></a></code></td><td class="prmNullFalse"><span role="img" aria-label="False">✘</span></td><td class="prmOptFalse"><span role="img" aria-label="False">✘</span></td><td class="prmDesc"></td></tr></tbody></table><div><em>Return type: </em><code>void</code></div></dd><dt id="widl-RTCPeerConnection-createOffer-void-RTCSessionDescrptionCallback-successCallback-RTCPeerConnectionErrorCallback-failureCallback-RTCOfferOptions-options"><code>createOffer</code></dt><dd>
             <p>The createOffer method generates a blob of SDP that contains an
             RFC 3264 offer with the supported configurations for the session,
             including descriptions of the local <code>MediaStream</code>s
@@ -1883,10 +1868,16 @@
                 assertion.</a>.  Identity validation completes asynchronously
                 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 <em title="MUST" class="rfc2119">MUST</em> 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 class="idlType" href="#idl-def-RTCPeerConnection"><code>RTCPeerConnection</code></a></code>, this establishes a <dfn id="target-peer-identity">target peer identity</dfn>.
                 Alternatively, if the <code><a class="idlType" href="#idl-def-RTCPeerConnection"><code>RTCPeerConnection</code></a></code> has
                 previously authenticated the identity of the peer (that is,
@@ -1896,10 +1887,8 @@
                 <p>If there is a <a href="#target-peer-identity">target peer
                 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> <em title="MAY" class="rfc2119">MAY</em> 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 class="idlType" href="#idl-def-RTCPeerConnection"><code>RTCPeerConnection</code></a></code> <em title="MAY" class="rfc2119">MAY</em> be closed if the
+                validated peer identity does not match the <a href="#target-peer-identity">target peer identity</a>.</p>
               </li>
            </ul>
           <table class="parameters"><tbody><tr><th>Parameter</th><th>Type</th><th>Nullable</th><th>Optional</th><th>Description</th></tr><tr><td class="prmName">description</td><td class="prmType"><code><a class="idlType" href="#idl-def-RTCSessionDescription"><code>RTCSessionDescription</code></a></code></td><td class="prmNullFalse"><span role="img" aria-label="False">✘</span></td><td class="prmOptFalse"><span role="img" aria-label="False">✘</span></td><td class="prmDesc"></td></tr><tr><td class="prmName">successCallback</td><td class="prmType"><code>VoidFunction</code></td><td class="prmNullFalse"><span role="img" aria-label="False">✘</span></td><td class="prmOptFalse"><span role="img" aria-label="False">✘</span></td><td class="prmDesc"></td></tr><tr><td class="prmName">failureCallback</td><td class="prmType"><code><a class="idlType" href="#idl-def-RTCPeerConnectionErrorCallback"><code>RTCPeerConnectionErrorCallback</code></a></code></td><td class="prmNullFalse"><span role="img" aria-label="False"✘</span></td><td class="prmOptFalse"><span role="img" aria-label="False">✘</span></td><td class="prmDesc"></td></tr></tbody></table><div><em>Return type: </em><code>void</code></div></dd><dt id="widl-RTCPeerConnection-updateIce-void-RTCConfiguration-configuration"><code>updateIce</code></dt><dd>
@@ -3688,7 +3677,6 @@
   <section id="identity" rel="bibo:Chapter" resource="#sec.identity-proxy" typeof="bibo:Chapter">
     <!--OddPage--><h2 role="heading" aria-level="1" id="sec.identity-proxy"><span class="secno">8. </span>Identity</h2>
 
-
     <section id="identity-provider-interaction">
       <h3 id="h3_identity-provider-interaction" role="heading" aria-level="2"><span class="secno">8.1 </span>Identity Provider Interaction</h3>
 
@@ -4456,6 +4444,211 @@
           <p>TODO</p>
         </dd></dl></section>
     </section>
+
+    <section id="isolated-media-streams">
+      <h3 id="h3_isolated-media-streams" role="heading" aria-level="2"><span class="secno">9.5 </span>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 id="dfn-peeridentity">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 id="dfn-mediastreamconstraints">MediaStreamConstraints</dfn></code> dictionary is
+      expanded to include the <code>peerIdentity</code> parameter.</p>
+
+      <pre class="idl"><span class="idlDictionary" id="idl-def-MediaStreamConstraints">dictionary <span class="idlDictionaryID">MediaStreamConstraints</span> {
+<span class="idlMember">    <span class="idlMemberType">DOMString</span> <span class="idlMemberName"><a href="#widl-MediaStreamConstraints-peerIdentity">peerIdentity</a></span>;</span>
+};</span></pre><section id="dictionary-mediastreamconstraints-members"><h4 id="h4_dictionary-mediastreamconstraints-members" role="heading" aria-level="3"><span class="secno">9.5.1 </span>Dictionary <a href="#idl-def-MediaStreamConstraints" class="idlType"><code>MediaStreamConstraints</code></a> Members</h4><dl class="dictionary-members"><dt id="widl-MediaStreamConstraints-peerIdentity"><code>peerIdentity</code> of type <span class="idlMemberType">DOMString</span></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></section>
+
+      <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 id="dfn-peeridentity-1">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 <em title="MUST" class="rfc2119">MUST</em> 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 [<cite><a href="#bib-HTML5" class="bibref">HTML5</a></cite>].</p>
+        </li>
+
+        <li>
+          <p>Used as the argument to <a href="#widl-RTCPeerConnection-addStream-void-MediaStream-stream">addStream()</a>
+          on an <code><a class="idlType" href="#idl-def-RTCPeerConnection"><code>RTCPeerConnection</code></a></code> instance, subject to the
+          restrictions in <a class="sec-ref" href="#isolated-pc"><span class="secno">9.5.3</span> <span class="sec-title">Isolated Streams and RTCPeerConnection</span></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 class="idlType" href="#idl-def-RTCPeerConnection"><code>RTCPeerConnection</code></a></code>.</p>
+
+      <p>Any <code>peerIdentity</code> property <em title="MUST" class="rfc2119">MUST</em> 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 rel="bibo:Chapter" resource="#isolated-track" typeof="bibo:Chapter" id="isolated-track">
+        <h4 id="h4_isolated-track" role="heading" aria-level="3"><span class="secno">9.5.2 </span>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 rel="bibo:Chapter" resource="#isolated-pc" typeof="bibo:Chapter" id="isolated-pc">
+        <h4 id="h4_isolated-pc" role="heading" aria-level="3"><span class="secno">9.5.3 </span>Isolated Streams and RTCPeerConnection</h4>
+
+        <p>A <code>MediaStreamTrack</code> with a <var>peerIdentity</var> option
+        set can be added to any <code><a class="idlType" href="#idl-def-RTCPeerConnection"><code>RTCPeerConnection</code></a></code>.  However,
+        the content of an isolated track <em title="MUST NOT" class="rfc2119">MUST NOT</em> 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 class="idlType" href="#idl-def-RTCPeerConnection"><code>RTCPeerConnection</code></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 class="idlType" href="#idl-def-RTCPeerConnection"><code>RTCPeerConnection</code></a></code> instance <em title="MUST" class="rfc2119">MUST</em>
+            match the value of the <code>peerIdentity</code> option passed to
+            <code>getUserMedia()</code>.</p>
+
+            <p>Rules for matching identity are described in
+            [<cite><a href="#bib-RTCWEB-SECURITY-ARCH" class="bibref">RTCWEB-SECURITY-ARCH</a></cite>].</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 [<cite><a href="#bib-WEBRTC-ALPN" class="bibref">WEBRTC-ALPN</a></cite>] 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 <em title="MUST" class="rfc2119">MUST</em> be replaced by
+        black frames, audio <em title="MUST" class="rfc2119">MUST</em> be replaced by silence, and equivalently
+        information-free content <em title="MUST" class="rfc2119">MUST</em> be provided for other media types.</p>
+
+        <p>Remotely sourced <code>MediaStreamTrack</code>s <em title="MUST" class="rfc2119">MUST</em> 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 <em title="MUST" class="rfc2119">MUST</em> only be displayed to a user
+        using the appropriate media element (e.g., &lt;video&gt; or
+        &lt;audio&gt;).</p>
+
+        <p>Any <code>MediaStreamTrack</code> that has the <var>peerIdentity</var> option set causes all tracks
+        sent using the same <code><a class="idlType" href="#idl-def-RTCPeerConnection"><code>RTCPeerConnection</code></a></code> to be isolated
+        at the receiving peer.  All DTLS connections created for a
+        <code><a class="idlType" href="#idl-def-RTCPeerConnection"><code>RTCPeerConnection</code></a></code> with isolated local streams <em title="MUST" class="rfc2119">MUST</em>
+        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 class="idlType" href="#idl-def-RTCPeerConnection"><code>RTCPeerConnection</code></a></code>.</p>
+
+        <div class="note"><div id="h_note_14" role="heading" aria-level="4" class="note-title"><span>Note</span></div><p class="">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></div>
+
+        <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 rel="bibo:Chapter" resource="#isolation-protection" typeof="bibo:Chapter" id="isolation-protection">
+        <h4 id="h4_isolation-protection" role="heading" aria-level="3"><span class="secno">9.5.4 </span>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 class="idlType" href="#idl-def-RTCPeerConnection"><code>RTCPeerConnection</code></a></code> records are not reduced in
+        capability.  New statistics that might compromise isolation <em title="MUST" class="rfc2119">MUST</em> 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> <em title="MUST" class="rfc2119">MUST</em> have changes suppressed.</p>
+
+      </section>
+    </section>
+
   </section>
 
 
@@ -4561,7 +4754,7 @@
         is ready, messages are received and when the channel is closed.</p>
 
 
-        <div class="note"><div id="h_note_14" role="heading" aria-level="3" class="note-title"><span>Note</span></div><p class="">This example uses the <code>negotiationneeded</code>
+        <div class="note"><div id="h_note_15" role="heading" aria-level="3" class="note-title"><span>Note</span></div><p class="">This example uses the <code>negotiationneeded</code>
         event to initiate the offer/answer dialog. The exact behavior
         surrounding the <code>negotiationneeded</code> event is not specified
         in detail at the moment. This example can hopefully help to drive that
@@ -4662,7 +4855,7 @@
       <h3 id="h3_call-flow-browser-to-browser" role="heading" aria-level="2"><span class="secno">10.4 </span>Call Flow Browser to Browser</h3>

[118 lines skipped]

--- /sources/public/2011/webrtc/editor/MediaRecorder.html	2014/07/04 11:38:59	NONE
+++ /sources/public/2011/webrtc/editor/MediaRecorder.html	2014/07/04 11:38:59	1.1

[1111 lines skipped]

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