CVS 2011/webrtc/editor

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

Modified Files:
	getusermedia.html getusermedia.js webrtc.html webrtc.js 
Log Message:
Added 20140321 archived version.

--- /sources/public/2011/webrtc/editor/getusermedia.html	2014/02/19 02:14:51	1.29
+++ /sources/public/2011/webrtc/editor/getusermedia.html	2014/03/21 13:01:10	1.30
@@ -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-18-february-2014" property="dcterms:issued" datatype="xsd:dateTime" content="2014-02-19T01:04:05.000Z"><acronym title="World Wide Web Consortium">W3C</acronym> Editor's Draft <time class="dt-published" datetime="2014-02-18">18 February 2014</time></h2>
+  <h2 id="w3c-editor-s-draft-21-march-2014" property="dcterms:issued" datatype="xsd:dateTime" content="2014-03-21T12:30:59.000Z"><acronym title="World Wide Web Consortium">W3C</acronym> Editor's Draft <time class="dt-published" datetime="2014-03-21">21 March 2014</time></h2>
   <dl>
     
       <dt>This version:</dt>
-      <dd><a class="u-url" href="http://dev.w3.org/2011/webrtc/editor/archives/20140218/getusermedia.html">http://dev.w3.org/2011/webrtc/editor/archives/20140218/getusermedia.html</a></dd>
+      <dd><a class="u-url" href="http://dev.w3.org/2011/webrtc/editor/archives/20140321/getusermedia.html">http://dev.w3.org/2011/webrtc/editor/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/20131225/getusermedia.html">http://dev.w3.org/2011/webrtc/editor/archives/20131225/getusermedia.html</a></dd>
+        <dd><a href="http://dev.w3.org/2011/webrtc/editor/archives/20140218/getusermedia.html">http://dev.w3.org/2011/webrtc/editor/archives/20140218/getusermedia.html</a></dd>
       
     
     
@@ -583,7 +583,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="#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="#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-types"><span class="scno">4.3.4 </span>Track Source Types</a></li><li class="tocline"><a class="tocxref" href="#isolated-media-streams"><span class="secno">4.3.5 </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><li class="tocline"><a class="tocxref" href="#video-and-audio-tracks"><span class="secno">4.5 </span>Video and Audio Tracks</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#videostreamtrack-interface"><span class="scno">4.5.1 </span>VideoStreamTrack interface</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#constructors-2"><span class="secno">4.5.1.1 </span>Constructors</a></li></ul></li><li class="tocline"><a class="tocxref" href="#audiostreamtrack"><span class="secno">4.5.2 </span>AudioStreamTrack</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#constructors-3"><span class="secno">4.5.2.1 </span>Constructors</a></li></ul></li></ul></li></ul></li><li class="tocline"><a class="tocxref" href="#the-model-sources-sinks-constraints-and-states"><span class="secno">5. </span>The model: sources, sinks, constraints, and states</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" ref="#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-4"><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-mediaerroreventinit-members"><san class="secno">7.4 </span>Dictionary <span class="formerLink"><code>MediaErrorEventInit</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="#methods-2"><span class="secno">9.1.1 </span>Methods</a></li></ul></li><li class="tocline"><a class="tocxref" href="#device-info"><span class="secno">9.2 </span>Device Info</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#callback-mediadeviceinfocallback-parameters"><span class="secno">9.2.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.2.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-1"><span class="secno">10.1 </span>NavigatorUserMedia</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="#mediastreamconstraints"><span class="secno">10.2 </span>MediaStreamConstraints</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#dictionary-mediastreamconstraints-members"><span class="secno">10.2.1 </span>Dictionary <span class="formerLink"><code>MediaStreamConstraints</code></span> Members</a></li></ul></li><li class="tocline"><a class="tocxref" href="#navigatorusermediasccesscallback"><span class="secno">10.3 </span>NavigatorUserMediaSuccessCallback</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#callback-navigatorusermediasuccesscallback-parameters"><span class="secno">10.3.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.4 </span>NavigatorUserMediaErrorCallback</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#callback-navigatorusermediaerrorcallback-parameters"><span class="secno">10.4.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.5 </span>Implementation Suggestions</a></li></ul></li><li class="tocline"><a class="tocxref" href="#constrainable-interface"><span class="secno">11. </span>Constranable Interface</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#interface-definition-1"><span class="secno">11.1 </span>Interface Definition</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#attributes-6"><span class="secno">11.1.1 </span>Attributes</a></li><li class="tocline"><a class="tocxref" href="#methods-4"><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</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="#PropertyValueSet"><span class="secno">11.2.1 </span><span>PropertyValueSet</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="#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-types"><span class="scno">4.3.4 </span>Track Source Types</a></li><li class="tocline"><a class="tocxref" href="#isolated-media-streams"><span class="secno">4.3.5 </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-states"><span class="secno">5. </span>The model: sources, sinks, constraints, and states</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>Attibutes</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-mediaerroreventinit-members"><span class="secno">7.4 </span>Dictionary <span class="formerLink"><code>MediaErrorEventInit</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="#methods-2"><span class="secno">9.1.1 </span>Methods</a></li></ul></li><li class="tocline"><a class="tocxref" href="#deviceinfo"><span class="secno">9.2 </span>Device Info</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#callback-mediadeviceinfocallback-parameters"><span class="secno">9.2.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.2.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-1"><span class="secno">10.1 </span>NavigatorUserMedia</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="#mediastreamconstraints"><span class="secno">10.2 </span>MediaSteamConstraints</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#dictionary-mediastreamconstraints-members"><span class="secno">10.2.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.3 </span>NavigatorUserMediaSuccessCallback</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#callback-navigatorusermediasuccesscallback-parameters"><span class="secno">10.3.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.4 </span>NavigatorUserMediaErrorCallback</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#callback-navigatorusermediaerrorcallback-parameters"><span class="secno">10.4.1 </span>Callback <span class="formerLink"><code>NavigatrUserMediaErrorCallback</code></span> Parameters</a></li></ul></li><li class="tocline"><a class="tocxref" href="#implementation-suggestions"><span class="secno">10.5 </span>Implementation Suggestions</a></li></ul></li><li class="tocline"><a class="tocxref" href="#constrainable-interface"><span class="secno">11. </span>Constrainable Interface</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#interface-definition-1"><span class="secno">11.1 </span>Interface Definition</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#attributes-6"><span class="secno">11.1.1 </span>Attributes</a></li><li class="tocline"><a class="tocxref" href="#methods-4"><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</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="#PropertyValueSet"><span class="secno">11.2.1 </span><span>PropertyValueSet</span>
         </a></li><li class="tocline"><a class="tocxref" href="#PropertyValueDoubleRange"><span class="secno">11.2.2 </span>PropertyValueDoubleRange</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#dictionary-propertyvaluedoublerange-members"><span class="secno">11.2.2.1 </span>Dictionary <span class="formerLink"><code>PropertyValueDoubleRange</code></span> Members</a></li></ul></li><li class="tocline"><a class="tocxref" href="#PropertyValueLongRange"><span class="secno">11.2.3 </span>PropertyValueLongRange</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#dictionary-propertyvaluelongrange-members"><span class="secno">11.2.3.1 </span>Dictionary <span class="formerLink"><code>PropertyValueLongRange</code></span> Members</a></li></ul></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</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><li class="tocline"><a class="tocxref" href="#constraintset"><span class="secno">11.5.2 </span>ConstraintSet</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="#acknwledgements"><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>
@@ -740,6 +740,31 @@
 
         <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>
 
 
@@ -1133,12 +1158,6 @@
 
 
             <li>
-              <p>If <var>stream</var> is <a class="internalDFN" href="#dfn-finished">finished</a>, throw an
-              <code>INVALID_STATE_ERR</code> exception.</p>
-            </li>
-
-
-            <li>
               <p>If <var>track</var> is already in <var>stream's</var> <a href="#track-set">track set</a>, then abort these steps.</p>
             </li>
 
@@ -1216,28 +1235,9 @@
 
 
           <p>When the <dfn id="dom-mediastream-removetrack"><code>removeTrack()</code></dfn> method
-          is invoked, the user agent <em title="MUST" class="rfc2119">MUST</em> run the following steps:</p>
-
-
-          <ol>
-            <li>
-              <p>Let <var>track</var> be the
-              <code><a class="idlType" href="#idl-def-MediaStreamTrack"><code>MediaStreamTrack</code></a></code> argument and
-              <var>stream</var> this <code><a class="idlType" href="#idl-def-MediaStream"><code>MediaStream</code></a></code>
-              object.</p>
-            </li>
-
-
-            <li>
-              <p>If <var>stream</var> is <a class="internalDFN" href="#dfn-finished">finished</a>, throw an
-              <code>INVALID_STATE_ERR</code> exception.</p>
-            </li>
-
-
-            <li>
-              <p>If <var>track</var> is in <var>stream</var>'s <a href="#track-set">track set</a>, remove it.</p>
-            </li>
-          </ol>
+          is invoked, the user agent <em title="MUST" class="rfc2119">MUST</em> remove the track, indicated by the
+          method's argument, from the stream's <a href="#track-set">track
+          set</a>, if present.</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">track</td><td class="prmType"><code><a class="idlType" href="#idl-def-MediaStreamTrack"><code>MediaStreamTrack</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></dl></section>
     </section>
 
@@ -1373,11 +1373,7 @@
         <h4 id="h4_tracks-and-constraints" role="heading" aria-level="3"><span class="secno">4.3.2 </span>Tracks and Constraints</h4>
 
 
-        <p>Constraints are set on a per-track basis rather than on the
-        source itself. However, if the
-        <code><a class="internalDFN" href="#dfn-sourcetype">sourceType</a></code> is "none" or the
-        <code><a class="internalDFN" href="#dom-mediastreamtrack-remote">remote</a></code> attribute is <code>true</code>, the track's
-        constraints will not be applied to the source.</p>
+        <p>Constraints are set on tracks and may affect sources.</p>
 
 
         <p>Whether <code><a class="idlType" href="#idl-def-Constraints"><code>Constraints</code></a></code> were provided at track
@@ -1432,6 +1428,7 @@
 <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></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>
@@ -1537,7 +1534,18 @@
                 <p>Return <var>trackClone</var>.</p>
               </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-stop-void"><code>stop</code></dt><dd>
+          <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-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-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
             invoked, the user agent <em title="MUST" class="rfc2119">MUST</em> run following steps:</p>
 
@@ -1616,10 +1624,10 @@
     "<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
-          <code><a class="idlType" href="#idl-def-VideoStreamTrack"><code>VideoStreamTrack</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
-          <code><a class="idlType" href="#idl-def-AudioStreamTrack"><code>AudioStreamTrack</code></a></code>s. The source is a local
+          <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
+          <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
           audio-producing microphone source.</td></tr></tbody></table>
       </section>
 
@@ -1709,96 +1717,8 @@
           <p>TODO</p>
         </dd></dl></section>
     </section>
-
-
-    <section id="video-and-audio-tracks">
-      <h3 id="h3_video-and-audio-tracks" role="heading" aria-level="2"><span class="secno">4.5 </span>Video and Audio Tracks</h3>
-
-
-      <p>The <code><a class="idlType" href="#idl-def-MediaStreamTrack"><code>MediaStreamTrack</code></a></code> object cannot be instantiated
-      directly. To create an instance of a
-      <code><a class="idlType" href="#idl-def-MediaStreamTrack"><code>MediaStreamTrack</code></a></code>, one of its derived track types may
-      be instantiated. These derived types are defined in this section.</p>
-
-
-      <p>Note that the camera's <q>green light</q> doesn't come on when a new
-      track is created; nor does the user get prompted to enable the
-      camera/microphone. Those actions only happen after the developer has
-      requested that a media stream containing <code>"new"</code> tracks be
-      bound to a source via <code><a class="internalDFN" href="#dom-navigator-getusermedia">getUserMedia()</a></code>. Until that
-      point tracks are inert.</p>
-
-
-      <section id="videostreamtrack-interface">
-        <h4 id="h4_videostreamtrack-interface" role="heading" aria-level="3"><span class="secno">4.5.1 </span>VideoStreamTrack interface</h4>
-
-
-        <p>Video tracks may be instantiated with optional media track
-        constraints. These constraints can be later modified on the track as
-        needed by the application, or created after-the-fact if the initial
-        constraints are unknown to the application.</p>
-
-
-        <div class="note"><div id="h_note_4" role="heading" aria-level="4" class="note-title"><span>Note</span></div><div class="">
-          <p><strong>Example:</strong> <code><a class="idlType" href="#idl-def-VideoStreamTrack"><code>VideoStreamTrack</code></a></code>
-          objects are instantiated in JavaScript using the new operator:</p>
-
-          <div class="example"><div class="example-title"><span>Example 1</span></div><pre style="" xml:space="preserve" class="example highlight prettyprint prettyprinted"><span class="kwd">new</span><span class="pln"> </span><span class="typ">VideoStreamTrack</span><span class="pun">();</span></pre></div>or
-
-          <div class="example"><div class="example-title"><span>Example 2</span></div><pre style="" xml:space="preserve" class="example highlight prettyprint prettyprinted"><span class="kwd">new</span><span class="pln"> </span><span class="typ">VideoStreamTrack</span><span class="pun">({</span><span class="pln">
-    </span><span class="str">"optional"</span><span class="pun">:</span><span class="pln"> </span><span class="pun">[{</span><span class="pln">
-        sourceId</span><span class="pun">:</span><span class="pln"> </span><span class="str">"20983-20o198-109283-098-09812"</span><span class="pln">
-    </span><span class="pun">},</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
-        width</span><span class="pun">:</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
-            min</span><span class="pun">:</span><span class="pln"> </span><span class="lit">800</span><span class="pun">,</span><span class="pln">
-            max</span><span class="pun">:</span><span class="pln"> </span><span class="lit">1200</span><span class="pln">
-        </span><span class="pun">}</span><span class="pln">
-    </span><span class="pun">},</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
-        height</span><span class="pun">:</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
-            min</span><span class="pun">:</span><span class="pln"> </span><span class="lit">600</span><span class="pln">
-        </span><span class="pun">}</span><span class="pln">
-    </span><span class="pun">}]</span><span class="pln">
-</span><span class="pun">});</span></pre></div>
-        </div></div>
-
-
-        <pre class="idl"><span class="idlInterface" id="idl-def-VideoStreamTrack">[<span class="idlCtor"> <span class="idlCtorKeyword"></span><span class="idlCtorName"><a href="#widl-ctor-VideoStreamTrack--Constraints-videoConstraints">Constructor</a></span> (<span class="idlParam">optional <span class="idlParamType"><a class="idlType" href="#idl-def-Constraints"><code>Constraints</code></a></span> <span class="idlParamName">videoConstraints</span></span>)</span>]
-interface <span class="idlInterfaceID">VideoStreamTrack</span> : <span class="idlSuperclass"><a class="idlType" href="#idl-def-MediaStreamTrack"><code>MediaStreamTrack</code></a></span> {
-};</span></pre><section id="constructors-2"><h5 id="h5_constructors-2" role="heading" aria-level="4"><span class="secno">4.5.1.1 </span>Constructors</h5><dl class="constructors"><dt id="widl-ctor-VideoStreamTrack--Constraints-videoConstraints"><code>VideoStreamTrack</code></dt><dd>
-            <p>TODO</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">videoConstraints</td><td class="prmType"><code><a class="idlType" href="#idl-def-Constraints"><code>Constraints</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></dd></dl></section>
-      </section>
-
-
-      <section id="audiostreamtrack">
-        <h4 id="h4_audiostreamtrack" role="heading" aria-level="3"><span class="secno">4.5.2 </span>AudioStreamTrack</h4>
-
-
-        <div class="note"><div id="h_note_5" role="heading" aria-level="4" class="note-title"><span>Note</span></div><div class="">
-          <p><strong>Example:</strong> <code><a class="idlType" href="#idl-def-AudioStreamTrack"><code>AudioStreamTrack</code></a></code>
-          objects are instantiated in JavaScript using the new operator:</p>
-
-          <div class="example"><div class="example-title"><span>Example 3</span></div><pre style="" xml:space="preserve" class="example highlight prettyprint prettyprinted"><span class="kwd">new</span><span class="pln"> </span><span class="typ">AudioStreamTrack</span><span class="pun">();</span></pre></div>or
-
-          <div class="example"><div class="example-title"><span>Example 4</span></div><pre style="" xml:space="preserve" class="example highlight prettyprint prettyprinted"><span class="kwd">new</span><span class="pln"> </span><span class="typ">AudioStreamTrack</span><span class="pun">({</span><span class="pln">
-    optional</span><span class="pun">:</span><span class="pln"> </span><span class="pun">[{</span><span class="pln">
-        sourceId</span><span class="pun">:</span><span class="pln"> </span><span class="str">"64815-wi3c89-1839dk-x82-392aa"</span><span class="pln">
-    </span><span class="pun">},</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
-        gain</span><span class="pun">:</span><span class="pln"> </span><span class="lit">0.5</span><span class="pln">
-    </span><span class="pun">}]</span><span class="pln">
-</span><span class="pun">});</span></pre></div><!-- TODO - gain in above example should be long or double to match -->
-          <!-- spec. Probably wrong the way it is now -->
-        </div></div>
-
-
-        <pre class="idl"><span class="idlInterface" id="idl-def-AudioStreamTrack">[<span class="idlCtor"> <span class="idlCtorKeyword"></span><span class="idlCtorName"><a href="#widl-ctor-AudioStreamTrack--Constraints-audioConstraints">Constructor</a></span> (<span class="idlParam">optional <span class="idlParamType"><a class="idlType" href="#idl-def-Constraints"><code>Constraints</code></a></span> <span class="idlParamName">audioConstraints</span></span>)</span>]
-interface <span class="idlInterfaceID">AudioStreamTrack</span> : <span class="idlSuperclass"><a class="idlType" href="#idl-def-MediaStreamTrack"><code>MediaStreamTrack</code></a></span> {
-};</span></pre><section id="constructors-3"><h5 id="h5_constructors-3" role="heading" aria-level="4"><span class="secno">4.5.2.1 </span>Constructors</h5><dl class="constructors"><dt id="widl-ctor-AudioStreamTrack--Constraints-audioConstraints"><code>AudioStreamTrack</code></dt><dd>TODO<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">audioConstraints</td><td class="prmType"><code><a class="idlType" href="#idl-def-Constraints"><code>Constraints</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></dd></dl></section>
-      </section>
-    </section>
   </section>
 
-
   <section id="the-model-sources-sinks-constraints-and-states">
     <!--OddPage--><h2 id="h2_the-model-sources-sinks-constraints-and-states" role="heading" aria-level="1"><span class="secno">5. </span>The model: sources, sinks, constraints, and states</h2>
 
@@ -1825,7 +1745,7 @@
     pipeline and have the source produce content more suitable for display.</p>
 
 
-    <div class="note"><div id="h_note_6" role="heading" aria-level="2" class="note-title"><span>Note</span></div><div class="">
+    <div class="note"><div id="h_note_4" role="heading" aria-level="2" class="note-title"><span>Note</span></div><div class="">
       <p><strong>Note:</strong> This sort of feedback loop is obviously just
       enabling an "optimization", but it's a non-trivial gain. This
       optimization can save battery, allow for less network congestion,
@@ -2476,13 +2396,13 @@
       </dd></dl></section>
 
 
-    <div class="note"><div id="h_note_7" role="heading" aria-level="2" class="note-title"><span>Note</span></div><div class="">
+    <div class="note"><div id="h_note_5" role="heading" aria-level="2" class="note-title"><span>Note</span></div><div class="">
       Open Issue: We may make MediaError inherit from DOMError once the
       definition of DOMError is stable.
     </div></div>
 
 
-    <div class="note"><div id="h_note_8" role="heading" aria-level="2" class="note-title"><span>Note</span></div><div class="">
+    <div class="note"><div id="h_note_6" role="heading" aria-level="2" class="note-title"><span>Note</span></div><div class="">
       Open Issue: Do we want to allow the constraintName attribute to contain
       multiple constraint names? In many cases the error is raised as soon as a
       single unsatisfied mandatory constraint is found, but in others it may be
@@ -2499,7 +2419,7 @@
 };</span><br><br>[<span class="idlCtor"> <span class="idlCtorKeyword"></span><span class="idlCtorName"><a href="#widl-ctor-MediaErrorEvent--DOMString-type-MediaErrorEventInit-eventInitDict">Constructor</a></span> (<span class="idlParam"><span class="idlParamType">DOMString</span> <span class="idlParamName">type</span></span>, <span class="idlParam"><span class="idlParamType"><a class="idlType" href="#idl-def-MediaErrorEventInit"><code>MediaErrorEventInit</code></a></span> <span class="idlParamName">eventInitDict</span></span>)</span>]
 interface <span class="idlInterfaceID">MediaErrorEvent</span> : <span class="idlSuperclass">Event</span> {
 <span class="idlAttribute">    readonly    attribute <span class="idlAttrType"><a class="idlType" href="#idl-def-MediaError"><code>MediaError</code></a></span> <span class="idlAttrName"><a href="#widl-MediaErrorEvent-error">error</a></span>;</span>
-};</span></pre><section id="constructors-4"><h3 id="h3_constructors-4" role="heading" aria-level="2"><span class="secno">7.2 </span>Constructors</h3><dl class="constructors"><dt id="widl-ctor-MediaErrorEvent--DOMString-type-MediaErrorEventInit-eventInitDict"><code>MediaErrorEvent</code></dt><dd>TODO<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">type</td><td class="prmType"><code>DOMString</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">eventInitDict</td><td class="prmType"><code><a class="idlType" href="#idl-def-MediaErrorEventInit"><code>MediaErrorEventInit</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="rmDesc"></td></tr></tbody></table></dd></dl></section><section id="attributes-5"><h3 id="h3_attributes-5" role="heading" aria-level="2"><span class="secno">7.3 </span>Attributes</h3><dl class="attributes"><dt id="widl-MediaErrorEvent-error"><code>error</code> of type <span class="idlAttrType"><a class="idlType" href="#idl-def-MediaError"><code>MediaError</code></a></span>, readonly   </dt><dd>TODO</dd></dl></section>
+};</span></pre><section id="constructors-2"><h3 id="h3_constructors-2" role="heading" aria-level="2"><span class="secno">7.2 </span>Constructors</h3><dl class="constructors"><dt id="widl-ctor-MediaErrorEvent--DOMString-type-MediaErrorEventInit-eventInitDict"><code>MediaErrorEvent</code></dt><dd>TODO<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">type</td><td class="prmType"><code>DOMString</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">eventInitDict</td><td class="prmType"><code><a class="idlType" href="#idl-def-MediaErrorEventInit"><code>MediaErrorEventInit</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="rmDesc"></td></tr></tbody></table></dd></dl></section><section id="attributes-5"><h3 id="h3_attributes-5" role="heading" aria-level="2"><span class="secno">7.3 </span>Attributes</h3><dl class="attributes"><dt id="widl-MediaErrorEvent-error"><code>error</code> of type <span class="idlAttrType"><a class="idlType" href="#idl-def-MediaError"><code>MediaError</code></a></span>, readonly   </dt><dd>TODO</dd></dl></section>
 
 
     <section id="dictionary-mediaerroreventinit-members"><h3 id="h3_dictionary-mediaerroreventinit-members" role="heading" aria-level="2"><span class="secno">7.4 </span>Dictionary <a href="#idl-def-MediaErrorEventInit" class="idlType"><code>MediaErrorEventInit</code></a> Members</h3><dl class="dictionary-members"><dt id="widl-MediaErrorEventInit-error"><code>error</code> of type <span class="idlMemberType"><a class="idlType" href="#idl-def-MediaError"><code>MediaError</code></a></span></dt><dd>
@@ -2792,7 +2712,7 @@
         .</dd></dl></section>
 
 
-      <div class="note"><div id="h_note_9" role="heading" aria-level="3" class="note-title"><span>Note</span></div><div class="">
+      <div class="note"><div id="h_note_7" role="heading" aria-level="3" class="note-title"><span>Note</span></div><div class="">
         The old SourceInfo dictionary used to refer to the MediaSourceStates
         dictionary. That dictionary is no longer available when Constrainable
         is introduced. When Constrainable lands, we should see if we can align
@@ -2852,12 +2772,7 @@
           video or audio input.</p>
 
 
-          <div class="issue"><div id="h_issue_2" role="heading" aria-level="4" class="issue-title"><span>Issue 2</span></div><p class="">The syntax for getUserMedia() is still under
-          discussion. Some questions are: whether it creates media streams or
-          just initializes ones already created; whether it creates streams
-          synchronously (immediate return of MediaStream with callback later
-          when user grants permission) or asynchronously (MediaStream available
-          only upon callback).</p></div>
+          <div class="issue"><div id="h_issue_2" role="heading" aria-level="4" class="issue-title"><span>Issue 2</span></div><p class="">(Remove when other issues are removed. This is only here to keep the issues from being renumbered)</p></div>
 
 
           <p>The <var>constraints</var> argument is an object of type
@@ -3484,7 +3399,7 @@
           the capabilities that the object supports.</p>
 
 
-          <div class="note"><div id="h_note_10" role="heading" aria-level="4" class="note-title"><span>Note</span></div><div class="">
+          <div class="note"><div id="h_note_8" role="heading" aria-level="4" class="note-title"><span>Note</span></div><div class="">
             <p>It is possible that the underlying hardware may not exactly map
             to the range defined in the registry entry. Where this is possible,
             the entry <em title="should" class="rfc2119">should</em> define how
@@ -3510,11 +3425,13 @@
           the optional ConstraintSets returned may not be currently satisfied.
           To check which ConstraintSets are currently in effect, the application
         should use <code>getSettings</code>.
-        <div><em>No parameters.</em></div><div><em>Return type: </em><code><a class="idlType" href="#idl-def-Constraints"><code>Constraints</code></a></code></div></dd><dt id="widl-Constrainable-getSettings-Settings"><code>getSettings</code></dt><dd>The <dfn id="dfn-getsettings">getSettings()</dfn> method returns the current settings of
-        all the properties of the object, whether they are platform defaults or
-      have been set by <code>applyConstraints()</code>. Note that the actual
-        setting of a property <em title="must" class="rfc2119">must</em> be a
-        single value. 
+        <div><em>No parameters.</em></div><div><em>Return type: </em><code><a class="idlType" href="#idl-def-Constraints"><code>Constraints</code></a></code></div></dd><dt id="widl-Constrainable-getSettings-Settings"><code>getSettings</code></dt><dd>The <dfn id="dfn-getsettings">getSettings()</dfn> method returns the current
+        settings of all the properties of the object, whether they are
+        platform defaults or have been set
+        by <code>applyConstraints()</code>. The values returned for
+        the properties of the object <em title="MUST" class="rfc2119">MUST</em> lie within the currently
+        satisfied set of constraints applied to this object. Note that
+        the actual setting of a property <em title="must" class="rfc2119">must</em> be a single value.
 <div><em>No parameters.</em></div><div><em>Return type: </em><code><a class="internalDFN" href="#dfn-settings">Settings</a></code></div></dd></dl></section>
 
 
@@ -3539,7 +3456,7 @@
       <code><a class="internalDFN" href="#dfn-constraints">constraints</a></code> is below. It uses the properties defined
       in <a href="#sec-track-properties">the Track property registry</a>.</p>
 
-      <div class="example"><div class="example-title"><span>Example 5</span></div><pre style="" xml:space="preserve" class="example highlight prettyprint prettyprinted"><span class="pun">{</span><span class="pln">
+      <div class="example"><div class="example-title"><span>Example 1</span></div><pre style="" xml:space="preserve" class="example highlight prettyprint prettyprinted"><span class="pun">{</span><span class="pln">
   </span><span class="str">"mandatory"</span><span class="pun">:</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
     </span><span class="str">"width"</span><span class="pun">:</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
       </span><span class="str">"min"</span><span class="pun">:</span><span class="pln"> </span><span class="lit">640</span><span class="pln">
@@ -3564,6 +3481,34 @@
     </span><span class="str">"facingMode"</span><span class="pun">:</span><span class="pln"> </span><span class="str">"user"</span><span class="pln">
   </span><span class="pun">}]</span><span class="pln">
 </span><span class="pun">}</span></pre></div>
+
+      <p>Here is another example, specifically for a video track:</p>
+
+      <div class="example"><div class="example-title"><span>Example 2</span></div><pre style="" xml:space="preserve" class="example highlight prettyprint prettyprinted"><span class="pun">{</span><span class="pln">
+  </span><span class="str">"optional"</span><span class="pun">:</span><span class="pln"> </span><span class="pun">[{</span><span class="pln">
+    sourceId</span><span class="pun">:</span><span class="pln"> </span><span class="str">"20983-20o198-109283-098-09812"</span><span class="pln">
+  </span><span class="pun">},</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
+    width</span><span class="pun">:</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
+      min</span><span class="pun">:</span><span class="pln"> </span><span class="lit">800</span><span class="pun">,</span><span class="pln">
+      max</span><span class="pun">:</span><span class="pln"> </span><span class="lit">1200</span><span class="pln">
+    </span><span class="pun">}</span><span class="pln">
+  </span><span class="pun">},</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
+    height</span><span class="pun">:</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
+      min</span><span class="pun">:</span><span class="pln"> </span><span class="lit">600</span><span class="pln">
+    </span><span class="pun">}</span><span class="pln">
+  </span><span class="pun">}]</span><span class="pln">
+</span><span class="pun">}</span></pre></div>
+
+      <p>And here's one for an audio track:</p>
+
+      <div class="example"><div class="example-title"><span>Example 3</span></div><pre style="" xml:space="preserve" class="example highlight prettyprint prettyprinted"><span class="pun">{</span><span class="pln">
+  optional</span><span class="pun">:</span><span class="pln"> </span><span class="pun">[{</span><span class="pln">
+    sourceId</span><span class="pun">:</span><span class="pln"> </span><span class="str">"64815-wi3c89-1839dk-x82-392aa"</span><span class="pln">
+  </span><span class="pun">},</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
+    gain</span><span class="pun">:</span><span class="pln"> </span><span class="lit">0.5</span><span class="pln">
+  </span><span class="pun">}]</span><span class="pln">
+</span><span class="pun">}</span></pre></div>
+
     </section>
 
 
@@ -3654,7 +3599,7 @@
       is not very realistic in that a browser would actually be required to
       support more settings that just these.</p>
 
-      <div class="example"><div class="example-title"><span>Example 6</span></div><pre style="" xml:space="preserve" class="example highlight prettyprint prettyprinted"><span class="pun">{</span><span class="pln">
+      <div class="example"><div class="example-title"><span>Example 4</span></div><pre style="" xml:space="preserve" class="example highlight prettyprint prettyprinted"><span class="pun">{</span><span class="pln">
   </span><span class="str">"frameRate"</span><span class="pun">:</span><span class="pln"> </span><span class="pun">{</span><span class="pln">

[148 lines skipped]
--- /sources/public/2011/webrtc/editor/getusermedia.js	2013/10/17 11:17:27	1.16
+++ /sources/public/2011/webrtc/editor/getusermedia.js	2014/03/21 13:01:10	1.17
@@ -19,7 +19,7 @@
    // copyrightStart: "2005",
 
    // if there is a previously published draft, uncomment this and set its YYYY-MM-DD
-   prevED: "http://dev.w3.org/2011/webrtc/editor/archives/20130824/getusermedia.html",
+   prevED: "http://dev.w3.org/2011/webrtc/editor/archives/20140218/getusermedia.html",
 
    // if there a publicly available Editor's Draft, this is the link
    edDraftURI:           "http://dev.w3.org/2011/webrtc/editor/getusermedia.html",
@@ -29,7 +29,7 @@
 
    // if you want to have extra CSS, append them to this list
    // it is recommended that the respec.css stylesheet be kept
-   extraCSS:             ["http://dev.w3.org/2009/dap/ReSpec.js/css/respec.css"],
+   //extraCSS:             ["http://dev.w3.org/2009/dap/ReSpec.js/css/respec.css"],
    //extraCSS:           ["../../../2009/dap/ReSpec.js/css/respec.css"],
 
    // editors, add as many as you like
--- /sources/public/2011/webrtc/editor/webrtc.html	2014/01/28 02:17:45	1.36
+++ /sources/public/2011/webrtc/editor/webrtc.html	2014/03/21 13:01:10	1.37
@@ -427,23 +427,21 @@
     border-collapse:    collapse;
     width:  100%;
 }
-</style><link rel="stylesheet" href="https://www.w3.org/StyleSheets/TR/W3C-ED"><!--[if lt IE 9]><script src='https://www.w3.org/2008/site/js/html5shiv.js'></script><![endif]--></head>
+</style><link href="https://www.w3.org/StyleSheets/TR/W3C-ED" rel="stylesheet"><!--[if lt IE 9]><script src='https://www.w3.org/2008/site/js/html5shiv.js'></script><![endif]--></head>
 
-<body class="h-entry" style="" role="document" id="respecDocument"><div class="head" role="contentinfo" id="respecHeader">
+<body id="respecDocument" role="document" class="h-entry"><div id="respecHeader" role="contentinfo" class="head">
   <p>
     
-      <a href="http://www.w3.org/"><img width="72" height="48" src="https://www.w3.org/Icons/w3c_home" alt="W3C"></a>
+      <a href="http://www.w3.org/"><img src="https://www.w3.org/Icons/w3c_home" alt="W3C" height="48" width="72"></a>
     
   </p>
   <h1 class="title p-name" id="title" property="dcterms:title">WebRTC 1.0: Real-time Communication Between Browsers</h1>
   
-  <h2 property="dcterms:issued" datatype="xsd:dateTime" content="2014-01-27T07:00:00.000Z" id="w3c-editor-s-draft-27-january-2014"><acronym title="World Wide Web Consortium">W3C</acronym> Editor's Draft <time class="dt-published" datetime="2014-01-27">27 January 2014</time></h2>
+  <h2 id="w3c-editor-s-draft-21-march-2014" property="dcterms:issued" datatype="xsd:dateTime" content="2014-03-21T12:39:11.000Z"><acronym title="World Wide Web Consortium">W3C</acronym> Editor's Draft <time class="dt-published" datetime="2014-03-21">21 March 2014</time></h2>
   <dl>
     
       <dt>This version:</dt>
-      <dd><a
-      href="http://dev.w3.org/2011/webrtc/editor/archives/20140127/webrtc.html">http://dev.w3.org/2011/webrtc/editor/archives/20140127/webrtc.html</a></dd>
-      
+      <dd><a class="u-url" href="http://dev.w3.org/2011/webrtc/editor/archives/20140321/webrtc.html">http://dev.w3.org/2011/webrtc/editor/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>
     
@@ -454,9 +452,10 @@
     
     
     
+    
       
         <dt>Previous editor's draft:</dt>
-        <dd><a href="http://dev.w3.org/2011/webrtc/editor/archives/20130830/webrtc.html">http://dev.w3.org/2011/webrtc/editor/archives/20130830/webrtc.html</a></dd>
+        <dd><a href="http://dev.w3.org/2011/webrtc/editor/archives/20140127/webrtc.html">http://dev.w3.org/2011/webrtc/editor/archives/20140127/webrtc.html</a></dd>
       
     
     
@@ -484,14 +483,14 @@
   
   <hr>
 </div>
-  <section id="abstract" class="introductory" property="dcterms:abstract" datatype="" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h2 aria-level="1" role="heading" id="h2_abstract">Abstract</h2>
+  <section rel="bibo:Chapter" resource="#ref" typeof="bibo:Chapter" datatype="" property="dcterms:abstract" class="introductory" id="abstract"><h2 id="h2_abstract" role="heading" aria-level="1">Abstract</h2>
     <p>This document defines a set of ECMAScript APIs in WebIDL to allow media
     to be sent to and received from another browser or device implementing the
     appropriate set of real-time protocols. This specification is being
     developed in conjunction with a protocol specification developed by the
     IETF RTCWEB group and an API specification to get access to local media
     devices developed by the Media Capture Task Force.</p>
-  </section><section id="sotd" class="introductory" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h2 aria-level="1" role="heading" id="h2_sotd">Status of This Document</h2>
+  </section><section rel="bibo:Chapter" resource="#ref" typeof="bibo:Chapter" id="sotd" class="introductory"><h2 id="h2_sotd" role="heading" aria-level="1">Status of This Document</h2>
   
     
       
@@ -553,6 +552,7 @@
           </p>
         
         
+        
         <p>
           
             This document was produced by a group operating under the 
@@ -579,15 +579,15 @@
       
     
   
-</section><section id="toc"><h2 class="introductory" aria-level="1" role="heading" id="h2_toc">Table of Contents</h2><ul class="toc" role="directory" id="respecContents"><li class="tocline"><a href="#intro" class="tocxref"><span class="secno">1. </span>Introduction</a></li><li class="tocline"><a href="#conformance" class="tocxref"><span class="secno">2. </span>Conformance</a></li><li class="tocline"><a href="#terminology" class="tocxref"><span class="secno">3. </span>Terminology</a></li><li class="tocline"><a href="#peer-to-peer-connections" class="tocxref"><span class="secno">4. </span>Peer-to-peer connections</a><ul class="toc"><li class="tocline"><a href="#introduction" class="tocxref"><span class="secno">4.1 </span>Introduction</a></li><li class="tocline"><a href="#configuration" class="tocxref"><span class="secno">4.2 </span>Configuration</a><ul class="toc"><li class="tocline"><a href="#rtcconfiguration-type" class="tocxref"><span class="secno">4.2.1 </span>RTCConfiguration Type</a><ul class="toc"><liclass="tocline"><a href="#dictionary-rtcconfiguration-members" class="tocxref"><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 href="#rtciceserver-type" class="tocxref"><span class="secno">4.2.2 </span>RTCIceServer Type</a><ul class="toc"><li class="tocline"><a href="#dictionary-rtciceserver-members" class="tocxref"><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 href="#rtcicetransports-enum" class="tocxref"><span class="secno">4.2.3 </span>RTCIceTransports Enum</a></li><li class="tocline"><a href="#offer-answer-options" class="tocxref"><span class="secno">4.2.4 </span>Offer/Answer Options</a><ul class="toc"><li class="tocline"><a href="#dictionary-rtcofferansweroptions-members" class="tocxref"><span class="secno">4.2.4.1 </span>Dictionary <span class="formerLink"><code>RTCOfferAnswerOptions</code</span> Members</a></li><li class="tocline"><a href="#dictionary-rtcofferoptions-members" class="tocxref"><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 href="#rtcpeerconnection-interface" class="tocxref"><span class="secno">4.3 </span>RTCPeerConnection Interface</a><ul class="toc"><li class="tocline"><a href="#operation" class="tocxref"><span class="secno">4.3.1 </span>Operation</a></li><li class="tocline"><a href="#interface-definition" class="tocxref"><span class="secno">4.3.2 </span>Interface Definition</a><ul class="toc"><li class="tocline"><a href="#constructors" class="tocxref"><span class="secno">4.3.2.1 </span>Constructors</a></li><li class="tocline"><a href="#attributes" class="tocxref"><span class="secno">4.3.2.2 </span>Attributes</a></li><li class="tocline"><a href="#methods" class="tocxref"><span class="secno">4.3.2.3 </span>Methods</a></li></ul></li><li class="tocline"><a href"#garbage-collection" class="tocxref"><span class="secno">4.3.3 </span>Garbage collection</a></li></ul></li><li class="tocline"><a href="#state-definitions" class="tocxref"><span class="secno">4.4 </span>State Definitions</a><ul class="toc"><li class="tocline"><a href="#rtcpeerstate-enum" class="tocxref"><span class="secno">4.4.1 </span>RTCPeerState Enum</a></li><li class="tocline"><a href="#rtcicegatheringstate-enum" class="tocxref"><span class="secno">4.4.2 </span>RTCIceGatheringState Enum</a></li><li class="tocline"><a href="#rtciceconnectionstate-enum" class="tocxref"><span class="secno">4.4.3 </span>RTCIceConnectionState Enum</a></li></ul></li><li class="tocline"><a href="#callback-definitions" class="tocxref"><span class="secno">4.5 </span>Callback Definitions</a><ul class="toc"><li class="tocline"><a href="#rtcpeerconnectionerrorcallback" class="tocxref"><span class="secno">4.5.1 </span>RTCPeerConnectionErrorCallback</a><ul class="toc"><li class="tocline"><a href="#callback-rtcpeerconnectionerrorcallack-parameters" class="tocxref"><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 href="#error-handling" class="tocxref"><span class="secno">4.6 </span>Error Handling</a><ul class="toc"><li class="tocline"><a href="#general-principles" class="tocxref"><span class="secno">4.6.1 </span>General Principles</a></li><li class="tocline"><a href="#rtcsdperror" class="tocxref"><span class="secno">4.6.2 </span>RTCSdpError</a><ul class="toc"><li class="tocline"><a href="#attributes-1" class="tocxref"><span class="secno">4.6.2.1 </span>Attributes</a></li></ul></li></ul></li><li class="tocline"><a href="#session-description-model" class="tocxref"><span class="secno">4.7 </span>Session Description Model</a><ul class="toc"><li class="tocline"><a href="#rtcsdptype" class="tocxref"><span class="secno">4.7.1 </span>RTCSdpType</a></li><li class="tocline"><a href="#rtcsessiondescription-class" clas="tocxref"><span class="secno">4.7.2 </span>RTCSessionDescription Class</a><ul class="toc"><li class="tocline"><a href="#constructors-1" class="tocxref"><span class="secno">4.7.2.1 </span>Constructors</a></li><li class="tocline"><a href="#attributes-2" class="tocxref"><span class="secno">4.7.2.2 </span>Attributes</a></li><li class="tocline"><a href="#serializer" class="tocxref"><span class="secno">4.7.2.3 </span>Serializer</a></li><li class="tocline"><a href="#dictionary-rtcsessiondescriptioninit-members" class="tocxref"><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 href="#rtcsessiondescriptioncallback" class="tocxref"><span class="secno">4.7.3 </span>RTCSessionDescriptionCallback</a><ul class="toc"><li class="tocline"><a href="#callback-rtcsessiondescriptioncallback-parameters" class="tocxref"><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 href="#interfaces-for-connectivity-establishment" class="tocxref"><span class="secno">4.8 </span>Interfaces for Connectivity Establishment</a><ul class="toc"><li class="tocline"><a href="#rtcicecandidate-type" class="tocxref"><span class="secno">4.8.1 </span>RTCIceCandidate Type</a><ul class="toc"><li class="tocline"><a href="#constructors-2" class="tocxref"><span class="secno">4.8.1.1 </span>Constructors</a></li><li class="tocline"><a href="#attributes-3" class="tocxref"><span class="secno">4.8.1.2 </span>Attributes</a></li><li class="tocline"><a href="#serializer-1" class="tocxref"><span class="secno">4.8.1.3 </span>Serializer</a></li><li class="tocline"><a href="#dictionary-rtcicecandidateinit-members" class="tocxref"><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 href="#rtcpeerconnectioniceevent" class="tocxrf"><span class="secno">4.8.2 </span>RTCPeerConnectionIceEvent</a><ul class="toc"><li class="tocline"><a href="#constructors-3" class="tocxref"><span class="secno">4.8.2.1 </span>Constructors</a></li><li class="tocline"><a href="#attributes-4" class="tocxref"><span class="secno">4.8.2.2 </span>Attributes</a></li><li class="tocline"><a href="#dictionary-rtcpeerconnectioniceeventinit-members" class="tocxref"><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 href="#peer-to-peer-data-api" class="tocxref"><span class="secno">5. </span>Peer-to-peer Data API</a><ul class="toc"><li class="tocline"><a href="#rtcpeerconnection-interface-extensions" class="tocxref"><span class="secno">5.1 </span>RTCPeerConnection Interface Extensions</a><ul class="toc"><li class="tocline"><a href="#attributes-5" class="tocxref"><span class="secno">5.1.1 </span>Attributes</a></li><li class="tocline"<a href="#methods-1" class="tocxref"><span class="secno">5.1.2 </span>Methods</a></li></ul></li><li class="tocline"><a href="#rtcdatachannel" class="tocxref"><span class="secno">5.2 </span>RTCDataChannel</a><ul class="toc"><li class="tocline"><a href="#attributes-6" class="tocxref"><span class="secno">5.2.1 </span>Attributes</a></li><li class="tocline"><a href="#methods-2" class="tocxref"><span class="secno">5.2.2 </span>Methods</a></li><li class="tocline"><a href="#dictionary-rtcdatachannelinit-members" class="tocxref"><span class="secno">5.2.3 </span>Dictionary <span class="formerLink"><code>RTCDataChannelInit</code></span> Members</a></li></ul></li><li class="tocline"><a href="#rtcdatachannelevent" class="tocxref"><span class="secno">5.3 </span>RTCDataChannelEvent</a><ul class="toc"><li class="tocline"><a href="#constructors-4" class="tocxref"><span class="secno">5.3.1 </span>Constructors</a></li><li class="tocline"><a href="#attributes-7" class="tocxref"><span class="secno">5.3.2 </span>Attributes</a></i><li class="tocline"><a href="#dictionary-rtcdatachanneleventinit-members" class="tocxref"><span class="secno">5.3.3 </span>Dictionary <span class="formerLink"><code>RTCDataChannelEventInit</code></span> Members</a></li></ul></li><li class="tocline"><a href="#garbage-collection-1" class="tocxref"><span class="secno">5.4 </span>Garbage Collection</a></li></ul></li><li class="tocline"><a href="#peer-to-peer-dtmf" class="tocxref"><span class="secno">6. </span>Peer-to-peer DTMF</a><ul class="toc"><li class="tocline"><a href="#rtcpeerconnection-interface-extensions-1" class="tocxref"><span class="secno">6.1 </span>RTCPeerConnection Interface Extensions</a><ul class="toc"><li class="tocline"><a href="#methods-3" class="tocxref"><span class="secno">6.1.1 </span>Methods</a></li></ul></li><li class="tocline"><a href="#rtcdtmfsender" class="tocxref"><span class="secno">6.2 </span>RTCDTMFSender</a><ul class="toc"><li class="tocline"><a href="#attributes-8" class="tocxref"><span class="secno">6.2.1 </span>Attributes</></li><li class="tocline"><a href="#methods-4" class="tocxref"><span class="secno">6.2.2 </span>Methods</a></li></ul></li><li class="tocline"><a href="#rtcdtmftonechangeevent" class="tocxref"><span class="secno">6.3 </span>RTCDTMFToneChangeEvent</a><ul class="toc"><li class="tocline"><a href="#constructors-5" class="tocxref"><span class="secno">6.3.1 </span>Constructors</a></li><li class="tocline"><a href="#attributes-9" class="tocxref"><span class="secno">6.3.2 </span>Attributes</a></li><li class="tocline"><a href="#dictionary-rtcdtmftonechangeeventinit-members" class="tocxref"><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 href="#statistics-model" class="tocxref"><span class="secno">7. </span>Statistics Model</a><ul class="toc"><li class="tocline"><a href="#introduction-1" class="tocxref"><span class="secno">7.1 </span>Introduction</a></li><li class="tocline"><a href="#rtcpeerconection-interface-extensions-2" class="tocxref"><span class="secno">7.2 </span>RTCPeerConnection Interface Extensions</a><ul class="toc"><li class="tocline"><a href="#methods-5" class="tocxref"><span class="secno">7.2.1 </span>Methods</a></li></ul></li><li class="tocline"><a href="#rtcstatscallback" class="tocxref"><span class="secno">7.3 </span>RTCStatsCallback</a><ul class="toc"><li class="tocline"><a href="#callback-rtcstatscallback-parameters" class="tocxref"><span class="secno">7.3.1 </span>Callback <span class="formerLink"><code>RTCStatsCallback</code></span> Parameters</a></li></ul></li><li class="tocline"><a href="#rtcstatsreport-object" class="tocxref"><span class="secno">7.4 </span>RTCStatsReport Object</a><ul class="toc"><li class="tocline"><a href="#methods-6" class="tocxref"><span class="secno">7.4.1 </span>Methods</a></li></ul></li><li class="tocline"><a href="#rtcstats-dictionary" class="tocxref"><span class="secno">7.5 </span>RTCStats Dictionary</a><ul class="toc"><li class="tocline"><a href=#dictionary-rtcstats-members" class="tocxref"><span class="secno">7.5.1 </span>Dictionary <span class="formerLink"><code>RTCStats</code></span> Members</a></li></ul></li><li class="tocline"><a href="#derived-stats-dictionaries" class="tocxref"><span class="secno">7.6 </span>Derived Stats Dictionaries</a><ul class="toc"><li class="tocline"><a href="#dictionary-rtcrtpstreamstats-members" class="tocxref"><span class="secno">7.6.1 </span>Dictionary <span class="formerLink"><code>RTCRTPStreamStats</code></span> Members</a></li><li class="tocline"><a href="#dictionary-rtcinboundrtpstreamstats-members" class="tocxref"><span class="secno">7.6.2 </span>Dictionary <span class="formerLink"><code>RTCInboundRTPStreamStats</code></span> Members</a></li><li class="tocline"><a href="#dictionary-rtcoutboundrtpstreamstats-members" class="tocxref"><span class="secno">7.6.3 </span>Dictionary <span class="formerLink"><code>RTCOutboundRTPStreamStats</code></span> Members</a></li></ul></li><li class="tocline"><a href="#example" cass="tocxref"><span class="secno">7.7 </span>Example</a></li></ul></li><li class="tocline"><a href="#identity" class="tocxref"><span class="secno">8. </span>Identity</a><ul class="toc"><li class="tocline"><a href="#identity-provider-interaction" class="tocxref"><span class="secno">8.1 </span>Identity Provider Interaction</a><ul class="toc"><li class="tocline"><a href="#peer-connection-idp-communications" class="tocxref"><span class="secno">8.1.1 </span>Peer-Connection/IdP
-        Communications</a></li><li class="tocline"><a href="#instantiating-an-idp-proxy" class="tocxref"><span class="secno">8.1.2 </span>Instantiating an IdP Proxy</a></li></ul></li><li class="tocline"><a href="#requesting-assertions" class="tocxref"><span class="secno">8.2 </span>Requesting Assertions</a></li><li class="tocline"><a href="#verifying-assertions" class="tocxref"><span class="secno">8.3 </span>Verifying Assertions</a></li><li class="tocline"><a href="#rtcpeerconnection-interface-extensions-3" class="tocxref"><span class="secno">8.4 </span>RTCPeerConnection Interface Extensions</a><ul class="toc"><li class="tocline"><a href="#attributes-10" class="tocxref"><span class="secno">8.4.1 </span>Attributes</a></li><li class="tocline"><a href="#methods-7" class="tocxref"><span class="secno">8.4.2 </span>Methods</a></li></ul></li><li class="tocline"><a href="#rtcidentityassertion-type" class="tocxref"><span class="secno">8.5 </span>RTCIdentityAssertion Type</a><ul class="toc"><li class="tocline"><a hrf="#dictionary-rtcidentityassertion-members" class="tocxref"><span class="secno">8.5.1 </span>Dictionary <span class="formerLink"><code>RTCIdentityAssertion</code></span> Members</a></li></ul></li><li class="tocline"><a href="#examples" class="tocxref"><span class="secno">8.6 </span>Examples</a></li></ul></li><li class="tocline"><a href="#media-stream-api-extensions-for-network-use" class="tocxref"><span class="secno">9. </span>Media Stream API Extensions for Network Use</a><ul class="toc"><li class="tocline"><a href="#introduction-2" class="tocxref"><span class="secno">9.1 </span>Introduction</a></li><li class="tocline"><a href="#mediastream" class="tocxref"><span class="secno">9.2 </span>MediaStream</a><ul class="toc"><li class="tocline"><a href="#id" class="tocxref"><span class="secno">9.2.1 </span>id</a></li><li class="tocline"><a href="#events-on-mediastream" class="tocxref"><span class="secno">9.2.2 </span>Events on MediaStream</a></li></ul></li><li class="tocline"><a href="#mediastreamtrack" class="tcxref"><span class="secno">9.3 </span>MediaStreamTrack</a></li><li class="tocline"><a href="#mediastreamevent" class="tocxref"><span class="secno">9.4 </span>MediaStreamEvent</a><ul class="toc"><li class="tocline"><a href="#constructors-6" class="tocxref"><span class="secno">9.4.1 </span>Constructors</a></li><li class="tocline"><a href="#attributes-11" class="tocxref"><span class="secno">9.4.2 </span>Attributes</a></li><li class="tocline"><a href="#dictionary-mediastreameventinit-members" class="tocxref"><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 href="#examples-and-call-flows" class="tocxref"><span class="secno">10. </span>Examples and Call Flows</a><ul class="toc"><li class="tocline"><a href="#simple-peer-to-peer-example" class="tocxref"><span class="secno">10.1 </span>Simple Peer-to-peer Example</a></li><li class="tocline"><a href="#advanced-peer-to-peer-example" class="tocxref"><pan class="secno">10.2 </span>Advanced Peer-to-peer Example</a></li><li class="tocline"><a href="#peer-to-peer-data-example" class="tocxref"><span class="secno">10.3 </span>Peer-to-peer Data Example</a></li><li class="tocline"><a href="#call-flow-browser-to-browser" class="tocxref"><span class="secno">10.4 </span>Call Flow Browser to Browser</a></li><li class="tocline"><a href="#dtmf-example" class="tocxref"><span class="secno">10.5 </span>DTMF Example</a></li></ul></li><li class="tocline"><a href="#event-summary" class="tocxref"><span class="secno">11. </span>Event summary</a></li><li class="tocline"><a href="#security-considerations" class="tocxref"><span class="secno">12. </span>Security Considerations</a></li><li class="tocline"><a href="#change-log" class="tocxref"><span class="secno">13. </span>Change Log</a></li><li class="tocline"><a href="#acknowledgements" class="tocxref"><span class="secno">A. </span>Acknowledgements</a></li><li class="tocline"><a href="#references" class="tocxref"><span class="scno">B. </span>References</a><ul class="toc"><li class="tocline"><a href="#normative-references" class="tocxref"><span class="secno">B.1 </span>Normative references</a></li><li class="tocline"><a href="#informative-references" class="tocxref"><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-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="#peer-connection-idp-communications"><span class="secno">8.1.1 </span>Peer-Connection/IdP
+        Communications</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-assertions"><span class="secno">8.2 </span>Requesting Assertions</a></li><li class="tocline"><a class="tocxref" href="#verifying-assertions"><span class="secno">8.3 </span>Verifying 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 clss="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="#examples"><span class="secno">8.6 </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="#mediastreatrack"><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-11"><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-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"><pan 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="tocxref" href="#acknowledgements"><span class="secno">A. </span>Acknowledgements</a></li><li class="tocline"><a class="tocxref" href="#references"><span class="scno">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 class="informative" id="intro" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
-    <!--OddPage--><h2 aria-level="1" role="heading" id="h2_intro"><span class="secno">1. </span>Introduction</h2><p><em>This section is non-normative.</em></p>
+  <section rel="bibo:Chapter" resource="#ref" typeof="bibo:Chapter" class="informative" id="intro">
+    <!--OddPage--><h2 id="h2_intro" role="heading" aria-level="1"><span class="secno">1. </span>Introduction</h2><p><em>This section is non-normative.</em></p>
 
 
     <p>There are a number of facets to video-conferencing in HTML covered by
@@ -610,21 +610,23 @@
     <p>This document defines the APIs used for these features. This
     specification is being developed in conjunction with a protocol
     specification developed by the <a href="http://datatracker.ietf.org/wg/rtcweb/">IETF RTCWEB group</a> and an API
-    specification to get access to local media devices developed by the
-    <a href="http://www.w3.org/2011/04/webrtc/">Media Capture Task
-    Force</a>.</p>
+    specification to get access to local media devices
+    [<cite><a href="#bib-GETUSERMEDIA" class="bibref">GETUSERMEDIA</a></cite>]developed by the <a href="http://www.w3.org/2011/04/webrtc/">Media Capture Task Force</a>. An
+    overview of the system can be found in [<cite><a href="#bib-RTCWEB-OVERVIEW" class="bibref">RTCWEB-OVERVIEW</a></cite>] and
+    [<cite><a href="#bib-RTCWEB-SECURITY" class="bibref">RTCWEB-SECURITY</a></cite>]. </p>
+
   </section>
 
 
-  <section id="conformance" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><!--OddPage--><h2 aria-level="1" role="heading" id="h2_conformance"><span class="secno">2. </span>Conformance</h2>
+  <section rel="bibo:Chapter" resource="#ref" typeof="bibo:Chapter" id="conformance"><!--OddPage--><h2 id="h2_conformance" role="heading" aria-level="1"><span class="secno">2. </span>Conformance</h2>
 <p>
   As well as sections marked as non-normative, all authoring guidelines, diagrams, examples,
   and notes in this specification are non-normative. Everything else in this specification is
   normative.
 </p>
 <p>
-  The key words <em class="rfc2119" title="MUST">MUST</em>, <em class="rfc2119" title="MUST NOT">MUST NOT</em>, <em class="rfc2119" title="REQUIRED">REQUIRED</em>, <em class="rfc2119" title="SHOULD">SHOULD</em>, <em class="rfc2119" title="SHOULD NOT">SHOULD NOT</em>, <em class="rfc2119" title="RECOMMENDED">RECOMMENDED</em>, <em class="rfc2119" title="MAY">MAY</em>,
-  and <em class="rfc2119" title="OPTIONAL">OPTIONAL</em> in this specification are to be interpreted as described in [<cite><a class="bibref" href="#bib-RFC2119">RFC2119</a></cite>].
+  The key words <em title="MUST" class="rfc2119">MUST</em>, <em title="MUST NOT" class="rfc2119">MUST NOT</em>, <em title="REQUIRED" class="rfc2119">REQUIRED</em>, <em title="SHOULD" class="rfc2119">SHOULD</em>, <em title="SHOULD NOT" class="rfc2119">SHOULD NOT</em>, <em title="RECOMMENDED" class="rfc2119">RECOMMENDED</em>, <em title="MAY" class="rfc2119">MAY</em>,
+  and <em title="OPTIONAL" class="rfc2119">OPTIONAL</em> in this specification are to be interpreted as described in [<cite><a href="#bib-RFC2119" class="bibref">RFC2119</a></cite>].
 </p>
 
     <p>This specification defines conformance criteria that apply to a single
@@ -634,45 +636,45 @@
 
     <p>Implementations that use ECMAScript to implement the APIs defined in
     this specification must implement them in a manner consistent with the
-    ECMAScript Bindings defined in the Web IDL specification [<cite><a class="bibref" href="#bib-WEBIDL">WEBIDL</a></cite>], as
+    ECMAScript Bindings defined in the Web IDL specification [<cite><a href="#bib-WEBIDL" class="bibref">WEBIDL</a></cite>], as
     this specification uses that specification and terminology.</p>
   </section>
 
 
   <section id="terminology">
-    <!--OddPage--><h2 aria-level="1" role="heading" id="h2_terminology"><span class="secno">3. </span>Terminology</h2>
+    <!--OddPage--><h2 id="h2_terminology" role="heading" aria-level="1"><span class="secno">3. </span>Terminology</h2>
 
 
     <p>The <code><a href="http://dev.w3.org/html5/spec/webappapis.html#eventhandler">EventHandler</a></code>
     interface represents a callback used for event handlers as defined in
-    [<cite><a class="bibref" href="#bib-HTML5">HTML5</a></cite>].</p>
+    [<cite><a href="#bib-HTML5" class="bibref">HTML5</a></cite>].</p>
 
 
     <p>The concepts <dfn id="dfn-queue-a-task"><a href="http://dev.w3.org/html5/spec/webappapis.html#queue-a-task">queue a
     task</a></dfn> and <dfn id="dfn-fires-a-simple-event"><a href="http://dev.w3.org/html5/spec/webappapis.html#fire-a-simple-event">fires a
-    simple event</a></dfn> are defined in [<cite><a class="bibref" href="#bib-HTML5">HTML5</a></cite>].</p>
+    simple event</a></dfn> are defined in [<cite><a href="#bib-HTML5" class="bibref">HTML5</a></cite>].</p>
 
 
     <p>The terms <dfn id="dfn-event">event</dfn>, <dfn id="dfn-event-handlers"><a href="http://dev.w3.org/html5/spec/webappapis.html#event-handlers">event
     handlers</a></dfn> and <dfn id="dfn-event-handler-event-types"><a href="http://dev.w3.org/html5/spec/webappapis.html#event-handler-event-type">event
-    handler event types</a></dfn> are defined in [<cite><a class="bibref" href="#bib-HTML5">HTML5</a></cite>].</p>
+    handler event types</a></dfn> are defined in [<cite><a href="#bib-HTML5" class="bibref">HTML5</a></cite>].</p>
 
 
     <p>The terms <dfn id="dfn-mediastream">MediaStream</dfn>, <dfn id="dfn-mediastreamtrack">MediaStreamTrack</dfn>,
     <dfn id="dfn-constraints">Constraints</dfn>, and <dfn id="dfn-consumer">Consumer</dfn> are defined in
-    [<cite><a class="bibref" href="#bib-GETUSERMEDIA">GETUSERMEDIA</a></cite>].</p>
+    [<cite><a href="#bib-GETUSERMEDIA" class="bibref">GETUSERMEDIA</a></cite>].</p>
   </section>
 
 
   <section id="peer-to-peer-connections">
-    <!--OddPage--><h2 aria-level="1" role="heading" id="h2_peer-to-peer-connections"><span class="secno">4. </span>Peer-to-peer connections</h2>
+    <!--OddPage--><h2 id="h2_peer-to-peer-connections" role="heading" aria-level="1"><span class="secno">4. </span>Peer-to-peer connections</h2>
 
 
     <section id="introduction">
-      <h3 aria-level="2" role="heading" id="h3_introduction"><span class="secno">4.1 </span>Introduction</h3>
+      <h3 id="h3_introduction" role="heading" aria-level="2"><span class="secno">4.1 </span>Introduction</h3>
 
 
-      <p>An <code><a href="#idl-def-RTCPeerConnection" class="idlType"><code>RTCPeerConnection</code></a></code> allows two users to
+      <p>An <code><a class="idlType" href="#idl-def-RTCPeerConnection"><code>RTCPeerConnection</code></a></code> allows two users to
       communicate directly, browser to browser. Communications are coordinated
       via a signaling channel which is provided by unspecified means, but
       generally by a script in the page via the server, e.g. using
@@ -681,47 +683,47 @@
 
 
     <section id="configuration">
-      <h3 aria-level="2" role="heading" id="h3_configuration"><span class="secno">4.2 </span>Configuration</h3>
+      <h3 id="h3_configuration" role="heading" aria-level="2"><span class="secno">4.2 </span>Configuration</h3>
 
 
       <section id="rtcconfiguration-type">
-        <h4 aria-level="3" role="heading" id="h4_rtcconfiguration-type"><span class="secno">4.2.1 </span>RTCConfiguration Type</h4>
+        <h4 id="h4_rtcconfiguration-type" role="heading" aria-level="3"><span class="secno">4.2.1 </span>RTCConfiguration Type</h4>
 
 
         <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 href="#idl-def-RTCIceServer" class="idlType"><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 href="#idl-def-RTCIceTransports" class="idlType"><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 href="#idl-def-RTCIdentityOption" class="idlType"><code>RTCIdentityOption</code></a></span>      <span class="idlMemberName"><a href="#widl-RTCConfiguration-requestIdentity">requestIdentity</a></span> = <span class="idlMemberValue">"ifconfigured"</span>;</span>
-};</span></pre><section id="dictionary-rtcconfiguration-members"><h5 aria-level="4" role="heading" id="h5_dictionary-rtcconfiguration-members"><span class="secno">4.2.1.1 </span>Dictionary <a class="idlType" href="#idl-def-RTCConfiguration"><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 href="#idl-def-RTCIceServer" class="idlType"><code>RTCIceServer</code></a>&gt;</span></dt><dd>
+<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></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 href="#idl-def-RTCIceTransports" class="idlType"><code>RTCIceTransports</code></a></span>, defaulting to <code>"all"</code></dt><dd>
+          </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 href="#idl-def-RTCIdentityOption" class="idlType"><code>RTCIdentityOption</code></a></span>, defaulting to <code>"ifconfigured"</code></dt><dd>
+          </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 href="#idl-def-RTCOfferAnswerOptions" class="idlType"><code>RTCOfferAnswerOptions</code></a></code> dictionary.</p>
+            the <code><a class="idlType" href="#idl-def-RTCOfferAnswerOptions"><code>RTCOfferAnswerOptions</code></a></code> dictionary.</p>
           </dd></dl></section>
       </section>
 
 
       <section id="rtciceserver-type">
-        <h4 aria-level="3" role="heading" id="h4_rtciceserver-type"><span class="secno">4.2.2 </span>RTCIceServer Type</h4>
+        <h4 id="h4_rtciceserver-type" role="heading" aria-level="3"><span class="secno">4.2.2 </span>RTCIceServer Type</h4>
 
 
         <pre class="idl"><span class="idlDictionary" id="idl-def-RTCIceServer">dictionary <span class="idlDictionaryID">RTCIceServer</span> {
 <span class="idlMember">    <span class="idlMemberType">(DOMString or sequence&lt;DOMString&gt;)</span> <span class="idlMemberName"><a href="#widl-RTCIceServer-urls">urls</a></span>;</span>
 <span class="idlMember">    <span class="idlMemberType">DOMString</span>                          <span class="idlMemberName"><a href="#widl-RTCIceServer-username">username</a></span>;</span>
 <span class="idlMember">    <span class="idlMemberType">DOMString</span>                          <span class="idlMemberName"><a href="#widl-RTCIceServer-credential">credential</a></span>;</span>
-};</span></pre><section id="dictionary-rtciceserver-members"><h5 aria-level="4" role="heading" id="h5_dictionary-rtciceserver-members"><span class="secno">4.2.2.1 </span>Dictionary <a class="idlType" href="#idl-def-RTCIceServer"><code>RTCIceServer</code></a> Members</h5><dl class="dictionary-members"><dt id="widl-RTCIceServer-credential"><code>credential</code> of type <span class="idlMemberType">DOMString</span></dt><dd>
-            <p>If this <code><a href="#idl-def-RTCIceServer" class="idlType"><code>RTCIceServer</code></a></code> object represents a
+};</span></pre><section id="dictionary-rtciceserver-members"><h5 id="h5_dictionary-rtciceserver-members" role="heading" aria-level="4"><span class="secno">4.2.2.1 </span>Dictionary <a href="#idl-def-RTCIceServer" class="idlType"><code>RTCIceServer</code></a> Members</h5><dl class="dictionary-members"><dt id="widl-RTCIceServer-credential"><code>credential</code> of type <span class="idlMemberType">DOMString</span></dt><dd>
+            <p>If this <code><a class="idlType" href="#idl-def-RTCIceServer"><code>RTCIceServer</code></a></code> object represents a
             TURN server, then this attribute specifies the credential to use
             with that TURN server.</p>
           </dd><dt id="widl-RTCIceServer-urls"><code>urls</code> of type <span class="idlMemberType">(DOMString or sequence&lt;DOMString&gt;)</span></dt><dd>
-            <p>STUN or TURN URI(s) as defined in [<cite><a class="bibref" href="#bib-STUN-URI">STUN-URI</a></cite>] and
-            [<cite><a class="bibref" href="#bib-TURN-URI">TURN-URI</a></cite>] or other URI types.</p>
+            <p>STUN or TURN URI(s) as defined in [<cite><a href="#bib-RFC7064" class="bibref">RFC7064</a></cite>] and
+            [<cite><a href="#bib-RFC7065" class="bibref">RFC7065</a></cite>] or other URI types.</p>
           </dd><dt id="widl-RTCIceServer-username"><code>username</code> of type <span class="idlMemberType">DOMString</span></dt><dd>
-            <p>If this <code><a href="#idl-def-RTCIceServer" class="idlType"><code>RTCIceServer</code></a></code> object represents a
+            <p>If this <code><a class="idlType" href="#idl-def-RTCIceServer"><code>RTCIceServer</code></a></code> object represents a
             TURN server, then this attribute specifies the username to use with
             that TURN server.</p>
           </dd></dl></section>
@@ -742,15 +744,15 @@
       </section>
 
       <section id="rtcicetransports-enum">
-        <h4 aria-level="3" role="heading" id="h4_rtcicetransports-enum"><span class="secno">4.2.3 </span>RTCIceTransports Enum</h4>
+        <h4 id="h4_rtcicetransports-enum" role="heading" aria-level="3"><span class="secno">4.2.3 </span>RTCIceTransports Enum</h4>
 
 
         <pre class="idl"><span class="idlEnum" id="idl-def-RTCIceTransports">enum <span class="idlEnumID">RTCIceTransports</span> {
     "<a href="#idl-def-RTCIceTransports.none" class="idlEnumItem">none</a>",
     "<a href="#idl-def-RTCIceTransports.relay" class="idlEnumItem">relay</a>",
     "<a href="#idl-def-RTCIceTransports.all" class="idlEnumItem">all</a>"
-};</span></pre><table class="simple"><tbody><tr><th colspan="2">Enumeration description</th></tr><tr><td><code id="idl-def-RTCIceTransports.none">none</code></td><td>The ICE engine <em class="rfc2119" title="MUST">MUST</em> not send or receive any packets at this
-          point.</td></tr><tr><td><code id="idl-def-RTCIceTransports.relay">relay</code></td><td>The ICE engine <em class="rfc2119" title="MUST">MUST</em> only use media relay candidates such as
+};</span></pre><table class="simple"><tbody><tr><th colspan="2">Enumeration description</th></tr><tr><td><code id="idl-def-RTCIceTransports.none">none</code></td><td>The ICE engine <em title="MUST" class="rfc2119">MUST</em> not send or receive any packets at this
+          point.</td></tr><tr><td><code id="idl-def-RTCIceTransports.relay">relay</code></td><td>The ICE engine <em title="MUST" class="rfc2119">MUST</em> only use media relay candidates such as
           candidates passing through a TURN server. This can be used to reduce
           leakage of IP addresses in certain use cases.</td></tr><tr><td><code id="idl-def-RTCIceTransports.all">all</code></td><td>The ICE engine may use any type of candidates when this value is
           specified.</td></tr></tbody></table>
@@ -758,43 +760,43 @@
       </section>
 
       <section id="offer-answer-options">
-        <h4 aria-level="3" role="heading" id="h4_offer-answer-options"><span class="secno">4.2.4 </span>Offer/Answer Options</h4>
+        <h4 id="h4_offer-answer-options" role="heading" aria-level="3"><span class="secno">4.2.4 </span>Offer/Answer Options</h4>
 
         <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 href="#idl-def-RTCIdentityOption" class="idlType"><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 aria-level="4" role="heading" id="h5_dictionary-rtcofferansweroptions-members"><span class="secno">4.2.4.1 </span>Dictionary <a class="idlType" href="#idl-def-RTCOfferAnswerOptions"><code>RTCOfferAnswerOptions</code></a> Members</h5><dl class="dictionary-members"><dt id="widl-RTCOfferAnswerOptions-requestIdentity"><code>requestIdentity</code> of type <span class="idlMemberType"><a href="#idl-def-RTCIdentityOption" class="idlType"><code>RTCIdentityOption</code></a></span>, defaulting to <code>"ifconfigured"</code></dt><dd>
+<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 href="#idl-def-RTCPeerConnection" class="idlType"><code>RTCPeerConnection</code></a></code> constructor. Note that as long as
+            <a class="idlType" href="#idl-def-RTCPeerConnection"><code>RTCPeerConnection</code></a></code> constructor. Note that as long as
             DTLS-SRTP is in 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 href="#idl-def-RTCOfferAnswerOptions" class="idlType"><code>RTCOfferAnswerOptions</code></a></span> {
+        <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> {
 <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 aria-level="4" role="heading" id="h5_dictionary-rtcofferoptions-members"><span class="secno">4.2.4.2 </span>Dictionary <a class="idlType" href="#idl-def-RTCOfferOptions"><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.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>
             <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
-            <code><a href="#dom-peerconnection-localdescription" class="internalDFN">localDescription</a></code> attribute's SDP). Applying the
+            <code><a class="internalDFN" href="#dom-peerconnection-localdescription">localDescription</a></code> attribute's SDP). Applying the
             generated description will restart ICE.</p>
 
 
             <p>When the value of this dictionary member is false, and the
-            <code><a href="#dom-peerconnection-localdescription" class="internalDFN">localDescription</a></code> attribute has valid ICE
+            <code><a class="internalDFN" href="#dom-peerconnection-localdescription">localDescription</a></code> attribute has valid ICE
             credentials, the generated description will have the same ICE
             credentials as the current value from the
-            <code><a href="#dom-peerconnection-localdescription" class="internalDFN">localDescription</a></code> attribute.</p>
+            <code><a class="internalDFN" href="#dom-peerconnection-localdescription">localDescription</a></code> attribute.</p>
           </dd><dt id="widl-RTCOfferOptions-offerToReceiveAudio"><code>offerToReceiveAudio</code> of type <span class="idlMemberType">long</span></dt><dd>
             <p>In some cases, an <code>RTCPeerConnection</code> may wish to
             receive audio but not send any audio. The
@@ -824,7 +826,7 @@
     "<a href="#idl-def-RTCIdentityOption.yes" class="idlEnumItem">yes</a>",
     "<a href="#idl-def-RTCIdentityOption.no" class="idlEnumItem">no</a>",
     "<a href="#idl-def-RTCIdentityOption.ifconfigured" class="idlEnumItem">ifconfigured</a>"
-};</span></pre><table class="simple"><tbody><tr><th colspan="2">Enumeration description</th></tr><tr><td><code id="idl-def-RTCIdentityOption.yes">yes</code></td><td>An identity <em class="rfc2119" title="MUST">MUST</em> be requested.</td></tr><tr><td><code id="idl-def-RTCIdentityOption.no">no</code></td><td>No identity is to be requested.</td></tr><tr><td><code id="idl-def-RTCIdentityOption.ifconfigured">ifconfigured</code></td><td>The value "ifconfigured" means that an identity will be requested
+};</span></pre><table class="simple"><tbody><tr><th colspan="2">Enumeration description</th></tr><tr><td><code id="idl-def-RTCIdentityOption.yes">yes</code></td><td>An identity <em title="MUST" class="rfc2119">MUST</em> be requested.</td></tr><tr><td><code id="idl-def-RTCIdentityOption.no">no</code></td><td>No identity is to be requested.</td></tr><tr><td><code id="idl-def-RTCIdentityOption.ifconfigured">ifconfigured</code></td><td>The value "ifconfigured" means that an identity will be requested
           if either the user has configured an identity in the browser or if the
           <code>setIdentityProvider()</code> call has been made in JavaScript.
           As this is the default value, an identity will be requested if and
@@ -834,19 +836,19 @@
 
 
     <section id="rtcpeerconnection-interface">
-      <h3 aria-level="2" role="heading" id="h3_rtcpeerconnection-interface"><span class="secno">4.3 </span>RTCPeerConnection Interface</h3>
+      <h3 id="h3_rtcpeerconnection-interface" role="heading" aria-level="2"><span class="secno">4.3 </span>RTCPeerConnection Interface</h3>
 
 
       <p>The general operation of the RTCPeerConnection is described in
-      [<cite><a class="bibref" href="#bib-RTCWEB-JSEP">RTCWEB-JSEP</a></cite>].</p>
+      [<cite><a href="#bib-RTCWEB-JSEP" class="bibref">RTCWEB-JSEP</a></cite>].</p>
 
 
       <section id="operation">
-        <h4 aria-level="3" role="heading" id="h4_operation"><span class="secno">4.3.1 </span>Operation</h4>
+        <h4 id="h4_operation" role="heading" aria-level="3"><span class="secno">4.3.1 </span>Operation</h4>
 
 
-        <p>Calling <code>new <a href="#idl-def-RTCPeerConnection" class="idlType"><code>RTCPeerConnection</code></a>(<var>configuration</var>
-        )</code> creates an <code><a href="#idl-def-RTCPeerConnection" class="idlType"><code>RTCPeerConnection</code></a></code> object.</p>
+        <p>Calling <code>new <a class="idlType" href="#idl-def-RTCPeerConnection"><code>RTCPeerConnection</code></a>(<var>configuration</var>
+        )</code> creates an <code><a class="idlType" href="#idl-def-RTCPeerConnection"><code>RTCPeerConnection</code></a></code> object.</p>
 
 
         <p>The <var>configuration</var> has the information to find and access
@@ -854,34 +856,40 @@
         each type and any TURN server also acts as a STUN server.</p>
 
 
-        <p>An <code><a href="#idl-def-RTCPeerConnection" class="idlType"><code>RTCPeerConnection</code></a></code> object has an associated
-        <dfn id="rtcpeerconnection-ice-agent">ICE agent</dfn> [<cite><a class="bibref" href="#bib-ICE">ICE</a></cite>],
+        <p>An <code><a class="idlType" href="#idl-def-RTCPeerConnection"><code>RTCPeerConnection</code></a></code> object has an associated
+        <dfn id="rtcpeerconnection-ice-agent">ICE agent</dfn> [<cite><a href="#bib-ICE" class="bibref">ICE</a></cite>],
         RTCPeerConnection signaling state, ICE gathering state, and ICE
         connection state. These are initialized when the object is created.</p>
 
 
-        <p>An <code><a href="#idl-def-RTCPeerConnection" class="idlType"><code>RTCPeerConnection</code></a></code> object has two associated
+        <p>An <code><a class="idlType" href="#idl-def-RTCPeerConnection"><code>RTCPeerConnection</code></a></code> object has two associated
         stream sets. A <dfn id="local-streams-set">local streams set</dfn>,
         representing streams that are currently sent, and a <dfn id="remote-streams-set">remote streams set</dfn>, representing streams
         that are currently received with this
-        <code><a href="#idl-def-RTCPeerConnection" class="idlType"><code>RTCPeerConnection</code></a></code> object. The stream sets are
+        <code><a class="idlType" href="#idl-def-RTCPeerConnection"><code>RTCPeerConnection</code></a></code> object. The stream sets are
         initialized to empty sets when the
-        <code><a href="#idl-def-RTCPeerConnection" class="idlType"><code>RTCPeerConnection</code></a></code> object is created.</p>
+        <code><a class="idlType" href="#idl-def-RTCPeerConnection"><code>RTCPeerConnection</code></a></code> object is created.</p>
 
 
         <p>When the <dfn id="dom-peerconnection"><code>RTCPeerConnection()</code></dfn> constructor
-        is invoked, the user agent <em class="rfc2119" title="MUST">MUST</em> run the following steps:</p>
+        is invoked, the user agent <em title="MUST" class="rfc2119">MUST</em> run the following steps:</p>
 
 
         <ol>
           <li>
-            <p>Validate the <code><a href="#idl-def-RTCConfiguration" class="idlType"><code>RTCConfiguration</code></a></code> argument by
+            <p>Validate the <code><a class="idlType" href="#idl-def-RTCConfiguration"><code>RTCConfiguration</code></a></code> argument by
             running the steps defined by the <a href="#dom-peerconnection-updateice">updateIce()</a> method.</p>
           </li>
 
 
           <li>
-            <p>Create an ICE Agent as defined in [<cite><a class="bibref" href="#bib-ICE">ICE</a></cite>] and let
+            <p>Let <var>connection</var> be a newly created <code>
+            <a class="idlType" href="#idl-def-RTCPeerConnection"><code>RTCPeerConnection</code></a></code> object.</p>
+          </li>
+
+
+          <li>
+            <p>Create an ICE Agent as defined in [<cite><a href="#bib-ICE" class="bibref">ICE</a></cite>] and let
             <var>connection</var>'s <code>RTCPeerConnection</code> ICE Agent be
             that ICE Agent and provide it the the <a href="#ice-servers-list">ICE servers list</a>. The ICE Agent will proceed
             with gathering as soon as the <a href="#ice-transports-setting">ICE
@@ -972,7 +980,7 @@
           <li>
             <p>If the <a href="#dom-peerconnection-ice-gathering-state"><code>RTCPeerConnection</code>
             ice gathering state</a> is <code>new</code> and the <a href="#ice-transports-setting">ICE transports setting</a> is not
-            set to <code>none</code>, the user agent <em class="rfc2119" title="MUST">MUST</em>
+            set to <code>none</code>, the user agent <em title="MUST" class="rfc2119">MUST</em>
             queue a task to start gathering ICE addresses and set the <a href="#dom-peerconnection-ice-gathering-state">ice gathering state</a>
             to <code>gathering</code>.</p>
           </li>

[3162 lines skipped]
--- /sources/public/2011/webrtc/editor/webrtc.js	2014/01/28 02:17:45	1.9
+++ /sources/public/2011/webrtc/editor/webrtc.js	2014/03/21 13:01:10	1.10
@@ -11,7 +11,7 @@
   // subtitle   :  "an excellent document",
 
   // if you wish the publication date to be other than today, set this
-  publishDate:  "2014-01-27",
+  // publishDate:  "2014-01-27",
 
   // new ability to override the copyright completely
   overrideCopyright:  "<p class='copyright'>Initial Author of this Specification was Ian Hickson, Google Inc., with the following copyright statement:<br /> &#169; Copyright 2004-2011 Apple Computer, Inc., Mozilla Foundation, and Opera Software ASA. You are granted a license to use, reproduce and create derivative works of this document.</p> <p class='copyright'>All subsequent changes since 26 July 2011 done by the W3C WebRTC Working Group are under the following <a href='http://www.w3.org/Consortium/Legal/ipr-notice#Copyright'>Copyright</a>:<br />&#169; 2011-2012 <a href='http://www.w3.org/'><acronym title='World Wide Web Consortium'>W3C</acronym></a><sup>&#174;</sup> (<a href='http://www.csail.mit.edu/'><acronym title='Massachusetts Institute of Technology'>MIT</acronym></a>, <a href='http://www.ercim.eu/'><acronym title='European Research Consortium for Informatics and Mathematics'>ERCIM</acronym></a>, <a href='http://www.keio.ac.jp/'>Keio</a>, <a href='http://ev.buaa.edu.cn/'>Beihang<\/a>), All Rights eserved. <a href='http://www.w3.org/Consortium/Legal/copyright-documents'>Document use</a>  rules apply.</p> <p class='copyright'>For the entire publication on the W3C site the <a href='http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer'>liability</a> and <a href='http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks'>trademark</a> rules apply.</p>",
@@ -22,7 +22,7 @@
   // copyrightStart: "2005",
 
   // if there is a previously published draft, uncomment this and set its YYYY-MM-DD
-  prevED: "http://dev.w3.org/2011/webrtc/editor/archives/20130830/webrtc.html",
+  prevED: "http://dev.w3.org/2011/webrtc/editor/archives/20140127/webrtc.html",
 
   // if there a publicly available Editor's Draft, this is the link
   edDraftURI: "http://dev.w3.org/2011/webrtc/editor/webrtc.html",

Received on Friday, 21 March 2014 13:01:19 UTC