diff --git a/tr/algorithms/presentation-api.json b/tr/algorithms/presentation-api.json index e7e44d60b1de..cb841e3d6014 100644 --- a/tr/algorithms/presentation-api.json +++ b/tr/algorithms/presentation-api.json @@ -49,7 +49,7 @@ { "name": "PresentationRequest/start()", "href": "https://www.w3.org/TR/presentation-api/#dom-presentationrequest-start", - "html": "When the start method is called, the\n user agent MUST run the following steps to select a\n presentation display.", + "html": "When the start method is called, the\n user agent MUST run the following steps to select a\n presentation display.", "rationale": "if", "steps": [ { @@ -68,7 +68,7 @@ "html": "Return P, but continue running these steps in\n parallel." }, { - "html": "If the user agent is not monitoring\n the list of available presentation displays, run the steps to\n monitor the list of available presentation displays in\n parallel." + "html": "If the user agent is not monitoring\n the list of available presentation displays, run the steps to\n monitor the list of available presentation displays in\n parallel." }, { "html": "Let presentationUrls be the presentation request\n URLs of presentationRequest." @@ -78,10 +78,10 @@ }, { "html": "If either of the following is true:\n Then run the following steps:", - "rationale": "reject", + "rationale": "queue", "steps": [ { - "html": "Reject P with a NotFoundError\n exception." + "html": "Queue a Presentation API task to reject\n P with a NotFoundError exception." }, { "html": "Abort all remaining steps." @@ -92,7 +92,7 @@ ] }, { - "html": "If the user denies permission to use a display, reject\n P with an NotAllowedError exception, and abort all\n remaining steps." + "html": "If the user denies permission to use a display,\n queue a Presentation API task to reject P with an\n NotAllowedError exception, and abort all remaining steps." }, { "html": "Otherwise, the user grants permission to use a\n display; let D be that display." @@ -106,8 +106,11 @@ "name": "starting a presentation from a default presentation request", "href": "https://www.w3.org/TR/presentation-api/#dfn-starting-a-presentation-from-a-default-presentation-request", "html": "When the user expresses an intent to start presentation of a\n document on a presentation display using the browser chrome (via a\n dedicated button, user gesture, or other signal), that user agent\n MUST run the following steps to start\n a presentation from a default presentation request. If no\n default presentation request is set on the document, these\n steps MUST not be run.", - "rationale": "let", + "rationale": "run", "steps": [ + { + "html": "Run the following steps in parallel." + }, { "html": "Let presentationUrls be the presentation request\n URLs of presentationRequest." }, @@ -122,9 +125,12 @@ { "name": "start a presentation connection", "href": "https://www.w3.org/TR/presentation-api/#dfn-start-a-presentation-connection", - "html": "When the user agent is to start a presentation\n connection, it MUST run the following steps:", - "rationale": "let", + "html": "When the user agent is to start a presentation\n connection, it MUST run the following steps:", + "rationale": "assert", "steps": [ + { + "html": "Assert: this is running in parallel." + }, { "html": "Let I be a new valid presentation identifier\n unique among all presentation identifiers for known\n presentation connections in the set of controlled\n presentations. To avoid fingerprinting, implementations SHOULD\n set the presentation identifier to a UUID generated\n by following forms 4.4 or 4.5 of [rfc4122]." }, @@ -147,10 +153,10 @@ "html": "Add S to the set of controlled presentations." }, { - "html": "If P is provided, resolve P with\n S." + "html": "If P is provided, queue a Presentation API\n task to resolve P with S." }, { - "html": "Queue a task to fire an event named connectionavailable, that uses the\n PresentationConnectionAvailableEvent interface, with the\n connection attribute\n initialized to S, at presentationRequest.\n The event must not bubble and must not be cancelable." + "html": "Queue a Presentation API task to fire an event named\n connectionavailable,\n that uses the PresentationConnectionAvailableEvent\n interface, with the connection attribute\n initialized to S, at presentationRequest.\n The event must not bubble and must not be cancelable." }, { "html": "Let U be the user agent connected to D." @@ -169,14 +175,14 @@ { "name": "PresentationRequest/reconnect()", "href": "https://www.w3.org/TR/presentation-api/#dom-presentationrequest-reconnect", - "html": "When the reconnect\n method is called, the user agent MUST run the following\n steps to reconnect to a presentation:", + "html": "When the reconnect\n method is called, the user agent MUST run the following\n steps to reconnect to a presentation:", "rationale": "let", "steps": [ { "html": "Let P be a new Promise." }, { - "html": "Return P, but continue running these steps in\n parallel." + "html": "Return P, but continue running these steps in\n parallel." }, { "html": "Search the set of controlled presentations for a\n PresentationConnection that meets the following criteria:\n " @@ -189,7 +195,7 @@ "html": "Let existingConnection be that\n PresentationConnection." }, { - "html": "Resolve P with\n existingConnection." + "html": "Queue a Presentation API task to resolve\n P with existingConnection." }, { "html": "If the presentation connection state of\n existingConnection is connecting or\n connected,\n then abort all remaining steps." @@ -231,10 +237,10 @@ "html": "Add newConnection to the set of controlled\n presentations." }, { - "html": "Resolve P with newConnection." + "html": "Queue a Presentation API task to resolve\n P with newConnection." }, { - "html": "Queue a task to fire an event named\n connectionavailable, that uses the\n PresentationConnectionAvailableEvent interface, with\n the connection\n attribute initialized to newConnection, at\n presentationRequest. The event must not bubble and\n must not be cancelable." + "html": "Queue a Presentation API task to fire an event\n named connectionavailable, that uses the\n PresentationConnectionAvailableEvent interface, with\n the connection\n attribute initialized to newConnection, at\n presentationRequest. The event must not bubble and\n must not be cancelable." }, { "html": "Establish a presentation connection with\n newConnection." @@ -245,7 +251,7 @@ ] }, { - "html": "Reject P with a NotFoundError exception." + "html": "Queue a Presentation API task to reject\n P with a NotFoundError exception." } ] }, @@ -253,23 +259,20 @@ "name": "PresentationRequest/getAvailability()", "href": "https://www.w3.org/TR/presentation-api/#dom-presentationrequest-getavailability", "html": "When the getAvailability method is called, the\n user agent MUST run the following steps:", - "rationale": "if", + "rationale": "let", "steps": [ { - "html": "If there is an unsettled Promise from a previous call to\n getAvailability on \n presentationRequest, return that Promise and abort\n these steps." + "html": "Let P be a new Promise constructed in the\n JavaScript realm of presentationRequest." }, { - "html": "Otherwise, let P be a new Promise constructed in\n the JavaScript realm of presentationRequest." - }, - { - "html": "Return P, but continue running these steps in\n parallel." + "html": "Return P, but continue running these steps in\n parallel." }, { "html": "If the user agent is unable to continuously monitor the list\n of available presentation displays in the background, but can\n later find presentation displays in order to start a connection,\n then:", - "rationale": "reject", + "rationale": "queue", "steps": [ { - "html": "Reject P with a NotSupportedError\n exception." + "html": "Queue a Presentation API task to reject\n P with a NotSupportedError exception." }, { "html": "Abort all the remaining steps." @@ -278,10 +281,10 @@ }, { "html": "If the presentation display availability for\n presentationRequest is not null, then:", - "rationale": "resolve", + "rationale": "queue", "steps": [ { - "html": "Resolve P with the request's\n presentation display availability." + "html": "Queue a Presentation API task to resolve\n P with the request's presentation display\n availability." }, { "html": "Abort all the remaining steps." @@ -289,7 +292,7 @@ ] }, { - "html": "Set the presentation display availability for\n presentationRequest to a newly created\n PresentationAvailability object constructed in the\n JavaScript realm of presentationRequest, and let\n A be that object." + "html": "Set the presentation display availability for\n presentationRequest to a newly created\n PresentationAvailability object constructed in the\n JavaScript realm of presentationRequest, and let\n A be that object." }, { "html": "Create a tuple (A,\n presentationUrls) and add it to the set of\n presentation availability objects." @@ -298,16 +301,19 @@ "html": "Run the algorithm to monitor the list of available\n presentation displays." }, { - "html": "Resolve P with A." + "html": "Queue a Presentation API task to resolve\n P with A." } ] }, { "name": "monitor the list of available presentation displays", "href": "https://www.w3.org/TR/presentation-api/#dfn-monitor-the-list-of-available-presentation-displays", - "html": "If the set of presentation availability objects is\n non-empty, or there is a pending request to select a presentation\n display, the user agent MUST monitor the list of\n available presentation displays by running the following\n steps:", - "rationale": "let", + "html": "If the set of presentation availability objects is\n non-empty, or there is a pending request to select a presentation\n display, the user agent MUST monitor the list of\n available presentation displays by running the following\n steps:", + "rationale": "assert", "steps": [ + { + "html": "Assert: this is running in parallel." + }, { "html": "Let availabilitySet be a shallow copy of the set\n of presentation availability objects." }, @@ -327,7 +333,7 @@ "html": "Let newDisplays be an empty list." }, { - "html": "If the user agent is unable to retrieve presentation\n displays (e.g., because the user has disabled this capability),\n then skip the following step." + "html": "If the user agent is unable to retrieve presentation\n displays (e.g., because the user has disabled this capability),\n then skip the following step." }, { "html": "Retrieve presentation displays (using an implementation\n specific mechanism) and set newDisplays to this list." @@ -367,7 +373,7 @@ "html": "If A's value property has not yet been\n initialized, then set A's value property to\n newAvailability and skip the following step." }, { - "html": "If previousAvailability is not equal to\n newAvailability, then queue a task to run the\n following steps:", + "html": "If previousAvailability is not equal to\n newAvailability, then queue a Presentation API\n task to run the following steps:", "rationale": "set", "steps": [ { @@ -383,7 +389,7 @@ ] }, { - "html": "When a presentation display availability object is eligible\n for garbage collection, the user agent SHOULD run the\n following steps:", + "html": "When a presentation display availability object is eligible\n for garbage collection, the user agent SHOULD run the\n following steps:", "rationale": "let", "steps": [ { @@ -400,9 +406,12 @@ { "name": "establish a presentation connection", "href": "https://www.w3.org/TR/presentation-api/#dfn-establish-a-presentation-connection", - "html": "When the user agent is to establish a presentation\n connection using a presentation connection, it MUST\n run the following steps:", - "rationale": "if", + "html": "When the user agent is to establish a presentation\n connection using a presentation connection, it MUST\n run the following steps:", + "rationale": "assert", "steps": [ + { + "html": "Assert: this is running in parallel." + }, { "html": "If the presentation connection state of\n presentationConnection is not connecting, then abort all\n remaining steps." }, @@ -410,7 +419,7 @@ "html": "Request connection of presentationConnection to the\n receiving browsing context. The presentation\n identifier of presentationConnection MUST be sent\n with this request." }, { - "html": "If connection completes successfully, queue a task to\n run the following steps:", + "html": "If connection completes successfully, queue a Presentation\n API task to run the following steps:", "rationale": "set", "steps": [ { @@ -429,7 +438,7 @@ { "name": "send-algorithm", "href": "https://www.w3.org/TR/presentation-api/#dfn-send-algorithm", - "html": "When the user agent is to send\n a message through a presentation connection, it MUST\n run the following steps:", + "html": "When the user agent is to send\n a message through a presentation connection, it MUST\n run the following steps:", "rationale": "if", "steps": [ { @@ -452,9 +461,12 @@ { "name": "receive-algorithm", "href": "https://www.w3.org/TR/presentation-api/#dfn-receive-algorithm", - "html": "When the user agent has received a transmission from the\n remote side consisting of presentation message data and\n presentation message type, it MUST run the following steps\n to receive a message through\n a PresentationConnection:", - "rationale": "if", + "html": "When the user agent has received a transmission from the\n remote side consisting of presentation message data and\n presentation message type, it MUST run the following steps\n to receive a message through\n a PresentationConnection:", + "rationale": "assert", "steps": [ + { + "html": "Assert: this is running in parallel." + }, { "html": "If the state property of\n presentationConnection is not connected, abort these steps." }, @@ -477,14 +489,14 @@ ] }, { - "html": "Queue a task to fire event at\n presentationConnection." + "html": "Queue a Presentation API task to fire\n event at presentationConnection." } ] }, { "name": "start closing the presentation connection", "href": "https://www.w3.org/TR/presentation-api/#dfn-start-closing-the-presentation-connection", - "html": "When the user agent is to start\n closing a presentation connection, it MUST do the following:", + "html": "When the user agent is to start\n closing a presentation connection, it MUST do the following:", "rationale": "if", "steps": [ { @@ -504,14 +516,14 @@ { "name": "close the presentation connection", "href": "https://www.w3.org/TR/presentation-api/#dfn-close-the-presentation-connection", - "html": "When the user agent is to close a presentation\n connection, it MUST do the following:", + "html": "When the user agent is to close a presentation\n connection, it MUST do the following:", "rationale": "if", "steps": [ { "html": "If there is a pending close the presentation connection\n task for presentationConnection, or a close the\n presentation connection task has already run for\n presentationConnection, then abort the remaining steps." }, { - "html": "Queue a task to run the following steps:", + "html": "Queue a Presentation API task to run the following steps:", "rationale": "if", "steps": [ { @@ -553,7 +565,7 @@ "rationale": "if", "steps": [ { - "html": "If the presentation identifier of known\n connection and connection are equal, and the\n presentation connection state of known\n connection is connected or\n connecting,\n then queue a task to run the following steps:", + "html": "If the presentation identifier of known\n connection and connection are equal, and the\n presentation connection state of known\n connection is connected or\n connecting,\n then queue a global task on the presentation task\n source given known connection's relevant\n global object to run the following steps:", "rationale": "set", "steps": [ { @@ -567,7 +579,7 @@ ] }, { - "html": "Send a termination request for the presentation to its\n receiving user agent using an implementation specific\n mechanism." + "html": "In parallel, send a termination request for the\n presentation to its receiving user agent using an\n implementation specific mechanism." } ] }, @@ -596,7 +608,7 @@ "html": "If there is a receiving browsing context for\n P, and it has a document for P that is not\n unloaded, unload a document corresponding to that\n browsing context, remove that browsing context from\n the user interface and discard it." }, { - "html": "For each connection in\n connectedControllers, queue a task to send a\n termination confirmation for P using an implementation\n specific mechanism to the controlling user agent that owns\n the destination browsing context for connection." + "html": "For each connection in\n connectedControllers, send a termination confirmation\n for P using an implementation specific mechanism to the\n controlling user agent that owns the destination browsing\n context for connection." } ] }, @@ -605,7 +617,7 @@ "rationale": "for", "steps": [ { - "html": "For each connection in the set of controlled\n presentations that was connected to P, queue a\n task to run the following steps:", + "html": "For each connection in the set of controlled\n presentations that was connected to P, queue a\n global task on the presentation task source given \n connection's relevant global object to run the\n following steps:", "rationale": "if", "steps": [ { @@ -631,7 +643,7 @@ "html": "If the presentation controllers promise is not\n null, return the presentation controllers promise\n and abort all remaining steps." }, { - "html": "Otherwise, let the presentation controllers promise be a\n new Promise constructed in the JavaScript realm of this\n PresentationReceiver object." + "html": "Otherwise, let the presentation controllers promise be a\n new Promise constructed in the JavaScript realm of this\n PresentationReceiver object." }, { "html": "Return the presentation controllers promise." @@ -644,7 +656,7 @@ { "name": "create a receiving browsing context", "href": "https://www.w3.org/TR/presentation-api/#dfn-create-a-receiving-browsing-context", - "html": "When the user agent is to create a receiving browsing\n context, it MUST run the following steps:", + "html": "When the user agent is to create a receiving browsing\n context, it MUST run the following steps:", "rationale": "create", "steps": [ { @@ -686,8 +698,11 @@ "name": "monitoring incoming presentation connections", "href": "https://www.w3.org/TR/presentation-api/#dfn-monitoring-incoming-presentation-connections", "html": "When the receiving user agent is to start monitoring\n incoming presentation connections in a receiving browsing\n context from controlling browsing contexts, it MUST\n listen to and accept incoming connection requests from a\n controlling browsing context using an implementation\n specific mechanism. When a new connection request is received from\n a controlling browsing context, the receiving user\n agent MUST run the following steps:", - "rationale": "if", + "rationale": "assert", "steps": [ + { + "html": "Assert: this is running in parallel." + }, { "html": "If presentationId and I are not equal,\n refuse the connection and abort all remaining steps." }, @@ -710,17 +725,17 @@ "html": "Add S to the set of presentation controllers." }, { - "html": "If the presentation controllers monitor is\n null, run the following steps in parallel.", + "html": "If the presentation controllers monitor is\n null, run the following steps in parallel.", "rationale": "let", "steps": [ { - "html": "Let the presentation controllers monitor be a new\n PresentationConnectionList constructed in the\n JavaScript realm of the PresentationReceiver\n object of the receiving browsing context." + "html": "Let the presentation controllers monitor be a new\n PresentationConnectionList constructed in the\n JavaScript realm of the PresentationReceiver\n object of the receiving browsing context." }, { "html": "Populate the presentation controllers monitor with\n the set of presentation controllers." }, { - "html": "If the presentation controllers promise is not\n null, resolve the presentation\n controllers promise with the presentation controllers\n monitor." + "html": "If the presentation controllers promise is not\n null, queue a Presentation API task to \n resolve the presentation controllers promise with\n the presentation controllers monitor." }, { "html": "Abort all remaining steps." @@ -728,14 +743,14 @@ ] }, { - "html": "Otherwise, run the following steps in parallel.", + "html": "Otherwise, run the following steps in parallel.", "rationale": "populate", "steps": [ { "html": "Populate the presentation controllers monitor with\n the set of presentation controllers." }, { - "html": "Queue a task to fire an event named\n connectionavailable, that\n uses the PresentationConnectionAvailableEvent\n interface, with the connection\n attribute initialized to S, at the presentation\n controllers monitor. The event must not bubble and must\n not be cancelable." + "html": "Queue a Presentation API task to fire an event\n named connectionavailable, that\n uses the PresentationConnectionAvailableEvent\n interface, with the connection\n attribute initialized to S, at the presentation\n controllers monitor. The event must not bubble and must\n not be cancelable." } ] } diff --git a/tr/algorithms/webrtc.json b/tr/algorithms/webrtc.json index d17fe3b12593..73ff9ac5b4c1 100644 --- a/tr/algorithms/webrtc.json +++ b/tr/algorithms/webrtc.json @@ -5,14 +5,14 @@ }, "algorithms": [ { - "html": "As one of the unloading document cleanup steps, run the\n following steps:", + "html": "As one of the unloading document cleanup steps, run the\n following steps:", "rationale": ".algorithm", "steps": [ { - "html": "

\n Let window be document's relevant global object.\n

" + "html": "

\n Let window be document's relevant global object.\n

" }, { - "html": "

\n For each RTCPeerConnection object connection\n whose relevant global object is window, close the connection with connection and the value true.\n

" + "html": "

\n For each RTCPeerConnection object connection\n whose relevant global object is window, close the connection with connection and the value true.\n

" } ] }, @@ -23,26 +23,26 @@ "rationale": ".algorithm", "steps": [ { - "html": "

\n If any of the steps enumerated below fails for a reason not\n specified here, throw an UnknownError\n with the message attribute set to an\n appropriate description.\n

" + "html": "

\n If any of the steps enumerated below fails for a reason not\n specified here, throw an UnknownError\n with the message attribute set to an\n appropriate description.\n

" }, { - "html": "

\n Let connection be a newly created\n RTCPeerConnection object.\n

" + "html": "

\n Let connection be a newly created\n RTCPeerConnection object.\n

" }, { - "html": "

\n Let connection have a\n [[DocumentOrigin]] internal slot, initialized to\n the relevant settings object's\n origin.\n

" + "html": "

\n Let connection have a\n [[DocumentOrigin]] internal slot, initialized to\n the relevant settings object's\n origin.\n

" }, { "html": "Let configuration be the\n method's first argument." }, { - "html": "If the certificates value in\n configuration is non-empty, run the following\n steps for each certificate in certificates:", + "html": "If the certificates value in\n configuration is non-empty, run the following\n steps for each certificate in certificates:", "rationale": "if", "steps": [ { - "html": "

\n If the value of\n certificate.expires is less\n than the current time, throw an\n InvalidAccessError.\n

" + "html": "

\n If the value of\n certificate.expires is less\n than the current time, throw an\n InvalidAccessError.\n

" }, { - "html": "

\n If certificate.[[Origin]] is not\n same origin with\n connection.[[DocumentOrigin]], throw an InvalidAccessError.\n

" + "html": "

\n If certificate.[[Origin]] is not\n same origin with\n connection.[[DocumentOrigin]], throw an InvalidAccessError.\n

" }, { "html": "

\n Store certificate.\n

" @@ -50,16 +50,13 @@ ] }, { - "html": "

\n Else, generate one or more new RTCCertificate instances\n with this RTCPeerConnection instance and store them. This\n MAY happen asynchronously and the value of\n certificates remains\n undefined for the subsequent steps. As noted in\n Section 4.3.2.3 of [RFC8826], WebRTC utilizes\n self-signed rather than Public Key Infrastructure (PKI)\n certificates, so that the expiration check is to ensure that\n keys are not used indefinitely and additional certificate\n checks are unnecessary.\n

" + "html": "

\n Else, generate one or more new RTCCertificate instances\n with this RTCPeerConnection instance and store them. This\n MAY happen asynchronously and the value of\n certificates remains\n undefined for the subsequent steps. As noted in\n Section 4.3.2.3 of [RFC8826], WebRTC utilizes\n self-signed rather than Public Key Infrastructure (PKI)\n certificates, so that the expiration check is to ensure that\n keys are not used indefinitely and additional certificate\n checks are unnecessary.\n

" }, { - "html": "

\n If\n configuration.iceServer is an array\n truncate it to the maximum number of supported elements.\n

" + "html": "

\n Initialize connection's ICE Agent.\n

" }, { - "html": "

\n Initialize connection's ICE Agent.\n

" - }, - { - "html": "

\n Let connection have a\n [[Configuration]]\n internal slot, initialized to null.\n Set the configuration specified by configuration.\n

" + "html": "

\n Let connection have a\n [[Configuration]]\n internal slot, initialized to null.\n Set the configuration specified by configuration.\n

" }, { "html": "

\n Let connection have an [[IsClosed]]\n internal slot, initialized to false.\n

" @@ -71,7 +68,10 @@ "html": "

\n Let connection have an\n [[SctpTransport]] internal slot, initialized to\n null.\n

" }, { - "html": "

\n Let connection have an [[Operations]]\n internal slot, representing an operations chain,\n initialized to an empty list.\n

" + "html": "

\n Let connection have a\n [[DataChannels]] internal slot, initialized to\n an empty ordered set.\n

" + }, + { + "html": "

\n Let connection have an [[Operations]]\n internal slot, representing an operations chain,\n initialized to an empty list.\n

" }, { "html": "

\n Let connection have a\n [[UpdateNegotiationNeededFlagOnEmptyChain]]\n internal slot, initialized to false.\n

" @@ -86,16 +86,16 @@ "html": "

\n Let connection have an\n [[EarlyCandidates]] internal slot, initialized to\n an empty list.\n

" }, { - "html": "

\n Set connection's signaling state to\n \"stable\".\n

" + "html": "

\n Let connection have an\n [[SignalingState]]\n internal slot, initialized to \"stable\".\n

" }, { - "html": "

\n Set connection's ICE connection state to\n \"new\".\n

" + "html": "

\n Let connection have an\n [[IceConnectionState]]\n internal slot, initialized to \"new\".\n

" }, { - "html": "

\n Set connection's ICE gathering state to\n \"new\".\n

" + "html": "

\n Let connection have an\n [[IceGatheringState]]\n internal slot, initialized to \"new\".\n

" }, { - "html": "

\n Set connection's connection state to\n \"new\".\n

" + "html": "

\n Let connection have an\n [[ConnectionState]]\n internal slot, initialized to \"new\".\n

" }, { "html": "

\n Let connection have a\n [[PendingLocalDescription]] internal slot,\n initialized to null.\n

" @@ -120,14 +120,14 @@ { "name": "chain", "href": "https://www.w3.org/TR/webrtc/#dfn-chain", - "html": "To chain an operation to an\n RTCPeerConnection object's operations chain, run the\n following steps:", + "html": "To chain an operation to an\n RTCPeerConnection object's operations chain, run the\n following steps:", "rationale": ".algorithm", "steps": [ { - "html": "

\n Let connection be the RTCPeerConnection\n object.\n

" + "html": "

\n Let connection be the RTCPeerConnection\n object.\n

" }, { - "html": "

\n If connection.[[IsClosed]] is\n true, return a promise rejected with a\n newly created InvalidStateError.\n

" + "html": "

\n If connection.[[IsClosed]] is\n true, return a promise rejected with a\n newly created InvalidStateError.\n

" }, { "html": "

\n Let operation be the operation to be chained.\n

" @@ -136,42 +136,42 @@ "html": "

\n Let p be a new promise.\n

" }, { - "html": "

\n Append operation to [[Operations]].\n

" + "html": "

\n Append operation to [[Operations]].\n

" }, { - "html": "

\n If the length of [[Operations]] is exactly 1, execute\n operation.\n

" + "html": "

\n If the length of [[Operations]] is exactly 1, execute\n operation.\n

" }, { - "html": "Upon fulfillment or rejection of the promise\n returned by the operation, run the following\n steps:", + "html": "Upon fulfillment or rejection of the promise\n returned by the operation, run the following\n steps:", "rationale": "if", "steps": [ { - "html": "

\n If connection.[[IsClosed]] is\n true, abort these steps.\n

" + "html": "

\n If connection.[[IsClosed]] is\n true, abort these steps.\n

" }, { - "html": "

\n If the promise returned by operation was fulfilled with a value, fulfill p\n with that value.\n

" + "html": "

\n If the promise returned by operation was fulfilled with a value, fulfill p\n with that value.\n

" }, { - "html": "

\n If the promise returned by operation was rejected with a value, reject p with\n that value.\n

" + "html": "

\n If the promise returned by operation was rejected with a value, reject p with\n that value.\n

" }, { - "html": "Upon fulfillment or rejection of\n p, execute the following steps:", + "html": "Upon fulfillment or rejection of\n p, execute the following steps:", "rationale": "if", "steps": [ { - "html": "

\n If connection.[[IsClosed]] is\n true, abort these steps.\n

" + "html": "

\n If connection.[[IsClosed]] is\n true, abort these steps.\n

" }, { - "html": "

\n Remove the first element of [[Operations]].\n

" + "html": "

\n Remove the first element of [[Operations]].\n

" }, { - "html": "

\n If [[Operations]] is non-empty, execute the\n operation represented by the first element of\n [[Operations]], and abort these steps.\n

" + "html": "

\n If [[Operations]] is non-empty, execute the\n operation represented by the first element of\n [[Operations]], and abort these steps.\n

" }, { - "html": "

\n If\n connection.[[UpdateNegotiationNeededFlagOnEmptyChain]]\n is false, abort these steps.\n

" + "html": "

\n If\n connection.[[UpdateNegotiationNeededFlagOnEmptyChain]]\n is false, abort these steps.\n

" }, { - "html": "

\n Set\n connection.[[UpdateNegotiationNeededFlagOnEmptyChain]]\n to false.\n

" + "html": "

\n Set\n connection.[[UpdateNegotiationNeededFlagOnEmptyChain]]\n to false.\n

" }, { "html": "

\n Update the negotiation-needed flag for\n connection.\n

" @@ -186,116 +186,90 @@ ] }, { - "html": "An RTCPeerConnection object has an aggregated connection state. Whenever the state of an RTCDtlsTransport changes\n or when the [[IsClosed]] slot turns true,\n the user agent MUST update the connection state by queueing a\n task that runs the following steps:", - "rationale": ".algorithm", - "steps": [ - { - "html": "

\n Let connection be this RTCPeerConnection\n object.\n

" - }, - { - "html": "

\n Let newState be the value of deriving a new state\n value as described by the RTCPeerConnectionState enum.\n

" - }, - { - "html": "

\n If connection's connection state is equal to\n newState, abort these steps.\n

" - }, - { - "html": "

\n Let connection's connection state be\n newState.\n

" - }, - { - "html": "

\n Fire an event named connectionstatechange at\n connection.\n

" - } - ] - }, - { - "name": "update the ICE gathering state", - "href": "https://www.w3.org/TR/webrtc/#update-ice-gathering-state", - "html": "To update the ICE gathering state of an RTCPeerConnection instance\n connection, the user agent MUST queue a task that runs\n the following steps:", + "html": "An RTCPeerConnection object has an aggregated\n [[ConnectionState]].\n Whenever the state of an RTCDtlsTransport changes,\n the user agent MUST queue a task that runs the following steps:", "rationale": ".algorithm", "steps": [ { - "html": "

\n If connection.[[IsClosed]] is\n true, abort these steps.\n

" + "html": "

\n Let connection be this RTCPeerConnection\n object associated with the RTCDtlsTransport object whose state changed.\n

" }, { - "html": "

\n Let newState be the value of deriving a new state\n value as described by the RTCIceGatheringState enum.\n

" + "html": "
Proposed Correction 35:Don't fire connectionstatechange on pc.close() (PR #2876)
\n

\n If connection.[[IsClosed]] is\n true, abort these steps.\n

\n
" }, { - "html": "

\n If connection's ICE gathering state is equal\n to newState, abort these steps.\n

" + "html": "

\n Let newState be the value of deriving a new state\n value as described by the RTCPeerConnectionState enum.\n

" }, { - "html": "

\n Set connection's ICE gathering state to\n newState.\n

" + "html": "

\n If connection.[[ConnectionState]] is equal to\n newState, abort these steps.\n

" }, { - "html": "

\n Fire an event named icegatheringstatechange at\n connection.\n

" + "html": "

\n Set connection.[[ConnectionState]] to\n newState.\n

" }, { - "html": "

\n If newState is\n \"complete\", fire an event\n named icecandidate using the\n RTCPeerConnectionIceEvent interface with the candidate\n attribute set to null at connection.\n

" + "html": "

\n Fire an event named connectionstatechange at\n connection.\n

" } ] }, { "name": "set the session description", "href": "https://www.w3.org/TR/webrtc/#set-description", - "html": "To set\n a session description description on an\n RTCPeerConnection object connection, given a\n remote boolean, run the following steps:", + "html": "To set\n a session description description on an\n RTCPeerConnection object connection, given a\n remote boolean, run the following steps:", "rationale": ".algorithm", "steps": [ { "html": "

\n Let p be a new promise.\n

" }, { - "html": "

\n If description.type is\n \"rollback\" and connection's signaling state is either \"stable\",\n \"have-local-pranswer\", or\n \"have-remote-pranswer\", then reject p with a newly created\n InvalidStateError and abort these steps.\n

" + "html": "

\n If description.type is\n \"rollback\" and\n connection.[[SignalingState]]\n is either \"stable\",\n \"have-local-pranswer\", or\n \"have-remote-pranswer\", then reject p with a newly created\n InvalidStateError and abort these steps.\n

" }, { - "html": "

\n Let jsepSetOfTransceivers be a shallow copy of\n connection's set of transceivers.\n

" + "html": "

\n Let jsepSetOfTransceivers be a shallow copy of\n connection's set of transceivers.\n

" }, { - "html": "In parallel, start the process to apply\n description as described in [RFC8829] (section 5.5. and section 5.6.),\n with these additional restrictions:", + "html": "In parallel, start the process to apply\n description as described in [RFC9429] (section 5.5. and section 5.6.),\n with these additional restrictions:", "rationale": "use", "steps": [ { - "html": "

\n Use jsepSetOfTransceivers as the source of\n truth with regard to what \"RtpTransceivers\" exist, and\n their [[JsepMid]] internal slot as their \"mid\n property\".\n

\n
Candidate Correction 5:Forbid ICE gathering and connectivity checks on administrative prohibited candidates (PR #2708)
" + "html": "

\n Use jsepSetOfTransceivers as the source of\n truth with regard to what \"RtpTransceivers\" exist, and\n their [[JsepMid]] internal slot as their \"mid\n property\".\n

" }, { - "html": "\n

If remote is false and this\n triggers the ICE candidate gathering process in [RFC8829] (section 5.9.), the ICE Agent\n MUST NOT gather candidates that would be\n administratively prohibited.\n

\n
" + "html": "
Candidate Correction 5:Forbid ICE gathering and connectivity checks on administrative prohibited candidates (PR #2708)
\n

If remote is false and this\n triggers the ICE candidate gathering process in [RFC9429] (section 5.9.), the ICE Agent\n MUST NOT gather candidates that would be\n administratively prohibited.\n

\n
" }, { - "html": "\n

If remote is true and this\n triggers ICE connectivity checks in [RFC8829] (section 5.10.), the\n ICE Agent MUST NOT attempt to connect to candidates\n that are administratively prohibited.\n

\n
" + "html": "
Candidate Correction 5:Forbid ICE gathering and connectivity checks on administrative prohibited candidates (PR #2708)
\n

If remote is true and this\n triggers ICE connectivity checks in [RFC9429] (section 5.10.), the\n ICE Agent MUST NOT attempt to connect to candidates\n that are administratively prohibited.\n

\n
" }, { "html": "

\n If remote is true, validate\n back-to-back offers as if answers were applied in\n between, by running the check for subsequent offers as if\n it were in stable state.\n

" }, { - "html": "
Candidate Correction 23:Don't fail sRD(offer) over rid mismatch, just answer with unicast. (PR #2794)
" - }, - { - "html": "\n

\n If applying description leads to modifying a\n transceiver transceiver, and\n transceiver.[[Sender]].[[SendEncodings]]\n is non-empty, and not equal to the encodings that would\n result from processing description, the\n process of applying description fails. This\n specification does not allow remotely initiated RID\n renegotiation.\n

\n
" + "html": "
Candidate Correction 37:Don't fail sRD(offer) over rid mismatch, just answer with unicast. (PR #2794)
" }, { - "html": "" + "html": "

\n If applying description leads to modifying a\n transceiver transceiver, and\n transceiver.[[Sender]].[[SendEncodings]]\n is non-empty, and not equal to the encodings that would\n result from processing description, the\n process of applying description fails. This\n specification does not allow remotely initiated RID\n renegotiation.\n

 " }, { "html": "If the process to apply description fails for\n any reason, then the user agent MUST queue a task that\n runs the following steps:", "rationale": "if", "steps": [ { - "html": "

\n If connection.[[IsClosed]] is\n true, then abort these steps.\n

" + "html": "

\n If connection.[[IsClosed]] is\n true, then abort these steps.\n

" }, { - "html": "

\n If\n description.type\n is invalid for the current signaling state of\n connection as described in\n \n [RFC8829] (section 5.5. and section 5.6.), then reject p with\n a newly created InvalidStateError\n and abort these steps.\n

" + "html": "

\n If\n description.type\n is invalid for the current\n connection.[[SignalingState]]\n as described in\n \n [RFC9429] (section 5.5. and section 5.6.), then reject p with\n a newly created InvalidStateError\n and abort these steps.\n

" }, { - "html": "

\n If the content of description is not valid\n SDP syntax, then reject p with an\n RTCError (with errorDetail set to\n \"sdp-syntax-error\" and the\n sdpLineNumber attribute set to the line\n number in the SDP where the syntax error was\n detected) and abort these steps.\n

" + "html": "

\n If the content of description is not valid\n SDP syntax, then reject p with an\n RTCError (with errorDetail set to\n \"sdp-syntax-error\" and the\n sdpLineNumber attribute set to the line\n number in the SDP where the syntax error was\n detected) and abort these steps.\n

" }, { - "html": "

\n If remote is true, the\n connection's RTCRtcpMuxPolicy is\n require and the description does\n not use RTCP mux, then reject p with\n a newly created\n InvalidAccessError and abort these steps.\n

" + "html": "

\n If remote is true, the\n connection's RTCRtcpMuxPolicy is\n require and the description does\n not use RTCP mux, then reject p with\n a newly created\n InvalidAccessError and abort these steps.\n

" }, { - "html": "

\n If the description attempted to renegotiate RIDs, as\n described above, then reject p with\n a newly created\n InvalidAccessError and abort these steps.\n

" + "html": "

\n If the description attempted to renegotiate RIDs, as\n described above, then reject p with\n a newly created\n InvalidAccessError and abort these steps.\n

" }, { - "html": "

\n If the content of description is invalid,\n then reject p with a newly created InvalidAccessError and abort\n these steps.\n

" + "html": "

\n If the content of description is invalid,\n then reject p with a newly created InvalidAccessError and abort\n these steps.\n

" }, { - "html": "

\n For all other errors, reject p with\n a newly created OperationError.\n

" + "html": "

\n For all other errors, reject p with\n a newly created OperationError.\n

" } ] }, @@ -304,51 +278,32 @@ "rationale": "if", "steps": [ { - "html": "

\n If connection.[[IsClosed]] is\n true, then abort these steps.\n

" + "html": "

\n If connection.[[IsClosed]] is\n true, then abort these steps.\n

" }, { - "html": "

\n If remote is true and\n description is of type\n \"offer\", then if any\n addTrack() methods on\n connection succeeded\n during the process to apply description,\n abort these steps and start the process over as if\n they had succeeded prior, to include the extra\n transceiver(s) in the process.\n

" + "html": "

\n If remote is true and\n description is of type\n \"offer\", then if any\n addTrack() methods on\n connection succeeded\n during the process to apply description,\n abort these steps and start the process over as if\n they had succeeded prior, to include the extra\n transceiver(s) in the process.\n

" }, { - "html": "

\n If any promises from setParameters\n methods on RTCRtpSenders associated with\n connection are not settled, abort these\n steps and start the process over.\n

" + "html": "

\n If any promises from setParameters\n methods on RTCRtpSenders associated with\n connection are not settled, abort these\n steps and start the process over.\n

" }, { + "html": "If description is of type\n \"offer\" and\n connection.[[SignalingState]]\n is \"stable\" then for each\n transceiver in connection's set of transceivers, run the following steps:", "rationale": "set", "steps": [ { - "html": "

\n Set\n transceiver.[[Sender]].[[LastStableStateSenderTransport]]\n to\n transceiver.[[Sender]].[[SenderTransport]].\n

" + "html": "

\n Set\n transceiver.[[Sender]].[[LastStableStateSenderTransport]]\n to\n transceiver.[[Sender]].[[SenderTransport]].\n

" }, { - "html": "

\n Set\n transceiver.[[Receiver]].[[LastStableStateReceiverTransport]]\n to\n transceiver.[[Receiver]].[[ReceiverTransport]].\n

" + "html": "
Candidate Correction 13:Rollback restores ridless encoding trounced by sRD(simulcastOffer). (PR #2797)
\n

\n If\n transceiver.[[Sender]].[[SendEncodings]].length\n is 1 and the lone encoding contains no rid member,\n then set\n transceiver.[[Sender]].[[LastStableRidlessSendEncodings]]\n to\n transceiver.[[Sender]].[[SendEncodings]];\n Otherwise, set\n transceiver.[[Sender]].[[LastStableRidlessSendEncodings]]\n to null.\n

\n
" }, { - "html": "

\n Set\n transceiver.[[Receiver]].[[LastStableStateAssociatedRemoteMediaStreams]]\n to\n transceiver.[[Receiver]].[[AssociatedRemoteMediaStreams]].\n

" + "html": "

\n Set\n transceiver.[[Receiver]].[[LastStableStateReceiverTransport]]\n to\n transceiver.[[Receiver]].[[ReceiverTransport]].\n

" }, { - "html": "

\n Set\n transceiver.[[Receiver]].[[LastStableStateReceiveCodecs]]\n to\n transceiver.[[Receiver]].[[ReceiveCodecs]].\n

" - } - ], - "html": "

\n If description is of type\n \"offer\" and the signaling state\n of connection is\n \"stable\" then for each\n transceiver in connection's set of transceivers, run the following steps:\n

\n
Candidate Addition 24:Rollback restores ridless encoding trounced by sRD(simulcastOffer). (PR #2797)
", - "additional": [ + "html": "

\n Set\n transceiver.[[Receiver]].[[LastStableStateAssociatedRemoteMediaStreams]]\n to\n transceiver.[[Receiver]].[[AssociatedRemoteMediaStreams]].\n

" + }, { - "rationale": "set", - "steps": [ - { - "html": "

\n Set\n transceiver.[[Sender]].[[LastStableStateSenderTransport]]\n to\n transceiver.[[Sender]].[[SenderTransport]].\n

" - }, - { - "html": "

\n If\n transceiver.[[Sender]].[[SendEncodings]].length\n is 1 and the lone encoding contains no rid member,\n then set\n transceiver.[[Sender]].[[LastStableRidlessSendEncodings]]\n to\n transceiver.[[Sender]].[[SendEncodings]];\n Otherwise, set\n transceiver.[[Sender]].[[LastStableRidlessSendEncodings]]\n to null.\n

" - }, - { - "html": "

\n Set\n transceiver.[[Receiver]].[[LastStableStateReceiverTransport]]\n to\n transceiver.[[Receiver]].[[ReceiverTransport]].\n

" - }, - { - "html": "

\n Set\n transceiver.[[Receiver]].[[LastStableStateAssociatedRemoteMediaStreams]]\n to\n transceiver.[[Receiver]].[[AssociatedRemoteMediaStreams]].\n

" - }, - { - "html": "

\n Set\n transceiver.[[Receiver]].[[LastStableStateReceiveCodecs]]\n to\n transceiver.[[Receiver]].[[ReceiveCodecs]].\n

" - } - ] + "html": "

\n Set\n transceiver.[[Receiver]].[[LastStableStateReceiveCodecs]]\n to\n transceiver.[[Receiver]].[[ReceiveCodecs]].\n

" } ] }, @@ -357,13 +312,13 @@ "rationale": "if", "steps": [ { - "html": "

\n If description is of type\n \"offer\", set\n connection.[[PendingLocalDescription]]\n to a new RTCSessionDescription object\n constructed from description, set\n connection's signaling state to\n \"have-local-offer\", and release early candidates.\n

" + "html": "

\n If description is of type\n \"offer\", set\n connection.[[PendingLocalDescription]]\n to a new RTCSessionDescription object\n constructed from description, set\n connection.[[SignalingState]] to\n \"have-local-offer\", and release early candidates.\n

" }, { - "html": "

\n If description is of type\n \"answer\", then this completes an\n offer answer negotiation. Set\n connection.[[CurrentLocalDescription]]\n to a new RTCSessionDescription object\n constructed from description, and set\n connection.[[CurrentRemoteDescription]]\n to\n connection.[[PendingRemoteDescription]].\n Set both\n connection.[[PendingRemoteDescription]]\n and\n connection.[[PendingLocalDescription]]\n to null. Set both\n connection.[[LastCreatedOffer]]\n and\n connection.[[LastCreatedAnswer]]\n to \"\", set connection's\n signaling state to\n \"stable\", and release early candidates. Finally, if none of the ICE\n credentials in\n connection.[[LocalIceCredentialsToReplace]]\n are present in description, then set\n connection.[[LocalIceCredentialsToReplace]]\n to an empty set.\n

" + "html": "

\n If description is of type\n \"answer\", then this completes an\n offer answer negotiation. Set\n connection.[[CurrentLocalDescription]]\n to a new RTCSessionDescription object\n constructed from description, and set\n connection.[[CurrentRemoteDescription]]\n to\n connection.[[PendingRemoteDescription]].\n Set both\n connection.[[PendingRemoteDescription]]\n and\n connection.[[PendingLocalDescription]]\n to null. Set both\n connection.[[LastCreatedOffer]]\n and\n connection.[[LastCreatedAnswer]]\n to \"\", set\n connection.[[SignalingState]] to\n \"stable\", and release early candidates. Finally, if none of the ICE\n credentials in\n connection.[[LocalIceCredentialsToReplace]]\n are present in description, then set\n connection.[[LocalIceCredentialsToReplace]]\n to an empty set.\n

" }, { - "html": "

\n If description is of type\n \"pranswer\", then set\n connection.[[PendingLocalDescription]]\n to a new RTCSessionDescription object\n constructed from description, set\n connection's signaling state to\n \"have-local-pranswer\", and\n release early candidates.\n

" + "html": "

\n If description is of type\n \"pranswer\", then set\n connection.[[PendingLocalDescription]]\n to a new RTCSessionDescription object\n constructed from description, set\n connection.[[SignalingState]] to\n \"have-local-pranswer\", and\n release early candidates.\n

" } ] }, @@ -372,531 +327,348 @@ "rationale": "if", "steps": [ { - "html": "

\n If description is of type\n \"offer\", set\n connection.[[PendingRemoteDescription]]\n attribute to a new RTCSessionDescription\n object constructed from description,\n and set connection's signaling state to\n \"have-remote-offer\".\n

" + "html": "

\n If description is of type\n \"offer\", set\n connection.[[PendingRemoteDescription]]\n attribute to a new RTCSessionDescription\n object constructed from description,\n and set\n connection.[[SignalingState]]\n to\n \"have-remote-offer\".\n

" }, { - "html": "

\n If description is of type\n \"answer\", then this completes an\n offer answer negotiation. Set\n connection.[[CurrentRemoteDescription]]\n to a new RTCSessionDescription object\n constructed from description, and set\n connection.[[CurrentLocalDescription]]\n to\n connection.[[PendingLocalDescription]].\n Set both\n connection.[[PendingRemoteDescription]]\n and\n connection.[[PendingLocalDescription]]\n to null. Set both\n connection.[[LastCreatedOffer]]\n and\n connection.[[LastCreatedAnswer]]\n to \"\", and set\n connection's signaling state to\n \"stable\". Finally, if none\n of the ICE credentials in\n connection.[[LocalIceCredentialsToReplace]]\n are present in the newly set\n connection.[[CurrentLocalDescription]],\n then set\n connection.[[LocalIceCredentialsToReplace]]\n to an empty set.\n

" + "html": "

\n If description is of type\n \"answer\", then this completes an\n offer answer negotiation. Set\n connection.[[CurrentRemoteDescription]]\n to a new RTCSessionDescription object\n constructed from description, and set\n connection.[[CurrentLocalDescription]]\n to\n connection.[[PendingLocalDescription]].\n Set both\n connection.[[PendingRemoteDescription]]\n and\n connection.[[PendingLocalDescription]]\n to null. Set both\n connection.[[LastCreatedOffer]]\n and\n connection.[[LastCreatedAnswer]]\n to \"\", and set\n connection.[[SignalingState]] to\n \"stable\". Finally, if none\n of the ICE credentials in\n connection.[[LocalIceCredentialsToReplace]]\n are present in the newly set\n connection.[[CurrentLocalDescription]],\n then set\n connection.[[LocalIceCredentialsToReplace]]\n to an empty set.\n

" }, { - "html": "

\n If description is of type\n \"pranswer\", then set\n connection.[[PendingRemoteDescription]]\n to a new RTCSessionDescription object\n constructed from description and set\n connection's signaling state to\n \"have-remote-pranswer\".\n

" + "html": "

\n If description is of type\n \"pranswer\", then set\n connection.[[PendingRemoteDescription]]\n to a new RTCSessionDescription object\n constructed from description and set\n connection.[[SignalingState]] to\n \"have-remote-pranswer\".\n

" } ] }, { - "html": "

\n If description is of type\n \"answer\", and it initiates the closure\n of an existing SCTP association, as defined in\n [RFC8841], Sections 10.3 and 10.4, set the value\n of connection.[[SctpTransport]] to\n null.\n

" + "html": "

\n If description is of type\n \"answer\", and it initiates the closure\n of an existing SCTP association, as defined in\n [RFC8841], Sections 10.3 and 10.4, set the value\n of connection.[[SctpTransport]] to\n null.\n

" }, { "html": "

\n Let trackEventInits,\n muteTracks, addList,\n removeList and errorList be\n empty lists.\n

" }, { - "html": "If description is of type\n \"answer\" or \"pranswer\",\n then run the following steps:", + "html": "If description is of type\n \"answer\" or \"pranswer\",\n then run the following steps:", "rationale": "if", "steps": [ { - "html": "

\n If description initiates the\n establishment of a new SCTP association, as\n defined in [RFC8841], Sections 10.3 and 10.4,\n create an RTCSctpTransport with an initial\n state of \"connecting\"\n and assign the result to the\n [[SctpTransport]] slot. Otherwise, if an\n SCTP association is established, but the\n max-message-size SDP\n attribute is updated, update the data max message size of\n connection.[[SctpTransport]].\n

" + "html": "

\n If description initiates the\n establishment of a new SCTP association, as\n defined in [RFC8841], Sections 10.3 and 10.4,\n create an RTCSctpTransport with an initial\n state of \"connecting\"\n and assign the result to the\n [[SctpTransport]] slot. Otherwise, if an\n SCTP association is established, but the\n max-message-size SDP\n attribute is updated, update the data max message size of\n connection.[[SctpTransport]].\n

" }, { - "html": "If description negotiates the DTLS\n role of the SCTP transport, then for each\n RTCDataChannel, channel, with a\n null id, run the\n following step:", + "html": "If description negotiates the DTLS\n role of the SCTP transport, then for each\n RTCDataChannel, channel, with a\n null id, run the\n following step:", "rationale": "give", "steps": [ { - "html": "Give channel a new ID generated\n according to [RFC8832]. If no\n available ID could be generated, set\n channel.[[ReadyState]] to\n \"closed\", and add\n channnel to errorList." + "html": "Give channel a new ID generated\n according to [RFC8832]. If no\n available ID could be generated, set\n channel.[[ReadyState]] to\n \"closed\", and add\n channnel to errorList." } ] } ] }, { - "html": "If description is not of type\n \"rollback\", then run the following\n steps:", + "html": "If description is not of type\n \"rollback\", then run the following\n steps:", "rationale": "if", "steps": [ { + "html": "If remote is false, then\n run the following steps for each media description in description:", "rationale": "if", "steps": [ { - "html": "If the media description was not yet associated with an RTCRtpTransceiver\n object then run the following steps:", + "html": "If the media description was not yet associated with an RTCRtpTransceiver\n object then run the following steps:", "rationale": "let", "steps": [ { - "html": "

\n Let transceiver be the\n RTCRtpTransceiver used to create the\n media description.\n

" + "html": "

\n Let transceiver be the\n RTCRtpTransceiver used to create the\n media description.\n

" }, { - "html": "

\n Set\n transceiver.[[Mid]] to\n transceiver.[[JsepMid]].\n

" + "html": "

\n Set\n transceiver.[[Mid]] to\n transceiver.[[JsepMid]].\n

" }, { - "html": "

\n If\n transceiver.[[Stopped]]\n is true, abort these sub\n steps.\n

" + "html": "

\n If\n transceiver.[[Stopped]]\n is true, abort these sub\n steps.\n

" }, { - "html": "

\n If the media description is\n indicated as using an existing media\n transport according to [RFC8843],\n let transport be the\n RTCDtlsTransport object representing\n the RTP/RTCP component of that transport.\n

" + "html": "

\n If the media description is\n indicated as using an existing media\n media transport according to [RFC8843],\n let transport be the\n RTCDtlsTransport object representing\n the RTP/RTCP component of that transport.\n

" }, { - "html": "

\n Otherwise, let transport be a\n newly created RTCDtlsTransport object\n with a new underlying\n RTCIceTransport.\n

" + "html": "

\n Otherwise, let transport be a\n newly created RTCDtlsTransport object\n with a new underlying\n RTCIceTransport.\n

" }, { - "html": "

\n Set\n transceiver.[[Sender]].[[SenderTransport]]\n to transport.\n

" + "html": "

\n Set\n transceiver.[[Sender]].[[SenderTransport]]\n to transport.\n

" }, { - "html": "

\n Set\n transceiver.[[Receiver]].[[ReceiverTransport]]\n to transport.\n

" + "html": "

\n Set\n transceiver.[[Receiver]].[[ReceiverTransport]]\n to transport.\n

" } ] }, { - "html": "

\n Let transceiver be the\n RTCRtpTransceiver associated with\n the media description.\n

" + "html": "

\n Let transceiver be the\n RTCRtpTransceiver associated with\n the media description.\n

" }, { - "html": "

\n If transceiver.[[Stopped]]\n is true, abort these sub steps.\n

" + "html": "

\n If transceiver.[[Stopped]]\n is true, abort these sub steps.\n

" }, { - "html": "

\n Let direction be an\n RTCRtpTransceiverDirection value\n representing the direction from the media\n description.\n

" + "html": "

\n Let direction be an\n RTCRtpTransceiverDirection value\n representing the direction from the media\n media description.\n

" }, { - "html": "

\n If direction is\n \"sendrecv\" or\n \"recvonly\",\n set\n transceiver.[[Receptive]]\n to true, otherwise set it to\n false.\n

" + "html": "

\n If direction is\n \"sendrecv\" or\n \"recvonly\",\n set\n transceiver.[[Receptive]]\n to true, otherwise set it to\n false.\n

" }, { - "html": "

\n Set\n transceiver.[[Receiver]].[[ReceiveCodecs]]\n to the codecs that description\n negotiates for receiving and which the user\n agent is currently prepared to receive.\n

" + "html": "

\n Set\n transceiver.[[Receiver]].[[ReceiveCodecs]]\n to the codecs that description\n negotiates for receiving and which the user\n agent is currently prepared to receive.\n

" }, { - "html": "If description is of type\n \"answer\" or\n \"pranswer\", then run the\n following steps:", - "rationale": "set", - "steps": [ - { - "html": "

\n Set\n transceiver.[[Sender]].[[SendCodecs]]\n to the codecs that description\n negotiates for sending and which the user\n agent is currently capable of sending,\n and set\n transceiver.[[Sender]].[[LastReturnedParameters]]\n to null.\n

" - }, - { - "html": "If direction is\n \"sendonly\"\n or\n \"inactive\",\n and\n transceiver.[[FiredDirection]]\n is either\n \"sendrecv\"\n or\n \"recvonly\",\n then run the following steps:", - "rationale": "set", - "steps": [ - { - "html": "

\n Set the associated remote streams given\n transceiver.[[Receiver]],\n an empty list, another empty list,\n and removeList.\n

" - }, - { - "html": "

\n process the removal of a remote\n track for the media description, given transceiver and\n muteTracks.\n

" - } - ] - }, - { - "html": "

\n Set\n transceiver.[[CurrentDirection]]\n and\n transceiver.[[FiredDirection]]\n to direction.\n

" - } - ] - } - ], - "html": "

\n If remote is false, then\n run the following steps for each media description in description:\n

\n
Candidate Correction 26:Prune createAnswer()'s encodings and SendEncodings in sLD(answer). (PR #2801)
", - "additional": [ - { + "html": "If description is of type\n \"answer\" or\n \"pranswer\", then run the\n following steps:", "rationale": "if", "steps": [ { - "html": "If the media description was not yet associated with an RTCRtpTransceiver\n object then run the following steps:", - "rationale": "let", + "html": "If transceiver.\n [[Sender]].[[SendEncodings]]\n .length is greater than 1, then\n run the following steps:", + "rationale": "if", "steps": [ { - "html": "

\n Let transceiver be the\n RTCRtpTransceiver used to create the\n media description.\n

" - }, - { - "html": "

\n Set\n transceiver.[[Mid]] to\n transceiver.[[JsepMid]].\n

" - }, - { - "html": "

\n If\n transceiver.[[Stopped]]\n is true, abort these sub\n steps.\n

" - }, - { - "html": "

\n If the media description is\n indicated as using an existing media transport according to [RFC8843],\n let transport be the\n RTCDtlsTransport object representing\n the RTP/RTCP component of that transport.\n

" - }, - { - "html": "

\n Otherwise, let transport be a\n newly created RTCDtlsTransport object\n with a new underlying\n RTCIceTransport.\n

" - }, - { - "html": "

\n Set\n transceiver.[[Sender]].[[SenderTransport]]\n to transport.\n

" + "html": "

\n If description is missing\n all of the previously negotiated layers,\n then remove all dictionaries in\n transceiver.[[Sender]].[[SendEncodings]]\n except the first one, and skip the next\n step.\n

" }, { - "html": "

\n Set\n transceiver.[[Receiver]].[[ReceiverTransport]]\n to transport.\n

" + "html": "

\n If description is missing any of\n the previously negotiated layers, then\n remove the dictionaries that correspond to\n the missing layers from\n transceiver.[[Sender]].[[SendEncodings]].\n

" } ] }, { - "html": "

\n Let transceiver be the\n RTCRtpTransceiver associated with\n the media description.\n

" - }, - { - "html": "

\n If transceiver.[[Stopped]]\n is true, abort these sub steps.\n

" - }, - { - "html": "

\n Let direction be an\n RTCRtpTransceiverDirection value\n representing the direction from the media description.\n

" - }, - { - "html": "

\n If direction is\n \"sendrecv\" or\n \"recvonly\",\n set\n transceiver.[[Receptive]]\n to true, otherwise set it to\n false.\n

" - }, - { - "html": "

\n Set\n transceiver.[[Receiver]].[[ReceiveCodecs]]\n to the codecs that description\n negotiates for receiving and which the user\n agent is currently prepared to receive.\n

" + "html": "

\n

\n Set\n transceiver.[[Sender]].[[SendCodecs]]\n to the codecs that description\n negotiates for sending and which the user\n agent is currently capable of sending,\n and set\n transceiver.[[Sender]].[[LastReturnedParameters]]\n to null.\n

" }, { - "html": "If description is of type\n \"answer\" or\n \"pranswer\", then run the\n following steps:", - "rationale": "if", + "html": "If direction is\n \"sendonly\"\n or\n \"inactive\",\n and\n transceiver.[[FiredDirection]]\n is either\n \"sendrecv\"\n or\n \"recvonly\",\n then run the following steps:", + "rationale": "set", "steps": [ { - "html": "If transceiver.\n [[Sender]].[[SendEncodings]]\n .length is greater than 1, then\n run the following steps:", - "rationale": "if", - "steps": [ - { - "html": "

\n If description is missing\n all of the previously negotiated layers,\n then remove all dictionaries in\n transceiver.[[Sender]].[[SendEncodings]]\n except the first one, and skip the next\n step.\n

" - }, - { - "html": "

\n If description is missing any of\n the previously negototiated layers, then\n remove the dictionaries that correspond to\n the missing layers from\n transceiver.[[Sender]].[[SendEncodings]].\n

" - } - ] - }, - { - "html": "

\n Set\n transceiver.[[Sender]].[[SendCodecs]]\n to the codecs that description\n negotiates for sending and which the user\n agent is currently capable of sending,\n and set\n transceiver.[[Sender]].[[LastReturnedParameters]]\n to null.\n

" - }, - { - "html": "If direction is\n \"sendonly\"\n or\n \"inactive\",\n and\n transceiver.[[FiredDirection]]\n is either\n \"sendrecv\"\n or\n \"recvonly\",\n then run the following steps:", - "rationale": "set", - "steps": [ - { - "html": "

\n Set the associated remote streams given\n transceiver.[[Receiver]],\n an empty list, another empty list,\n and removeList.\n

" - }, - { - "html": "

\n process the removal of a remote track for the media description, given transceiver and\n muteTracks.\n

" - } - ] + "html": "

\n Set the associated remote streams given\n transceiver.[[Receiver]],\n an empty list, another empty list,\n and removeList.\n

" }, { - "html": "

\n Set\n transceiver.[[CurrentDirection]]\n and\n transceiver.[[FiredDirection]]\n to direction.\n

" + "html": "

\n process the removal of a remote\n remote track for the media description, given transceiver and\n muteTracks.\n

" } ] + }, + { + "html": "

\n Set\n transceiver.[[CurrentDirection]]\n and\n transceiver.[[FiredDirection]]\n to direction.\n

" } ] } ] }, { + "html": "Otherwise, (if remote is\n true) run the following steps for\n each media description in\n description:", "rationale": "if", "steps": [ { - "html": "

\n If the description is of type\n \"offer\" and contains a request\n to receive simulcast, use the order of the\n rid values specified in the simulcast\n attribute to create an\n RTCRtpEncodingParameters dictionary for\n each of the simulcast layers, populating the\n rid member\n according to the corresponding rid value, and\n let sendEncodings be the list\n containing the created dictionaries.\n Otherwise, let sendEncodings be an\n empty list.\n

" + "html": "

\n If the description is of type\n \"offer\" and the\n media description contains a request\n to receive simulcast, use the order of the\n rid values specified in the simulcast\n attribute to create an\n RTCRtpEncodingParameters dictionary for\n each of the simulcast layers, populating the\n rid member\n according to the corresponding rid valuevalue\n (using only the first value if\n comma-separated alternatives exist), and\n let sendEncodingsproposedSendEncodings be the list\n the\n list containing the created dictionaries.\n Otherwise, let sendEncodings proposedSendEncodings\n be an\n an empty list.\n

" + }, + { + "html": "

\n For each encoding, encoding, in\n proposedSendEncodings in reverse\n order, if encoding's\n rid matches that of\n another encoding in\n proposedSendEncodings, remove\n encoding\n from proposedSendEncodings.\n

" }, { - "html": "Let supportedEncodings be the\n maximum number of encodings that the\n implementation can support. If the length of\n sendEncodings is greater than\n supportedEncodings, truncate\n sendEncodings so that its length is\n supportedEncodings." + "html": "Let supportedEncodings be the\n maximum number of encodings that the\n implementation can support. If the length of\n sendEncodingsproposedSendEncodings is greater than\n supportedEncodings, truncate\n sendEncodingsproposedSendEncodings so that its length is\n supportedEncodings." }, { - "html": "If sendEncodings is non-empty, set\n each encoding's\n scaleResolutionDownBy\n to 2^(length of sendEncodings -\n encoding index - 1)." + "html": "If sendEncodingsproposedSendEncodings is non-empty, set\n \n set each encoding's\n scaleResolutionDownBy\n to 2^(length of sendEncodingsproposedSendEncodings -\n encoding index - 1)." }, { - "html": "

\n As described by [RFC8829] (section 5.10.),\n attempt to find an existing\n RTCRtpTransceiver object,\n transceiver, to represent the media description.\n

" + "html": "

\n As described by [RFC8829RFC9429] (section 5.10.),\n attempt to find an existing\n RTCRtpTransceiver object,\n transceiver, to represent the media description.\n

" }, { - "html": "

\n If a suitable transceiver was found\n (transceiver is set) and\n sendEncodings is non-empty, set\n transceiver.[[Sender]].[[SendEncodings]]\n to sendEncodings, and set\n transceiver.[[Sender]].[[LastReturnedParameters]]\n to null.\n

" + "rationale": "if", + "steps": [ + { + "html": "

\n If the length of\n transceiver.[[Sender]].[[SendEncodings]]\n is 1, and the lone encoding\n contains no\n rid member, set\n transceiver.[[Sender]].[[SendEncodings]]\n to proposedSendEncodings, and set\n transceiver.[[Sender]].[[LastReturnedParameters]]\n to null.\n

" + } + ], + "html": "

\n If a suitable transceiver was found\n (transceiver is set), and\n sendEncodingsproposedSendEncodings is non-empty, set\n transceiver.[[Sender]].[[SendEncodings]]\n to sendEncodings, and set\n transceiver.[[Sender]].[[LastReturnedParameters]]\n to null.run the following steps:\n

" }, { "html": "If no suitable transceiver was found\n (transceiver is unset), run the\n following steps:", "rationale": "create", "steps": [ { - "html": "

\n Create an RTCRtpSender,\n sender, from the media\n description using\n sendEncodings.\n

" + "html": "

\n Create an RTCRtpSender,\n sender, from the media\n media description using\n sendEncodingsproposedSendEncodings.\n

" }, { - "html": "

\n Create an RTCRtpReceiver,\n receiver, from the media\n description.\n

" + "html": "

\n Create an RTCRtpReceiver,\n receiver, from the media\n media description.\n

" }, { - "html": "

\n Create an RTCRtpTransceiver with\n sender, receiver\n and an RTCRtpTransceiverDirection\n value of\n \"recvonly\",\n and let transceiver be the\n result.\n

" + "html": "

\n Create an RTCRtpTransceiver with\n sender, receiver\n and an RTCRtpTransceiverDirection\n value of\n \"recvonly\",\n and let transceiver be the\n result.\n

" }, { - "html": "

\n Add transceiver to the\n connection's set of\n transceivers.\n

" + "html": "

\n Add transceiver to the\n connection's set of\n of transceivers.\n

" } ] }, { - "html": "If description is of type\n \"answer\" or\n \"pranswer\", and\n transceiver.\n [[Sender]].[[SendEncodings]]\n .length is greater than 1, then\n run the following steps:", + "html": "If description is of type\n \"answer\" or\n \"pranswer\", and\n transceiver.\n [[Sender]].[[SendEncodings]]\n .length is greater than 1, then\n run the following steps:", "rationale": "if", "steps": [ { - "html": "

\n If description indicates that\n simulcast is not supported or desired,\n then remove all dictionaries in\n transceiver.[[Sender]].[[SendEncodings]]\n except the first one and abort these sub\n steps.\n

" + "html": "

\n If description indicates that\n simulcast is not supported or desired, or\n description is missing all of\n the previously negotiated layers,\n then remove all dictionaries in\n transceiver.[[Sender]].[[SendEncodings]]\n except the first one and abort these sub\n steps.\n

" }, { - "html": "

\n If description rejects any of\n the offered layers, then remove the\n dictionaries that correspond to rejected\n layers from\n transceiver.[[Sender]].[[SendEncodings]].\n

" + "html": "

\n If description rejects is missing any of\n the offered previously negotiated layers, then then\n remove the\n the dictionaries that correspond to rejected\n to\n the missing layers from\n transceiver.[[Sender]].[[SendEncodings]].\n

" }, { - "html": "

\n Update the paused status as indicated by\n [RFC8853] of each simulcast\n layer by setting the\n active\n member on the corresponding dictionaries\n in\n transceiver.[[Sender]].[[SendEncodings]]\n to true for unpaused or to\n false for paused.\n

" + "html": "

\n Update the paused status as indicated by\n [RFC8853] of each simulcast\n layer by setting the\n active\n member on the corresponding dictionaries\n in\n transceiver.[[Sender]].[[SendEncodings]]\n to true for unpaused or to\n false for paused.\n

" } ] }, { - "html": "

\n Set transceiver.[[Mid]] to\n transceiver.[[JsepMid]].\n

" + "html": "

\n Set transceiver.[[Mid]] to\n transceiver.[[JsepMid]].\n

" }, { - "html": "

\n Let direction be an\n RTCRtpTransceiverDirection value\n representing the direction from the media\n description, but with the send and receive\n directions reversed to represent this peer's\n point of view. If the media description\n is rejected, set direction to\n \"inactive\".\n

" + "html": "

\n Let direction be an\n RTCRtpTransceiverDirection value\n representing the direction from the media\n media description, but with the send and receive\n directions reversed to represent this peer's\n point of view. If the media description\n is rejected, set direction to\n \"inactive\".\n

" }, { - "html": "

\n If direction is\n \"sendrecv\" or\n \"recvonly\",\n let msids be a list of the MSIDs\n that the media description indicates\n transceiver.[[Receiver]].[[ReceiverTrack]]\n is to be associated with. Otherwise, let\n msids be an empty list.\n

" + "html": "

\n If direction is\n \"sendrecv\" or\n \"recvonly\",\n let msids be a list of the MSIDs\n that the media description indicates\n transceiver.[[Receiver]].[[ReceiverTrack]]\n is to be associated with. Otherwise, let\n msids be an empty list.\n

" }, { - "html": "

\n Process remote tracks with\n transceiver, direction,\n msids, addList,\n removeList, and\n trackEventInits.\n

" + "html": "

\n Process remote tracks with\n transceiver, direction,\n msids, addList,\n removeList, and\n trackEventInits.\n

" }, { - "html": "

\n Set\n transceiver.[[Receiver]].[[ReceiveCodecs]]\n to the codecs that description\n negotiates for receiving and which the user\n agent is currently prepared to receive.\n

" + "html": "

\n Set\n transceiver.[[Receiver]].[[ReceiveCodecs]]\n to the codecs that description\n negotiates for receiving and which the user\n agent is currently prepared to receive.\n

" }, { - "html": "If description is of type\n \"answer\" or\n \"pranswer\", then run the\n following steps:", + "html": "If description is of type\n \"answer\" or\n \"pranswer\", then run the\n following steps:", "rationale": "set", "steps": [ { - "html": "

\n Set\n transceiver.[[Sender]].[[SendCodecs]]\n to the codecs that description\n negotiates for sending and which the user\n agent is currently capable of sending.\n

" + "html": "

\n Set\n transceiver.[[Sender]].[[SendCodecs]]\n to the codecs that description\n negotiates for sending and which the user\n agent is currently capable of sending.\n

" }, { - "html": "

\n Set\n transceiver.[[CurrentDirection]]\n and\n transceiver.[[Direction]]s\n to direction.\n

" + "html": "

\n Set\n transceiver.[[CurrentDirection]]\n and\n transceiver.[[Direction]]s\n to direction.\n

" }, { - "html": "

\n Let transport be the\n RTCDtlsTransport object representing\n the RTP/RTCP component of the media\n transport used by\n transceiver's associated\n media description, according to\n [RFC8843].\n

" + "html": "

\n Let transport be the\n RTCDtlsTransport object representing\n the RTP/RTCP component of the media\n media transport used by\n transceiver's associated\n media description, according to\n [RFC8843].\n

" }, { - "html": "

\n Set\n transceiver.[[Sender]].[[SenderTransport]]\n to transport.\n

" + "html": "

\n Set\n transceiver.[[Sender]].[[SenderTransport]]\n to transport.\n

" }, { - "html": "

\n Set\n transceiver.[[Receiver]].[[ReceiverTransport]]\n to transport.\n

" + "html": "

\n Set\n transceiver.[[Receiver]].[[ReceiverTransport]]\n to transport.\n

" }, { - "html": "

\n Set the [[IceRole]] of\n transport according to the\n rules of [RFC8445].\n

" + "html": "

\n Set the [[IceRole]] of\n transport according to the\n rules of [RFC8445].\n

" } ] }, { - "html": "

\n If the media description is rejected,\n and\n transceiver.[[Stopped]] is\n false, then stop the\n RTCRtpTransceiver transceiver.\n

" - } - ], - "html": "

\n Otherwise, (if remote is\n true) run the following steps for\n each media description in\n description:\n

\n
Candidate Correction 12:Remove interaction between encoding.active and simulcast ~rid (PR #2754)
Candidate Correction 14:Make RTCTransceiver.direction reflects local preference in offers and answers (PR #2759)
Candidate Correction 22:Allow remote offer rid pruning of encodings through the client answer. (PR #2758)
Candidate Correction 23:Don't fail sRD(offer) over rid mismatch, just answer with unicast. (PR #2794)
Candidate Correction 25:Remove duplicate rids in proposedSendEncodings. (PR #2800)
Candidate Correction 27:Ignore comma-separated rid alternatives. (PR #2813)
", - "additional": [ - { - "rationale": "if", - "steps": [ - { - "html": "

\n If the description is of type\n \"offer\" and the\n media description contains a request\n to receive simulcast, use the order of the\n rid values specified in the simulcast\n attribute to create an\n RTCRtpEncodingParameters dictionary for\n each of the simulcast layers, populating the\n rid member\n according to the corresponding rid value\n (using only the first value if\n comma-separated alternatives exist), and\n let proposedSendEncodings be the\n list containing the created dictionaries.\n Otherwise, let proposedSendEncodings\n be an empty list.\n

" - }, - { - "html": "

\n For each encoding, encoding, in\n proposedSendEncodings in reverse\n order, if encoding's\n rid matches that of\n another encoding in\n proposedSendEncodings, remove\n encoding\n from proposedSendEncodings.\n

" - }, - { - "html": "Let supportedEncodings be the\n maximum number of encodings that the\n implementation can support. If the length of\n proposedSendEncodings is greater than\n supportedEncodings, truncate\n proposedSendEncodings so that its length is\n supportedEncodings." - }, - { - "html": "If proposedSendEncodings is non-empty,\n set each encoding's\n scaleResolutionDownBy\n to 2^(length of proposedSendEncodings -\n encoding index - 1)." - }, - { - "html": "

\n As described by [RFC8829] (section 5.10.),\n attempt to find an existing\n RTCRtpTransceiver object,\n transceiver, to represent the media description.\n

" - }, - { - "html": "If a suitable transceiver was found\n (transceiver is set), and\n proposedSendEncodings is non-empty,\n run the following steps:", - "rationale": "if", - "steps": [ - { - "html": "

\n If the length of\n transceiver.[[Sender]].[[SendEncodings]]\n is 1, and the lone encoding\n contains no\n rid member, set\n transceiver.[[Sender]].[[SendEncodings]]\n to proposedSendEncodings, and set\n transceiver.[[Sender]].[[LastReturnedParameters]]\n to null.\n

" - } - ] - }, - { - "html": "If no suitable transceiver was found\n (transceiver is unset), run the\n following steps:", - "rationale": "create", - "steps": [ - { - "html": "

\n Create an RTCRtpSender,\n sender, from the media description using\n proposedSendEncodings.\n

" - }, - { - "html": "

\n Create an RTCRtpReceiver,\n receiver, from the media description.\n

" - }, - { - "html": "

\n Create an RTCRtpTransceiver with\n sender, receiver\n and an RTCRtpTransceiverDirection\n value of\n \"recvonly\",\n and let transceiver be the\n result.\n

" - }, - { - "html": "

\n Add transceiver to the\n connection's set of transceivers.\n

" - } - ] - }, - { - "html": "If description is of type\n \"answer\" or\n \"pranswer\", and\n transceiver.\n [[Sender]].[[SendEncodings]]\n .length is greater than 1, then\n run the following steps:", - "rationale": "if", - "steps": [ - { - "html": "

\n If description indicates that\n simulcast is not supported or desired, or\n description is missing all of\n the previously negotiated layers,\n then remove all dictionaries in\n transceiver.[[Sender]].[[SendEncodings]]\n except the first one and abort these sub\n steps.\n

" - }, - { - "html": "

\n If description is missing any of\n the previously negotiated layers, then\n remove the dictionaries that correspond to\n the missing layers from\n transceiver.[[Sender]].[[SendEncodings]].\n

" - } - ] - }, - { - "html": "

\n Set transceiver.[[Mid]] to\n transceiver.[[JsepMid]].\n

" - }, - { - "html": "

\n Let direction be an\n RTCRtpTransceiverDirection value\n representing the direction from the media description, but with the send and receive\n directions reversed to represent this peer's\n point of view. If the media description\n is rejected, set direction to\n \"inactive\".\n

" - }, - { - "html": "

\n If direction is\n \"sendrecv\" or\n \"recvonly\",\n let msids be a list of the MSIDs\n that the media description indicates\n transceiver.[[Receiver]].[[ReceiverTrack]]\n is to be associated with. Otherwise, let\n msids be an empty list.\n

" - }, - { - "html": "

\n Process remote tracks with\n transceiver, direction,\n msids, addList,\n removeList, and\n trackEventInits.\n

" - }, - { - "html": "

\n Set\n transceiver.[[Receiver]].[[ReceiveCodecs]]\n to the codecs that description\n negotiates for receiving and which the user\n agent is currently prepared to receive.\n

" - }, - { - "html": "If description is of type\n \"answer\" or\n \"pranswer\", then run the\n following steps:", - "rationale": "set", - "steps": [ - { - "html": "

\n Set\n transceiver.[[Sender]].[[SendCodecs]]\n to the codecs that description\n negotiates for sending and which the user\n agent is currently capable of sending.\n

" - }, - { - "html": "

\n Set\n transceiver.[[CurrentDirection]]\n to direction.\n

" - }, - { - "html": "

\n Let transport be the\n RTCDtlsTransport object representing\n the RTP/RTCP component of the media transport used by\n transceiver's associated\n media description, according to\n [RFC8843].\n

" - }, - { - "html": "

\n Set\n transceiver.[[Sender]].[[SenderTransport]]\n to transport.\n

" - }, - { - "html": "

\n Set\n transceiver.[[Receiver]].[[ReceiverTransport]]\n to transport.\n

" - }, - { - "html": "

\n Set the [[IceRole]] of\n transport according to the\n rules of [RFC8445].\n

" - } - ] - }, - { - "html": "

\n If the media description is rejected,\n and\n transceiver.[[Stopped]] is\n false, then stop the RTCRtpTransceiver transceiver.\n

" - } - ] + "html": "

\n If the media description is rejected,\n and\n transceiver.[[Stopped]] is\n false, then stop the\n the RTCRtpTransceiver transceiver.\n

" } ] } ] }, { - "html": "Otherwise, (if description is of type\n \"rollback\") run the following steps:", + "html": "Otherwise, (if description is of type\n \"rollback\") run the following steps:", "rationale": "let", "steps": [ { - "html": "

\n Let pendingDescription be either\n connection.[[PendingLocalDescription]]\n or\n connection.[[PendingRemoteDescription]],\n whichever one is not null.\n

" + "html": "

\n Let pendingDescription be either\n connection.[[PendingLocalDescription]]\n or\n connection.[[PendingRemoteDescription]],\n whichever one is not null.\n

" }, { + "html": "For each transceiver in the\n connection's set of transceivers\n run the following steps:", "rationale": "if", "steps": [ { - "html": "

\n If transceiver was not associated with a media description\n prior to pendingDescription being set,\n disassociate it and set both\n transceiver.[[JsepMid]]\n and transceiver.[[Mid]] to\n null.\n

" + "html": "

\n If transceiver was not associated with a media description\n prior to pendingDescription being set,\n disassociate it and set both\n transceiver.[[JsepMid]]\n and transceiver.[[Mid]] to\n null.\n

" }, { - "html": "

\n Set\n transceiver.[[Sender]].[[SenderTransport]]\n to\n transceiver.[[Sender]].[[LastStableStateSenderTransport]].\n

" + "html": "

\n Set\n transceiver.[[Sender]].[[SenderTransport]]\n to\n transceiver.[[Sender]].[[LastStableStateSenderTransport]].\n

" }, { - "html": "

\n Set\n transceiver.[[Receiver]].[[ReceiverTransport]]\n to\n transceiver.[[Receiver]].[[LastStableStateReceiverTransport]].\n

" + "html": "
Candidate Correction 13:Rollback restores ridless encoding trounced by sRD(simulcastOffer). (PR #2797)
\n

\n If\n transceiver.[[Sender]].[[LastStableRidlessSendEncodings]]\n is not null, and any encoding in\n transceiver.[[Sender]].[[SendEncodings]]\n contains a\n rid member, then set\n transceiver.[[Sender]].[[SendEncodings]]\n to\n transceiver.[[Sender]].[[LastStableRidlessSendEncodings]].\n

\n
" }, { - "html": "

\n Set\n transceiver.[[Receiver]].[[ReceiveCodecs]]\n to\n transceiver.[[Receiver]].[[LastStableStateReceiveCodecs]].\n

" + "html": "

\n Set\n transceiver.[[Receiver]].[[ReceiverTransport]]\n to\n transceiver.[[Receiver]].[[LastStableStateReceiverTransport]].\n

" }, { - "html": "If the signaling state of\n connection is\n \"have-remote-offer\",\n run the following sub steps:", + "html": "

\n Set\n transceiver.[[Receiver]].[[ReceiveCodecs]]\n to\n transceiver.[[Receiver]].[[LastStableStateReceiveCodecs]].\n

" + }, + { + "html": "If\n connection.[[SignalingState]]\n is \"have-remote-offer\",\n run the following sub steps:", "rationale": "let", "steps": [ { - "html": "

\n Let msids be a list of the\n ids of all\n MediaStream objects in\n transceiver.[[Receiver]].[[LastStableStateAssociatedRemoteMediaStreams]],\n or an empty list if there are none.\n

" + "html": "

\n Let msids be a list of the\n ids of all\n MediaStream objects in\n transceiver.[[Receiver]].[[LastStableStateAssociatedRemoteMediaStreams]],\n or an empty list if there are none.\n

" }, { - "html": "

\n Process remote tracks with\n transceiver,\n transceiver.[[CurrentDirection]],\n msids, addList,\n removeList, and\n trackEventInits.\n

" + "html": "

\n Process remote tracks with\n transceiver,\n transceiver.[[CurrentDirection]],\n msids, addList,\n removeList, and\n trackEventInits.\n

" } ] }, { - "html": "

\n If transceiver was created when\n pendingDescription was set, and a\n track has never been attached to it via\n addTrack(), then stop the RTCRtpTransceiver\n transceiver, and remove it from\n connection's set of\n transceivers.\n

" - } - ], - "html": "

\n For each transceiver in the\n connection's set of transceivers\n run the following steps:\n

\n
Candidate Addition 24:Rollback restores ridless encoding trounced by sRD(simulcastOffer). (PR #2797)
", - "additional": [ - { - "rationale": "if", - "steps": [ - { - "html": "

\n If transceiver was not associated with a media description\n prior to pendingDescription being set,\n disassociate it and set both\n transceiver.[[JsepMid]]\n and transceiver.[[Mid]] to\n null.\n

" - }, - { - "html": "

\n Set\n transceiver.[[Sender]].[[SenderTransport]]\n to\n transceiver.[[Sender]].[[LastStableStateSenderTransport]].\n

" - }, - { - "html": "

\n If\n transceiver.[[Sender]].[[LastStableRidlessSendEncodings]]\n is not null, and any encoding in\n transceiver.[[Sender]].[[SendEncodings]]\n contains a\n rid member, then set\n transceiver.[[Sender]].[[SendEncodings]]\n to\n transceiver.[[Sender]].[[LastStableRidlessSendEncodings]].\n

" - }, - { - "html": "

\n Set\n transceiver.[[Receiver]].[[ReceiverTransport]]\n to\n transceiver.[[Receiver]].[[LastStableStateReceiverTransport]].\n

" - }, - { - "html": "

\n Set\n transceiver.[[Receiver]].[[ReceiveCodecs]]\n to\n transceiver.[[Receiver]].[[LastStableStateReceiveCodecs]].\n

" - }, - { - "html": "If the signaling state of\n connection is\n \"have-remote-offer\",\n run the following sub steps:", - "rationale": "let", - "steps": [ - { - "html": "

\n Let msids be a list of the\n ids of all\n MediaStream objects in\n transceiver.[[Receiver]].[[LastStableStateAssociatedRemoteMediaStreams]],\n or an empty list if there are none.\n

" - }, - { - "html": "

\n Process remote tracks with\n transceiver,\n transceiver.[[CurrentDirection]],\n msids, addList,\n removeList, and\n trackEventInits.\n

" - } - ] - }, - { - "html": "

\n If transceiver was created when\n pendingDescription was set, and a\n track has never been attached to it via\n addTrack(), then stop the RTCRtpTransceiver\n transceiver, and remove it from\n connection's set of transceivers.\n

" - } - ] + "html": "

\n If transceiver was created when\n pendingDescription was set, and a\n track has never been attached to it via\n addTrack(), then stop the RTCRtpTransceiver\n transceiver, and remove it from\n connection's set of transceivers.\n

" } ] }, { - "html": "

\n Set\n connection.[[PendingLocalDescription]]\n and\n connection.[[PendingRemoteDescription]]\n to null, and set\n connection's signaling state to\n \"stable\".\n

" + "html": "

\n Set\n connection.[[PendingLocalDescription]]\n and\n connection.[[PendingRemoteDescription]]\n to null, and set\n connection.[[SignalingState]] to\n \"stable\".\n

" } ] }, { - "html": "If description is of type\n \"answer\", then run the following\n steps:", + "html": "If description is of type\n \"answer\", then run the following\n steps:", "rationale": "for", "steps": [ { - "html": "For each transceiver in the\n connection's set of transceivers\n run the following steps:", + "html": "For each transceiver in the\n connection's set of transceivers\n run the following steps:", "rationale": "if", "steps": [ { - "html": "

\n If transceiver is\n stopped, associated with an m= section and the associated m=\n section is rejected in\n connection.[[CurrentLocalDescription]]\n or\n connection.[[CurrentRemoteDescription]],\n remove the transceiver from the\n connection's set of transceivers.\n

" + "html": "

\n If transceiver is\n stopped, associated with an m= section and the associated m=\n section is rejected in\n connection.[[CurrentLocalDescription]]\n or\n connection.[[CurrentRemoteDescription]],\n remove the transceiver from the\n connection's set of transceivers.\n

" } ] } ] }, { - "html": "If connection's signaling state is\n now \"stable\", run the following\n steps:", + "html": "If connection.[[SignalingState]] is\n now \"stable\", run the following\n steps:", "rationale": "for", "steps": [ { - "html": "

\n For any transceiver that was removed\n from the set of transceivers in a previous\n step, if any of its transports\n (transceiver.[[Sender]].[[SenderTransport]]\n or\n transceiver.[[Receiver]].[[ReceiverTransport]])\n are still not closed and they're no longer\n referenced by a non-stopped transceiver, close\n the RTCDtlsTransports and their associated\n RTCIceTransports. This results in events\n firing on these objects in a queued task.\n

" + "html": "

\n For any transceiver that was removed\n from the set of transceivers in a previous\n step, if any of its transports\n (transceiver.[[Sender]].[[SenderTransport]]\n or\n transceiver.[[Receiver]].[[ReceiverTransport]])\n are still not closed and they're no longer\n referenced by a non-stopped transceiver, close\n the RTCDtlsTransports and their associated\n RTCIceTransports. This results in events\n firing on these objects in a queued task.\n

" + }, + { + "html": "For each transceiver in connection's set of transceivers:", + "rationale": "let", + "steps": [ + { + "html": "

Let codecs be transceiver.[[Sender]].[[SendCodecs]].

" + }, + { + "html": "If codecs is not an empty list:", + "rationale": "for", + "steps": [ + { + "html": "

For each encoding in\n transceiver.[[Sender]].[[SendEncodings]],\n if encoding.codec does not\n match any entry in codecs,\n remove encoding[codec].

" + } + ] + } + ] }, { - "html": "

\n Clear the negotiation-needed flag and update the negotiation-needed flag.\n

" + "html": "

\n Clear the negotiation-needed flag and update the negotiation-needed flag.\n

" } ] }, { - "html": "

\n If connection's signaling state\n changed above, fire an event named\n signalingstatechange at connection.\n

" + "html": "

\n If connection.[[SignalingState]]\n changed above, fire an event named\n signalingstatechange at connection.\n

" }, { - "html": "

\n For each channel in errorList,\n fire an event named error\n using the RTCErrorEvent interface with the\n errorDetail attribute set to\n \"data-channel-failure\" at\n channel.\n

" + "html": "

\n For each channel in errorList,\n fire an event named error\n using the RTCErrorEvent interface with the\n errorDetail attribute set to\n \"data-channel-failure\" at\n channel.\n

" }, { - "html": "

\n For each track in muteTracks,\n set the muted state of track to the\n value true.\n

" + "html": "

\n For each track in muteTracks,\n set the muted state of track to the\n value true.\n

" }, { - "html": "

\n For each stream and track pair\n in removeList, remove the track\n track from stream.\n

" + "html": "

\n For each stream and track pair\n in removeList, remove the track\n track from stream.\n

" }, { - "html": "

\n For each stream and track pair\n in addList, add the track\n track to stream.\n

" + "html": "

\n For each stream and track pair\n in addList, add the track\n track to stream.\n

" }, { - "html": "

\n For each entry entry in\n trackEventInits, fire an event named\n track using the RTCTrackEvent interface with\n its receiver attribute initialized\n to entry.receiver,\n its track attribute initialized to\n entry.track, its\n streams attribute initialized to\n entry.streams and\n its transceiver attribute\n initialized to\n entry.transceiver at\n the connection object.\n

" + "html": "

\n For each entry entry in\n trackEventInits, fire an event named\n track using the RTCTrackEvent interface with\n its receiver attribute initialized\n to entry.receiver,\n its track attribute initialized to\n entry.track, its\n streams attribute initialized to\n entry.streams and\n its transceiver attribute\n initialized to\n entry.transceiver at\n the connection object.\n

" }, { - "html": "

\n Resolve p with\n undefined.\n

" + "html": "

\n Resolve p with\n undefined.\n

" } ] } @@ -908,70 +680,107 @@ ] }, { - "name": "set the configuration", - "html": "To set a configuration, run the\n following steps:", - "rationale": "let", + "name": "ICE transports setting", + "href": "https://www.w3.org/TR/webrtc/#ice-transports-setting", + "html": "To set a configuration with\n configuration, run the following steps:", + "rationale": ".algorithm", "steps": [ { - "html": "

\n Let configuration be the RTCConfiguration\n dictionary to be processed.\n

" + "html": "

\n Let configuration be the RTCConfiguration\n dictionary to be processed.\n

" }, { - "html": "

\n Let connection be the target RTCPeerConnection\n object.\n

" + "html": "

\n Let connection be the target RTCPeerConnection\n object.\n

" }, { - "html": "If configuration.certificates\n is set, run the following steps:", + "html": "

\n Let oldConfig be\n connection.[[Configuration]].\n

" + }, + { + "html": "\n If configuration.certificates\n oldConfig is setnot null, run the the\n following steps:, and if any of them fail, throw\n an InvalidModificationError:", "rationale": "if", "steps": [ { - "html": "

\n If the length of\n configuration.certificates\n is different from the length of\n connection.[[Configuration]].certificates,\n throw an InvalidModificationError.\n

" + "html": "

\n If the length of\n configuration.certificates\n is different from the length of\n connectionoldConfig.[[Configuration]].certificates,\n throw an InvalidModificationErrorfail.\n

" }, { - "html": "

\n Let index be initialized to 0.\n

" + "html": "

\n Let index be initialized to 0.\n

" }, { - "html": "

\n Let size be initialized to the length of\n configuration.certificates.\n

" + "html": "

\n Let size be initialized to the length of\n configuration.certificates.\n

" }, { - "html": "While index is less than size, run\n the following steps:", + "html": "While index is less than size, run\n the following steps:\n length of\n configuration.", "rationale": "if", "steps": [ { - "html": "

\n If the ECMAScript object represented by the value of\n configuration.certificates\n at index is not the same as the ECMAScript\n object represented by the value of\n connection.[[Configuration]].certificates\n at index, throw an\n InvalidModificationError.\n

" + "html": "

\n If the ECMAScript object represented by the value of\n configuration.certificates\n at index is not the same as the ECMAScript\n object represented by the value of\n connectionoldConfig.[[Configuration]].certificates\n at index, throw an\n InvalidModificationErrorthen fail.\n

" }, { "html": "

\n Increment index by 1.\n

" } ] + }, + { + "html": "

\n If the value of\n configuration.bundlePolicy\n differs from\n oldConfig.bundlePolicy,\n then fail.\n

" + }, + { + "html": "

\n If the value of\n configuration.rtcpMuxPolicy\n differs from\n oldConfig.rtcpMuxPolicy,\n then fail.\n

" + }, + { + "html": "

\n If the value of\n configuration.iceCandidatePoolSize\n differs from\n oldConfig.iceCandidatePoolSize,\n and setLocalDescription has already been\n called, then fail.\n

" } ] }, { - "html": "

\n If the value of\n configuration.bundlePolicy is\n set and its value differs from the connection's\n bundle policy, throw an\n InvalidModificationError.\n

" + "html": "

\n If the value of\n configuration.bundlePolicy is\n set and its value differs from the connection's\n bundle policy, throw an\n InvalidModificationError.\n

" }, { - "html": "

\n If the value of\n configuration.rtcpMuxPolicy\n is set and its value differs from the connection's\n rtcpMux policy, throw an\n InvalidModificationError.\n

" + "html": "

\n If the value of\n configuration.rtcpMuxPolicy\n is set and its value differs from the connection's\n rtcpMux policy, throw an\n InvalidModificationError.\n

" }, { - "html": "

\n If the value of\n configuration.iceCandidatePoolSize\n is set and its value differs from the connection's\n previously set iceCandidatePoolSize, and\n setLocalDescription has already been\n called, throw an\n InvalidModificationError.\n

" + "html": "

\n If the value of\n configuration.iceCandidatePoolSize\n is set and its value differs from the connection's\n previously set iceCandidatePoolSize, and\n setLocalDescription has already been\n called, throw an\n InvalidModificationError.\n

" }, { - "html": "

\n Set the ICE Agent's ICE transports setting to the\n value of\n configuration.iceTransportPolicy.\n As defined in [RFC8829] (section 4.1.18.), if the new ICE\n transports setting changes the existing setting, no action\n will be taken until the next gathering phase. If a script\n wants this to happen immediately, it should do an ICE\n restart.\n

" + "html": "

\n Let iceServers be\n configuration.iceServers.\n

" }, { - "html": "

\n Set the ICE Agent's prefetched ICE candidate pool\n size as defined in [RFC8829] (section 3.5.4. and section 4.1.1.) to the\n value of\n configuration.iceCandidatePoolSize.\n If the new ICE candidate pool size changes the existing\n setting, this may result in immediate gathering of new pooled\n candidates, or discarding of existing pooled candidates, as\n defined in [RFC8829] (section 4.1.18.).\n

" + "html": "

\n Truncate iceServers to the maximum number of supported elements.\n

" }, { - "html": "

\n Let validatedServers be an empty list.\n

" + "html": "For each server in\n iceServers,\n run the following steps:", + "rationale": "let", + "steps": [ + { + "html": "

\n Let urls be\n server.urls.\n

" + }, + { + "html": "

\n If urls is a string, set urls to a\n list consisting of just that string.\n

" + }, + { + "html": "

\n If urls is empty, throw a\n \"SyntaxError\" DOMException.\n

" + }, + { + "html": "

\n For each url in urls, run the validate an ICE server URL algorithm on url.\n

" + } + ] }, { - "html": "If configuration.iceServers\n is defined, then run the following steps for each element:", + "html": "

\n Set the ICE Agent's ICE transports setting to the\n value of\n configuration.iceTransportPolicy.\n As defined in [RFC8829RFC9429] (section 4.1.18.), if the new ICE\n ICE transports setting changes the existing setting, no action\n will be taken until the next gathering phase. If a script\n wants this to happen immediately, it should do an ICE\n restart.\n

" + }, + { + "html": "

\n Set the ICE Agent's prefetched ICE candidate pool\n size as defined in [RFC8829RFC9429] (section 3.5.4. and section 4.1.1.) to the\n value of\n configuration.iceCandidatePoolSize.\n If the new ICE candidate pool size changes the existing\n setting, this may result in immediate gathering of new pooled\n candidates, or discarding of existing pooled candidates, as\n defined in [RFC8829RFC9429] (section 4.1.18.).\n

" + }, + { + "html": "

\n Let validatedServers be an empty list.\n

" + }, + { + "html": "If configuration.iceServers\n is defined, then run the following steps for each element:", "rationale": "let", "steps": [ { "html": "

\n Let server be the current list element.\n

" }, { - "html": "

\n Let urls be\n server.urls.\n

" + "html": "

\n Let urls be\n server.urls.\n

" }, { "html": "

\n If urls is a string, set urls to a\n list consisting of just that string.\n

" @@ -980,19 +789,7 @@ "html": "

\n If urls is empty, throw a\n SyntaxError.\n

" }, { - "html": "For each url in urls run the\n following steps:", - "rationale": "parse", - "steps": [ - { - "html": "

\n Parse the url using the generic URI syntax\n defined in [RFC3986] and obtain the scheme\n name. If the parsing based on the syntax\n defined in [RFC3986] fails, throw\n a SyntaxError. If the scheme name is\n not implemented by the browser throw\n a NotSupportedError. If scheme name is\n turn or turns, and parsing the url\n using the syntax defined in [RFC7065] fails, throw a SyntaxError. If scheme\n name is stun or\n stuns, and parsing the\n url using the syntax defined in\n [RFC7064] fails, throw a\n SyntaxError.\n

" - }, - { - "html": "

\n If scheme name is turn or turns, and either of\n server.username or\n server.credential are\n omitted, then throw an\n InvalidAccessError.\n

" - }, - { - "html": "

\n If scheme name is turn or turns, and\n server.credentialType is\n \"password\", and\n server.credential is not\n a DOMString, then\n throw an InvalidAccessError.\n

" - } - ] + "html": "

\n\t\t For each url in urls, run the [=validate an ICE server URL=] algorithm on url.\n

" }, { "html": "

\n Append server to validatedServers.\n

" @@ -1000,99 +797,45 @@ ] }, { - "html": "

\n Set the ICE Agent's ICE\n servers list to validatedServers.\n

\n

\n As defined in [RFC8829] (section 4.1.18.), if a new list of servers\n replaces the ICE Agent's existing ICE servers list, no\n action will be taken until the next gathering phase. If a\n script wants this to happen immediately, it should do an ICE\n restart. However, if the ICE\n candidate pool has a nonzero size, any existing pooled\n candidates will be discarded, and new candidates will be\n gathered from the new servers.\n

" + "html": "

\n

\n Set the ICE Agent's ICE\n servers list to validatedServersto\n iceServers.\n

\n As defined in [RFC8829RFC9429] (section 4.1.18.), if a new list of servers\n replaces the ICE Agent's existing ICE servers listICE servers list, no\n action will be taken until the next gathering phase. If a\n script wants this to happen immediately, it should do an ICE\n restart. However, if the ICE\n ICE candidate pool has a nonzero size, any existing existing pooled\n candidates will be discarded, and new candidates will be\n gathered from the new servers.\n

" }, { - "html": "

\n Store configuration in the\n [[Configuration]] internal slot.\n

" + "html": "

\n Store configuration in the\n [[Configuration]] internal slot.\n

" } ] }, { - "name": "ICE transports setting", - "href": "https://www.w3.org/TR/webrtc/#ice-transports-setting", - "html": "To set a configuration with\n configuration, run the following steps:", + "name": "validate an ICE server URL", + "href": "https://www.w3.org/TR/webrtc/#dfn-validate-an-ice-server-url", + "html": "To validate an ICE server URL url, run the following steps:", "rationale": ".algorithm", "steps": [ { - "html": "

\n Let connection be the target RTCPeerConnection\n object.\n

" + "html": "

\n Parse the url using the generic URI syntax\n defined in [RFC3986] and obtain the scheme\n name. If the parsing based on the syntax\n defined in [RFC3986] fails, throw\n a SyntaxError. If the scheme name is\n not implemented by the browser throw\n a NotSupportedError. If scheme name is\n turn or turns, and parsing the url\n using the syntax defined in [RFC7065] fails, throw a SyntaxError. If scheme\n name is stun or\n stuns, and parsing the\n url using the syntax defined in\n [RFC7064] fails, throw a\n SyntaxError.\n

" }, { - "html": "

\n Let oldConfig be\n connection.[[Configuration]].\n

" + "html": "

Let parsedURL be the result of\n parsing\n url.

" }, { - "html": "If oldConfig is not null, run the\n following steps, and if any of them fail, throw\n an InvalidModificationError:", - "rationale": "if", - "steps": [ - { - "html": "

\n If the length of\n configuration.certificates\n is different from the length of\n oldConfig.certificates,\n fail.\n

" - }, - { - "html": "

\n Let index be 0.\n

" - }, - { - "html": "While index is less than the length of\n configuration.certificates,\n run the following steps:", - "rationale": "if", - "steps": [ - { - "html": "

\n If the ECMAScript object represented by the value of\n configuration.certificates\n at index is not the same as the ECMAScript\n object represented by the value of\n oldConfig.certificates\n at index, then fail.\n

" - }, - { - "html": "

\n Increment index by 1.\n

" - } - ] - }, - { - "html": "

\n If the value of\n configuration.bundlePolicy\n differs from\n oldConfig.bundlePolicy,\n then fail.\n

" - }, - { - "html": "

\n If the value of\n configuration.rtcpMuxPolicy\n differs from\n oldConfig.rtcpMuxPolicy,\n then fail.\n

" - }, - { - "html": "

\n If the value of\n configuration.iceCandidatePoolSize\n differs from\n oldConfig.iceCandidatePoolSize,\n and setLocalDescription has already been\n called, then fail.\n

" - } - ] + "html": "

If any of the following conditions apply, then throw a\n \"SyntaxError\" DOMException:

" }, { - "html": "For each server in\n configuration.iceServers,\n run the following steps:", - "rationale": "let", - "steps": [ - { - "html": "

\n Let urls be\n server.urls.\n

" - }, - { - "html": "

\n If urls is a string, set urls to a\n list consisting of just that string.\n

" - }, - { - "html": "

\n If urls is empty, throw a\n SyntaxError.\n

" - }, - { - "html": "For each url in urls run the\n following steps:", - "rationale": "parse", - "steps": [ - { - "html": "

\n Parse the url using the generic URI syntax\n defined in [RFC3986] and obtain the scheme\n name. If the parsing based on the syntax\n defined in [RFC3986] fails, throw\n a SyntaxError. If the scheme name is\n not implemented by the browser throw\n a NotSupportedError. If scheme name is\n turn or turns, and parsing the url\n using the syntax defined in [RFC7065] fails, throw a SyntaxError. If scheme\n name is stun or\n stuns, and parsing the\n url using the syntax defined in\n [RFC7064] fails, throw a\n SyntaxError.\n

" - }, - { - "html": "

\n If scheme name is turn or turns, and either of\n server.username or\n server.credential are\n omitted, then throw an\n InvalidAccessError.\n

" - }, - { - "html": "

\n If scheme name is turn or turns, and\n server.credential is not\n a DOMString, then\n throw an InvalidAccessError.\n

" - } - ] - } - ] + "html": "

If parsedURL's scheme is not implemented by the\n user agent, then throw a NotSupportedError.

" }, { - "html": "

\n Set the ICE Agent's ICE transports setting to the\n value of\n configuration.iceTransportPolicy.\n As defined in [RFC8829] (section 4.1.18.), if the new ICE transports setting changes the existing setting, no action\n will be taken until the next gathering phase. If a script\n wants this to happen immediately, it should do an ICE\n restart.\n

" + "html": "

Let hostAndPortURL be result of\n parsing the concatenation of\n \"https://\" and parsedURL's path.

" }, { - "html": "

\n Set the ICE Agent's prefetched ICE candidate pool\n size as defined in [RFC8829] (section 3.5.4. and section 4.1.1.) to the\n value of\n configuration.iceCandidatePoolSize.\n If the new ICE candidate pool size changes the existing\n setting, this may result in immediate gathering of new pooled\n candidates, or discarding of existing pooled candidates, as\n defined in [RFC8829] (section 4.1.18.).\n

" + "html": "

If hostAndPortURL is failure, then throw a\n \"SyntaxError\" DOMException.

" }, { - "html": "

\n Set the ICE Agent's ICE\n servers list to\n configuration.iceServers.\n

\n

\n As defined in [RFC8829] (section 4.1.18.), if a new list of servers\n replaces the ICE Agent's existing ICE servers list, no\n action will be taken until the next gathering phase. If a\n script wants this to happen immediately, it should do an ICE\n restart. However, if the ICE candidate pool has a nonzero size, any existing pooled\n candidates will be discarded, and new candidates will be\n gathered from the new servers.\n

" + "html": "TODO: validate ?transport=udp|tcp (see PR #2996)" }, { - "html": "

\n Store configuration in the\n [[Configuration]] internal slot.\n

" + "html": "

\n If scheme nameparsedURL's' scheme is turn\"turn\" or turnsor\n \"turns\", and either of\n server.username or\n server.credential are\n omitteddo\n not exist, then throw an\n InvalidAccessError.\n

" + }, + { + "html": "

\n If scheme name is turn or turns, and\n server.credentialType is\n \"password\", and\n server.credential is not\n a DOMString, then\n throw an InvalidAccessError.\n

" } ] }, @@ -1100,33 +843,33 @@ "name": "RTCPeerConnection/createOffer()", "href": "https://www.w3.org/TR/webrtc/#dom-rtcpeerconnection-createoffer", "html": "When the method is called, the user agent MUST run the\n following steps:", - "rationale": "let", + "rationale": ".algorithm", "steps": [ { - "html": "

\n Let connection be the RTCPeerConnection\n object on which the method was invoked.\n

" + "html": "

\n Let connection be the RTCPeerConnection\n object on which the method was invoked.\n

" }, { - "html": "

\n If connection.[[IsClosed]] is\n true, return a promise rejected with\n a newly created InvalidStateError.\n

" + "html": "

\n If connection.[[IsClosed]] is\n true, return a promise rejected with\n a newly created InvalidStateError.\n

" }, { - "html": "

\n Return the result of chaining the result of creating an offer with connection to\n connection's operations chain.\n

" + "html": "

\n Return the result of chaining the result of creating an offer with connection to\n connection's operations chain.\n

" } ] }, { "name": "creating an offer", "href": "https://www.w3.org/TR/webrtc/#dfn-creating-an-offer", - "html": "To create an offer\n given connection run the following steps:", - "rationale": "if", + "html": "To create an offer\n given connection run the following steps:", + "rationale": ".algorithm", "steps": [ { - "html": "

\n If connection's signaling state is\n neither \"stable\" nor\n \"have-local-offer\", return a\n promise rejected with a newly created InvalidStateError.\n

" + "html": "

\n If connection.[[SignalingState]] is\n neither \"stable\" nor\n \"have-local-offer\", return a\n promise rejected with a newly created InvalidStateError.\n

" }, { "html": "

\n Let p be a new promise.\n

" }, { - "html": "

\n In parallel, begin the in-parallel steps to create an offer given connection and\n p.\n

" + "html": "

\n In parallel, begin the in-parallel steps to create an offer given connection and\n p.\n

" }, { "html": "

\n Return p.\n

" @@ -1136,70 +879,73 @@ { "name": "in-parallel steps to create an offer", "href": "https://www.w3.org/TR/webrtc/#dfn-in-parallel-steps-to-create-an-offer", - "html": "The in-parallel steps to create an offer given\n connection and a promise p are as\n follows:", + "html": "The in-parallel steps to create an offer given\n connection and a promise p are as\n follows:", "rationale": "if", "steps": [ { "html": "

\n If connection was not constructed with a set\n of certificates, and one has not yet been generated,\n wait for it to be generated.\n

" }, { - "html": "

\n Inspect the offerer's system state to\n determine the currently available resources as\n necessary for generating the offer, as described in\n [RFC8829] (section 4.1.8.).\n

" + "html": "

\n Inspect the offerer's system state to\n determine the currently available resources as\n necessary for generating the offer, as described in\n [RFC9429] (section 4.1.8.).\n

" }, { - "html": "

\n If this inspection failed for any reason, reject\n p with a newly created\n OperationError and abort these steps.\n

" + "html": "

\n If this inspection failed for any reason, reject\n p with a newly created\n OperationError and abort these steps.\n

" }, { - "html": "

\n Queue a task that runs the final steps to create an offer given connection and p.\n

" + "html": "

\n Queue a task that runs the final steps to create an offer given connection and p.\n

" } ] }, { "name": "final steps to create an offer", "href": "https://www.w3.org/TR/webrtc/#dfn-final-steps-to-create-an-offer", - "html": "The final steps to create an offer given\n connection and a promise p are as\n follows:", - "rationale": "if", + "html": "The final steps to create an offer given\n connection and a promise p are as\n follows:", + "rationale": ".algorithm", "steps": [ { - "html": "

\n If connection.[[IsClosed]] is\n true, then abort these steps.\n

" + "html": "

\n If connection.[[IsClosed]] is\n true, then abort these steps.\n

" }, { - "html": "

\n If connection was modified in such a way\n that additional inspection of the offerer's system state is necessary, then in parallel begin the in-parallel steps to create an offer again, given\n connection and p, and abort these\n steps.\n

" + "html": "

\n If connection was modified in such a way\n that additional inspection of the offerer's system state is necessary, then in parallel begin the in-parallel steps to create an offer again, given\n connection and p, and abort these\n steps.\n

" }, { - "html": "Given the information that was obtained from previous\n inspection, the current state of connection\n and its RTCRtpTransceivers, generate an SDP offer,\n sdpString, as described in [RFC8829] (section 5.2.).", - "rationale": "if", + "html": "Given the information that was obtained from previous\n inspection, the current state of connection\n and its RTCRtpTransceivers, generate an SDP offer,\n sdpString, as described in [RFC9429] (section 5.2.).", + "rationale": "let", "steps": [ { - "html": "

\n As described in [RFC8843] (Section 7), if\n bundling is used (see RTCBundlePolicy) an\n offerer tagged m= section must be selected in order\n to negotiate a BUNDLE group. The user agent MUST\n choose the m= section that corresponds to the first\n non-stopped transceiver in the set of transceivers as the offerer tagged m= section.\n This allows the remote endpoint to predict which\n transceiver is the offerer tagged m= section\n without having to parse the SDP.\n

" + "html": "

\n As described in [RFC8843] (Section 7), if\n bundling is used (see RTCBundlePolicy) an\n offerer tagged m= section must be selected in order\n to negotiate a BUNDLE group. The user agent MUST\n choose the m= section that corresponds to the first\n non-stopped transceiver in the set of transceivers as the offerer tagged m= section.\n This allows the remote endpoint to predict which\n transceiver is the offerer tagged m= section\n without having to parse the SDP.\n

" }, { - "html": "The codec preferences of a media description's associated transceiver is\n said to be the value of the\n RTCRtpTransceiver.[[PreferredCodecs]]\n with the following filtering applied (or said not\n to be set if [[PreferredCodecs]] is empty):", - "rationale": "if", + "html": "The codec preferences of a media description's associated transceiver,\n transceiver, is said to be the value of\n transceiver.[[PreferredCodecs]]\n with the following filtering applied (or said not\n to be set if\n transceiver.[[PreferredCodecs]]\n is empty):", + "rationale": "let", "steps": [ { - "html": "

\n If the direction is\n \"sendrecv\",\n exclude any codecs not included in the\n intersection of\n RTCRtpSender.getCapabilities(kind).codecs\n and\n RTCRtpReceiver.getCapabilities(kind).codecs.\n

" + "html": "

Let kind be transceiver's\n [[Receiver]]'s\n [[ReceiverTrack]]'s\n kind.

" }, { - "html": "

\n If the direction is\n \"sendonly\",\n exclude any codecs not included in\n RTCRtpSender.getCapabilities(kind).codecs.\n

" + "html": "" }, { - "html": "

\n If the direction is\n \"recvonly\",\n exclude any codecs not included in\n RTCRtpReceiver.getCapabilities(kind).codecs.\n

" + "html": "

\n If\n transceiver.direction\n is \"sendonly\"\n or \"sendrecv\",\n exclude any codecs not included in the\n list of implemented send codecs for\n kind.\n

" + }, + { + "html": "

\n If\n transceiver.direction\n is \"recvonly\"\n or \"sendrecv\",\n exclude any codecs not included in the\n list of implemented receive codecs for\n kind.\n

" } ] }, { - "html": "

\n If the length of the [[SendEncodings]] slot\n of the RTCRtpSender is larger than 1, then for\n each encoding given in [[SendEncodings]] of\n the RTCRtpSender, add an a=rid send line to the corresponding\n media section, and add an a=simulcast:send line giving the RIDs\n in the same order as given in the\n encodings field. No RID\n restrictions are set.\n

" + "html": "

\n If the length of the [[SendEncodings]] slot\n of the RTCRtpSender is larger than 1, then for\n each encoding given in [[SendEncodings]] of\n the RTCRtpSender, add an a=rid send line to the corresponding\n media section, and add an a=simulcast:send line giving the RIDs\n in the same order as given in the\n encodings field. No RID\n restrictions are set.\n

" } ] }, { - "html": "

\n Let offer be a newly created\n RTCSessionDescriptionInit dictionary with its\n type member initialized\n to the string \"offer\" and its\n sdp member initialized to\n sdpString.\n

" + "html": "

\n Let offer be a newly created\n RTCSessionDescriptionInit dictionary with its\n type member initialized\n to the string \"offer\" and its\n sdp member initialized to\n sdpString.\n

" }, { - "html": "

\n Set the [[LastCreatedOffer]] internal slot to\n sdpString.\n

" + "html": "

\n Set the [[LastCreatedOffer]] internal slot to\n sdpString.\n

" }, { - "html": "

\n Resolve p with offer.\n

" + "html": "

\n Resolve p with offer.\n

" } ] }, @@ -1207,33 +953,33 @@ "name": "RTCPeerConnection/createAnswer()", "href": "https://www.w3.org/TR/webrtc/#dom-rtcpeerconnection-createanswer", "html": "When the method is called, the user agent MUST run the\n following steps:", - "rationale": "let", + "rationale": ".algorithm", "steps": [ { - "html": "

\n Let connection be the RTCPeerConnection\n object on which the method was invoked.\n

" + "html": "

\n Let connection be the RTCPeerConnection\n object on which the method was invoked.\n

" }, { - "html": "

\n If connection.[[IsClosed]] is\n true, return a promise rejected with\n a newly created InvalidStateError.\n

" + "html": "

\n If connection.[[IsClosed]] is\n true, return a promise rejected with\n a newly created InvalidStateError.\n

" }, { - "html": "

\n Return the result of chaining the result of creating an answer with connection to\n connection's operations chain.\n

" + "html": "

\n Return the result of chaining the result of creating an answer with connection to\n connection's operations chain.\n

" } ] }, { "name": "creating an answer", "href": "https://www.w3.org/TR/webrtc/#dfn-creating-an-answer", - "html": "To create an answer\n given connection run the following steps:", - "rationale": "if", + "html": "To create an answer\n given connection run the following steps:", + "rationale": ".algorithm", "steps": [ { - "html": "

\n If connection's signaling state is\n neither \"have-remote-offer\" nor\n \"have-local-pranswer\", return a\n promise rejected with a newly created InvalidStateError.\n

" + "html": "

\n If connection.[[SignalingState]] is\n neither \"have-remote-offer\" nor\n \"have-local-pranswer\", return a\n promise rejected with a newly created InvalidStateError.\n

" }, { "html": "

\n Let p be a new promise.\n

" }, { - "html": "

\n In parallel, begin the in-parallel steps to create an answer given connection and\n p.\n

" + "html": "

\n In parallel, begin the in-parallel steps to create an answer given connection and\n p.\n

" }, { "html": "

\n Return p.\n

" @@ -1241,106 +987,87 @@ ] }, { - "name": "in-parallel steps to create an answer", - "href": "https://www.w3.org/TR/webrtc/#dfn-in-parallel-steps-to-create-an-answer", - "html": "The in-parallel steps to create an answer given\n connection and a promise p are as\n follows:", - "rationale": "if", + "name": "answerer's system state", + "href": "https://www.w3.org/TR/webrtc/#dfn-answerer-s-system-state", + "html": "The in-parallel steps to create an answer given\n connection and a promise p are as\n follows:", + "rationale": ".algorithm", "steps": [ { "html": "

\n If connection was not constructed with a set\n of certificates, and one has not yet been generated,\n wait for it to be generated.\n

" }, { - "html": "

\n Inspect the answerer's system state to\n determine the currently available resources as\n necessary for generating the answer, as described in\n [RFC8829] (section 4.1.9.).\n

" + "html": "

\n Inspect the answerer's system state to\n determine the currently available resources as\n necessary for generating the answer, as described in\n [RFC9429] (section 4.1.9.).\n

" }, { - "html": "

\n If this inspection failed for any reason, reject\n p with a newly created\n OperationError and abort these steps.\n

" + "html": "

\n If this inspection failed for any reason, reject\n p with a newly created\n OperationError and abort these steps.\n

" }, { - "html": "

\n Queue a task that runs the final steps to create an answer given p.\n

" + "html": "

\n Queue a task that runs the final steps to create an answer given p.\n

" } ] }, { "name": "final steps to create an answer", "href": "https://www.w3.org/TR/webrtc/#dfn-final-steps-to-create-an-answer", - "html": "The final steps to create an answer given a\n promise p are as follows:", - "rationale": "if", + "html": "The final steps to create an answer given a\n promise p are as follows:", + "rationale": ".algorithm", "steps": [ { - "html": "

\n If connection.[[IsClosed]] is\n true, then abort these steps.\n

" + "html": "

\n If connection.[[IsClosed]] is\n true, then abort these steps.\n

" }, { - "html": "

\n If connection was modified in such a way\n that additional inspection of the answerer's system state is necessary, then in parallel begin the in-parallel steps to create an answer again given\n connection and p, and abort these\n steps.\n

" + "html": "

\n If connection was modified in such a way\n that additional inspection of the answerer's system state is necessary, then in parallel begin the in-parallel steps to create an answer again given\n connection and p, and abort these\n steps.\n

" }, { + "html": "Given the information that was obtained from previous\n inspection and the current state of\n connection and its RTCRtpTransceivers,\n generate an SDP answer, sdpString, as\n described in [RFC9429] (section 5.3.).", "rationale": "if", "steps": [ { - "html": "The codec preferences of an m= section's\n associated transceiver is said to be the value of\n the\n RTCRtpTransceiver.[[PreferredCodecs]]\n with the following filtering applied (or said not\n to be set if [[PreferredCodecs]] is empty):", + "html": "The codec preferences of an m= section's\n associated transceiver associated transceiver,\n transceiver, is said to be the value of\n the\n RTCRtpTransceivertransceiver.[[PreferredCodecs]]\n with the following filtering applied (or said not\n to be set if if\n transceiver.[[PreferredCodecs]] \n is empty):", "rationale": "if", "steps": [ { - "html": "

\n If the direction is\n \"sendrecv\",\n exclude any codecs not included in the\n intersection of\n RTCRtpSender.getCapabilities(kind).codecs\n and\n RTCRtpReceiver.getCapabilities(kind).codecs.\n

" + "html": "

\n If the direction is\n \"sendrecv\",\n exclude any codecs not included in the\n intersection of\n RTCRtpSender.getCapabilities(kind).codecs\n and\n RTCRtpReceiver.getCapabilities(kind).codecs.\n

" + }, + { + "html": "

Let kind be transceiver's\n [[Receiver]]'s\n [[ReceiverTrack]]'s\n kind.

" }, { - "html": "

\n If the direction is\n \"sendonly\",\n exclude any codecs not included in\n RTCRtpSender.getCapabilities(kind).codecs.\n

" + "html": "

\n If the If\n transceiver.direction is\n \n is \"sendonly\"\n or \"sendrecv\",\n exclude any codecs not included in\n RTCRtpSender.getCapabilities(kind).in the\n list of implemented send codecs for\n kind.\n

" }, { - "html": "

\n If the direction is\n \"recvonly\",\n exclude any codecs not included in\n RTCRtpReceiver.getCapabilities(kind).codecs.\n

" + "html": "

\n If the If\n transceiver.direction is\n \n is \"recvonly\"\n or \"sendrecv\",\n exclude any codecs not included in\n RTCRtpReceiver.getCapabilities(kind).in the\n list of implemented receive codecs for\n kind.\n

" } ] }, { - "html": "

\n If the length of the [[SendEncodings]] slot\n of the RTCRtpSender is larger than 1, then for\n each encoding given in [[SendEncodings]] of\n the RTCRtpSender, add an a=rid send line to the corresponding\n media section, and add an a=simulcast:send line giving the RIDs\n in the same order as given in the\n encodings field. No RID\n restrictions are set.\n

" - } - ], - "html": "

\n Given the information that was obtained from previous\n inspection and the current state of\n connection and its RTCRtpTransceivers,\n generate an SDP answer, sdpString, as\n described in [RFC8829] (section 5.3.).\n

\n
Candidate Correction 26:Prune createAnswer()'s encodings and SendEncodings in sLD(answer). (PR #2801)
Candidate Correction 27:Ignore comma-separated rid alternatives. (PR #2813)
", - "additional": [ + "html": "

\n If the length of the [[SendEncodings]] slot\n of the RTCRtpSender is larger than 1, then for\n each encoding given in [[SendEncodings]] of\n the RTCRtpSender, add an a=rid send line to the corresponding\n media section, and add an a=simulcast:send line giving the RIDs\n in the same order as given in the\n encodings field. No RID\n restrictions are set.\n

" + }, { + "html": "If this is an answer to an offer to receive\n simulcast, then for each media section requesting\n to receive simulcast, run the following steps:", "rationale": "if", "steps": [ { - "html": "The codec preferences of an m= section's\n associated transceiver is said to be the value of\n the\n RTCRtpTransceiver.[[PreferredCodecs]]\n with the following filtering applied (or said not\n to be set if [[PreferredCodecs]] is empty):", - "rationale": "if", - "steps": [ - { - "html": "

\n If the direction is\n \"sendrecv\",\n exclude any codecs not included in the\n intersection of\n RTCRtpSender.getCapabilities(kind).codecs\n and\n RTCRtpReceiver.getCapabilities(kind).codecs.\n

" - }, - { - "html": "

\n If the direction is\n \"sendonly\",\n exclude any codecs not included in\n RTCRtpSender.getCapabilities(kind).codecs.\n

" - }, - { - "html": "

\n If the direction is\n \"recvonly\",\n exclude any codecs not included in\n RTCRtpReceiver.getCapabilities(kind).codecs.\n

" - } - ] + "html": "

\n If the a=simulcast\n attribute contains comma-separated alternatives\n for RIDs, remove all but the first ones.\n

" }, { - "html": "If this is an answer to an offer to receive\n simulcast, then for each media section requesting\n to receive simulcast, run the following steps:", - "rationale": "if", - "steps": [ - { - "html": "

\n If the a=simulcast\n attribute contains comma-separated alternatives\n for RIDs, remove all but the first ones.\n

" - }, - { - "html": "

\n If there are any identically named RIDs in the\n a=simulcast attribute,\n remove all but the first one. No RID\n restrictions are set.\n

" - }, - { - "html": "

\n Exclude from the media section in the answer any\n RID not found in the corresponding transceiver's\n [[Sender]].[[SendEncodings]].\n

\n

" - } - ] + "html": "

\n If there are any identically named RIDs in the\n a=simulcast attribute,\n remove all but the first one. No RID\n restrictions are set.\n

" + }, + { + "html": "

\n Exclude from the media section in the answer any\n RID not found in the corresponding transceiver's\n [[Sender]].[[SendEncodings]].\n

\n

" } ] } ] }, { - "html": "

\n Let answer be a newly created\n RTCSessionDescriptionInit dictionary with its\n type member initialized\n to the string \"answer\" and its\n sdp member initialized to\n sdpString.\n

" + "html": "

\n Let answer be a newly created\n RTCSessionDescriptionInit dictionary with its\n type member initialized\n to the string \"answer\" and its\n sdp member initialized to\n sdpString.\n

" }, { - "html": "

\n Set the [[LastCreatedAnswer]] internal slot to\n sdpString.\n

" + "html": "

\n Set the [[LastCreatedAnswer]] internal slot to\n sdpString.\n

" }, { - "html": "

\n Resolve p with answer.\n

" + "html": "

\n Resolve p with answer.\n

" } ] }, @@ -1348,65 +1075,65 @@ "name": "RTCPeerConnection/setLocalDescription()", "href": "https://www.w3.org/TR/webrtc/#dom-peerconnection-setlocaldescription", "html": "When the method is invoked, the user agent MUST run the\n following steps:", - "rationale": "let", + "rationale": ".algorithm", "steps": [ { "html": "

\n Let description be the method's first\n argument.\n

" }, { - "html": "

\n Let connection be the RTCPeerConnection\n object on which the method was invoked.\n

" + "html": "

\n Let connection be the RTCPeerConnection\n object on which the method was invoked.\n

" }, { - "html": "

\n Let sdp be\n description.sdp.\n

" + "html": "

\n Let sdp be\n description.sdp.\n

" }, { - "html": "Return the result of chaining the following steps\n to connection's operations chain:", + "html": "Return the result of chaining the following steps\n to connection's operations chain:", "rationale": "let", "steps": [ { - "html": "

\n Let type be\n description.type\n if present, or \"offer\" if not\n present and connection's signaling state is either \"stable\",\n \"have-local-offer\", or\n \"have-remote-pranswer\";\n otherwise \"answer\".\n

" + "html": "

\n Let type be\n description.type\n if present, or \"offer\" if not\n present and\n connection.[[SignalingState]]\n is either \"stable\",\n \"have-local-offer\", or\n \"have-remote-pranswer\";\n otherwise \"answer\".\n

" }, { - "html": "

\n If type is \"offer\", and\n sdp is not the empty string and not\n equal to\n connection.[[LastCreatedOffer]],\n then return a promise rejected with a newly\n created\n InvalidModificationError and abort these steps.\n

" + "html": "

\n If type is \"offer\", and\n sdp is not the empty string and not\n equal to\n connection.[[LastCreatedOffer]],\n then return a promise rejected with a newly\n created\n InvalidModificationError and abort these steps.\n

" }, { - "html": "

\n If type is \"answer\" or\n \"pranswer\", and sdp is\n not the empty string and not equal to\n connection.[[LastCreatedAnswer]],\n then return a promise rejected with a newly\n created\n InvalidModificationError and abort these steps.\n

" + "html": "

\n If type is \"answer\" or\n \"pranswer\", and sdp is\n not the empty string and not equal to\n connection.[[LastCreatedAnswer]],\n then return a promise rejected with a newly\n created\n InvalidModificationError and abort these steps.\n

" }, { - "html": "If sdp is the empty string, and\n type is \"offer\", then run\n the following sub steps:", + "html": "If sdp is the empty string, and\n type is \"offer\", then run\n the following sub steps:", "rationale": "set", "steps": [ { - "html": "

\n Set sdp to the value of\n connection.[[LastCreatedOffer]].\n

" + "html": "

\n Set sdp to the value of\n connection.[[LastCreatedOffer]].\n

" }, { - "html": "

\n If sdp is the empty string, or if it\n no longer accurately represents the offerer's system state of\n connection, then let p be\n the result of creating an offer with\n connection, and return the result of\n reacting to p with a\n fulfillment step that sets the local session description indicated by its first\n argument.\n

" + "html": "

\n If sdp is the empty string, or if it\n no longer accurately represents the offerer's system state of\n connection, then let p be\n the result of creating an offer with\n connection, and return the result of\n reacting to p with a\n fulfillment step that sets the local session description indicated by its first\n argument.\n

" } ] }, { - "html": "If sdp is the empty string, and\n type is \"answer\" or\n \"pranswer\", then run the following\n sub steps:", + "html": "If sdp is the empty string, and\n type is \"answer\" or\n \"pranswer\", then run the following\n sub steps:", "rationale": "set", "steps": [ { - "html": "

\n Set sdp to the value of\n connection.[[LastCreatedAnswer]].\n

" + "html": "

\n Set sdp to the value of\n connection.[[LastCreatedAnswer]].\n

" }, { - "html": "If sdp is the empty string, or if it\n no longer accurately represents the answerer's system state of\n connection, then let p be\n the result of creating an answer with\n connection, and return the result of\n reacting to p with the\n following fulfillment steps:", + "html": "If sdp is the empty string, or if it\n no longer accurately represents the answerer's system state of\n connection, then let p be\n the result of creating an answer with\n connection, and return the result of\n reacting to p with the\n following fulfillment steps:", "rationale": "let", "steps": [ { "html": "

\n Let answer be the first argument\n to these fulfillment steps.\n

" }, { - "html": "

\n Return the result of setting the local session description indicated by\n {type,\n answer.sdp}.\n

" + "html": "

\n Return the result of setting the local session description indicated by\n {type,\n answer.sdp}.\n

" } ] } ] }, { - "html": "

\n Return the result of setting the local session description indicated by {type, sdp}.\n

" + "html": "

\n Return the result of setting the local session description indicated by {type, sdp}.\n

" } ] } @@ -1416,32 +1143,32 @@ "name": "RTCPeerConnection/setRemoteDescription()", "href": "https://www.w3.org/TR/webrtc/#dom-peerconnection-setremotedescription", "html": "When the method is invoked, the user agent MUST run the\n following steps:", - "rationale": "let", + "rationale": ".algorithm", "steps": [ { "html": "

\n Let description be the method's first\n argument.\n

" }, { - "html": "

\n Let connection be the RTCPeerConnection\n object on which the method was invoked.\n

" + "html": "

\n Let connection be the RTCPeerConnection\n object on which the method was invoked.\n

" }, { - "html": "Return the result of chaining the following steps\n to connection's operations chain:", + "html": "Return the result of chaining the following steps\n to connection's operations chain:", "rationale": "if", "steps": [ { - "html": "If\n description.type\n is \"offer\" and is invalid for the\n current signaling state of\n connection as described in\n [RFC8829] (section 5.5. and section 5.6.),\n then run the following sub steps:", + "html": "If\n description.type\n is \"offer\" and is invalid for the\n current\n connection.[[SignalingState]]\n as described in\n [RFC9429] (section 5.5. and section 5.6.),\n then run the following sub steps:", "rationale": "let", "steps": [ { - "html": "

\n Let p be the result of setting the local session description indicated by\n {type:\n \"rollback\"}.\n

" + "html": "

\n Let p be the result of setting the local session description indicated by\n {type:\n \"rollback\"}.\n

" }, { - "html": "

\n Return the result of reacting to\n p with a fulfillment step that sets the remote session description\n description, and abort these steps.\n

" + "html": "

\n Return the result of reacting to\n p with a fulfillment step that sets the remote session description\n description, and abort these steps.\n

" } ] }, { - "html": "

\n Return the result of setting the remote session description description.\n

" + "html": "

\n Return the result of setting the remote session description description.\n

" } ] } @@ -1450,54 +1177,54 @@ { "name": "RTCPeerConnection/addIceCandidate()", "href": "https://www.w3.org/TR/webrtc/#dom-peerconnection-addicecandidate", - "html": "The addIceCandidate method provides a remote candidate\n to the ICE Agent. This method can also be used to\n indicate the end of remote candidates when called with an\n empty string for the candidate member.\n The only members of the argument used by this method are\n candidate, sdpMid,\n sdpMLineIndex, and\n usernameFragment; the rest are ignored.\n When the method is invoked, the user agent MUST run the\n following steps:", - "rationale": "let", + "html": "The addIceCandidate method provides a remote candidate\n to the ICE Agent. This method can also be used to\n indicate the end of remote candidates when called with an\n empty string for the candidate member.\n The only members of the argument used by this method are\n candidate, sdpMid,\n sdpMLineIndex, and\n usernameFragment; the rest are ignored.\n When the method is invoked, the user agent MUST run the\n following steps:", + "rationale": ".algorithm", "steps": [ { "html": "

\n Let candidate be the method's argument.\n

" }, { - "html": "

\n Let connection be the RTCPeerConnection\n object on which the method was invoked.\n

" + "html": "

\n Let connection be the RTCPeerConnection\n object on which the method was invoked.\n

" }, { - "html": "

\n If candidate.candidate\n is not an empty string and both\n candidate.sdpMid and\n candidate.sdpMLineIndex\n are null, return a promise rejected\n with a newly created TypeError.\n

" + "html": "

\n If candidate.candidate\n is not an empty string and both\n candidate.sdpMid and\n candidate.sdpMLineIndex\n are null, return a promise rejected\n with a newly created TypeError.\n

" }, { - "html": "Return the result of chaining the following steps\n to connection's operations chain:", + "html": "Return the result of chaining the following steps\n to connection's operations chain:", "rationale": "if", "steps": [ { - "html": "

\n If remoteDescription is\n null return a promise rejected\n with a newly created\n InvalidStateError.\n

" + "html": "

\n If remoteDescription is\n null return a promise rejected\n with a newly created\n InvalidStateError.\n

" }, { - "html": "If candidate.sdpMid\n is not null, run the following steps:", + "html": "If candidate.sdpMid\n is not null, run the following steps:", "rationale": "if", "steps": [ { - "html": "

\n If\n candidate.sdpMid\n is not equal to the mid of any media\n description in\n remoteDescription, return\n a promise rejected with a newly created OperationError.\n

" + "html": "

\n If\n candidate.sdpMid\n is not equal to the mid of any media\n description in\n remoteDescription, return\n a promise rejected with a newly created OperationError.\n

" } ] }, { - "html": "Else, if\n candidate.sdpMLineIndex\n is not null, run the following steps:", + "html": "Else, if\n candidate.sdpMLineIndex\n is not null, run the following steps:", "rationale": "if", "steps": [ { - "html": "

\n If\n candidate.sdpMLineIndex\n is equal to or larger than the number of media\n descriptions in\n remoteDescription, return\n a promise rejected with a newly created OperationError.\n

" + "html": "

\n If\n candidate.sdpMLineIndex\n is equal to or larger than the number of media\n descriptions in\n remoteDescription, return\n a promise rejected with a newly created OperationError.\n

" } ] }, { - "html": "

\n If either\n candidate.sdpMid or\n candidate.sdpMLineIndex\n indicate a media description in\n remoteDescription whose\n associated transceiver is stopped, return a promise resolved with\n undefined.\n

" + "html": "

\n If either\n candidate.sdpMid or\n candidate.sdpMLineIndex\n indicate a media description in\n remoteDescription whose\n associated transceiver is stopped, return a promise resolved with\n undefined.\n

" }, { - "html": "

\n If\n candidate.usernameFragment\n is not null, and is not equal to any\n username fragment present in the corresponding media description of an applied remote\n description, return a promise rejected with a\n newly created OperationError.\n

" + "html": "

\n If\n candidate.usernameFragment\n is not null, and is not equal to any\n username fragment present in the corresponding media description of an applied remote\n description, return a promise rejected with a\n newly created OperationError.\n

" }, { "html": "

\n Let p be a new promise.\n

" }, { - "html": "If\n candidate.candidate\n is an empty string, process candidate as\n an end-of-candidates indication for the\n corresponding media description and ICE\n candidate generation. If both\n candidate.sdpMid and\n candidate.sdpMLineIndex\n are null, then this end-of-candidates\n indication applies to all media descriptions.", + "html": "If\n candidate.candidate\n is an empty string, process candidate as\n an end-of-candidates indication for the\n corresponding media description and ICE\n candidate generation. If both\n candidate.sdpMid and\n candidate.sdpMLineIndex\n are null, then this end-of-candidates\n indication applies to all media descriptions.", "rationale": "if", "steps": [ { @@ -1505,28 +1232,28 @@ "rationale": "if", "steps": [ { - "html": "

\n If\n connection.[[IsClosed]]\n is true, then abort these\n steps.\n

" + "html": "

\n If\n connection.[[IsClosed]]\n is true, then abort these\n steps.\n

" }, { - "html": "

\n Reject p with a newly created OperationError and\n abort these steps.\n

" + "html": "

\n Reject p with a newly created OperationError and\n abort these steps.\n

" } ] }, { - "html": "If candidate is applied\n successfully, or if the candidate was administratively prohibited the user agent\n MUST queue a task that runs the following\n steps:", + "html": "If candidate is applied\n successfully, or if the candidate was administratively prohibited the user agent\n MUST queue a task that runs the following\n steps:", "rationale": "if", "steps": [ { - "html": "

\n If\n connection.[[IsClosed]]\n is true, then abort these\n steps.\n

" + "html": "

\n If\n connection.[[IsClosed]]\n is true, then abort these\n steps.\n

" }, { - "html": "

\n If\n connection.[[PendingRemoteDescription]]\n is not null, and represents\n the ICE generation for which\n candidate was processed, add\n candidate to\n connection.[[PendingRemoteDescription]].sdp.\n

" + "html": "

\n If\n connection.[[PendingRemoteDescription]]\n is not null, and represents\n the ICE generation for which\n candidate was processed, add\n candidate to\n connection.[[PendingRemoteDescription]].sdp.\n

" }, { - "html": "

\n If\n connection.[[CurrentRemoteDescription]]\n is not null, and represents\n the ICE generation for which\n candidate was processed, add\n candidate to\n connection.[[CurrentRemoteDescription]].sdp.\n

" + "html": "

\n If\n connection.[[CurrentRemoteDescription]]\n is not null, and represents\n the ICE generation for which\n candidate was processed, add\n candidate to\n connection.[[CurrentRemoteDescription]].sdp.\n

" }, { - "html": "

\n Resolve p with\n undefined.\n

" + "html": "

\n Resolve p with\n undefined.\n

" } ] } @@ -1546,94 +1273,94 @@ "rationale": ".algorithm", "steps": [ { - "html": "

\n Let connection be the RTCPeerConnection\n on which the method was invoked.\n

" + "html": "

\n Let connection be the RTCPeerConnection\n on which the method was invoked.\n

" }, { - "html": "

\n Empty\n connection.[[LocalIceCredentialsToReplace]],\n and populate it with all ICE credentials (ice-ufrag and\n ice-pwd as defined in section 15.4 of [RFC5245]) found\n in\n connection.[[CurrentLocalDescription]],\n as well as all ICE credentials found in\n connection.[[PendingLocalDescription]].\n

" + "html": "

\n Empty\n connection.[[LocalIceCredentialsToReplace]],\n and populate it with all ICE credentials (ice-ufrag and\n ice-pwd as defined in section 15.4 of [RFC5245]) found\n in\n connection.[[CurrentLocalDescription]],\n as well as all ICE credentials found in\n connection.[[PendingLocalDescription]].\n

" }, { - "html": "

\n Update the negotiation-needed flag for\n connection.\n

" + "html": "

\n Update the negotiation-needed flag for\n connection.\n

" } ] }, { "name": "RTCPeerConnection/setConfiguration()", "href": "https://www.w3.org/TR/webrtc/#dom-rtcpeerconnection-setconfiguration", - "html": "When the setConfiguration method is invoked, the user\n agent MUST run the following steps:", + "html": "When the setConfiguration method is invoked, the user\n agent MUST run the following steps:", "rationale": ".algorithm", "steps": [ { - "html": "

\n Let connection be the RTCPeerConnection\n on which the method was invoked.\n

" + "html": "

\n Let connection be the RTCPeerConnection\n on which the method was invoked.\n

" }, { - "html": "

\n If connection.[[IsClosed]] is\n true, throw an\n InvalidStateError.\n

" + "html": "

\n If connection.[[IsClosed]] is\n true, throw an\n InvalidStateError.\n

" }, { - "html": "

\n Set the configuration specified by\n configuration.\n

" + "html": "

\n Set the configuration specified by\n configuration.\n

" } ] }, { "name": "RTCPeerConnection/close()", "href": "https://www.w3.org/TR/webrtc/#dom-rtcpeerconnection-close", - "html": "When the close method is invoked, the user agent MUST\n run the following steps:", + "html": "When the close method is invoked, the user agent MUST\n run the following steps:", "rationale": ".algorithm", "steps": [ { - "html": "

\n Let connection be the RTCPeerConnection\n object on which the method was invoked.\n

" + "html": "

\n Let connection be the RTCPeerConnection\n object on which the method was invoked.\n

" }, { - "html": "close the connection with\n connection and the value false." + "html": "close the connection with\n connection and the value false." } ] }, { "name": "close the connection", "href": "https://www.w3.org/TR/webrtc/#dfn-close-the-connection", - "html": "The close the connection algorithm given a\n connection and a disappear boolean,\n is as follows:", + "html": "The close the connection algorithm given a\n connection and a disappear boolean,\n is as follows:", "rationale": ".algorithm", "steps": [ { - "html": "

\n If connection.[[IsClosed]] is\n true, abort these steps.\n

" + "html": "

\n If connection.[[IsClosed]] is\n true, abort these steps.\n

" }, { - "html": "

\n Set connection.[[IsClosed]] to\n true.\n

" + "html": "

\n Set connection.[[IsClosed]] to\n true.\n

" }, { - "html": "

\n Set connection's signaling state to\n \"closed\". This does not fire any\n event.\n

" + "html": "

\n Set connection.[[SignalingState]] to\n \"closed\". This does not fire any\n event.\n

" }, { - "html": "Let transceivers be the result of executing\n the CollectTransceivers algorithm. For every\n RTCRtpTransceiver transceiver in\n transceivers, run the following steps:", + "html": "Let transceivers be the result of executing\n the CollectTransceivers algorithm. For every\n RTCRtpTransceiver transceiver in\n transceivers, run the following steps:", "rationale": "if", "steps": [ { - "html": "

\n If transceiver.[[Stopped]] is\n true, abort these sub steps.\n

" + "html": "

\n If transceiver.[[Stopped]] is\n true, abort these sub steps.\n

" }, { - "html": "

\n Stop the RTCRtpTransceiver with\n transceiver and disappear.\n

" + "html": "

\n Stop the RTCRtpTransceiver with\n transceiver and disappear.\n

" } ] }, { - "html": "

\n Set the [[ReadyState]] slot of each of\n connection's RTCDataChannels to\n \"closed\".\n

" + "html": "

\n Set the [[ReadyState]] slot of each of\n connection's RTCDataChannels to\n \"closed\".\n

" }, { - "html": "

\n If connection.[[SctpTransport]] is\n not null, tear down the underlying SCTP\n association by sending an SCTP ABORT chunk and set the\n [[SctpTransportState]] to\n \"closed\".\n

" + "html": "

\n If connection.[[SctpTransport]] is\n not null, tear down the underlying SCTP\n association by sending an SCTP ABORT chunk and set the\n [[SctpTransportState]] to\n \"closed\".\n

" }, { - "html": "

\n Set the [[DtlsTransportState]] slot of each of\n connection's RTCDtlsTransports to\n \"closed\".\n

" + "html": "

\n Set the [[DtlsTransportState]] slot of each of\n connection's RTCDtlsTransports to\n \"closed\".\n

" }, { - "html": "

\n Destroy connection's ICE Agent,\n abruptly ending any active ICE processing and releasing\n any relevant resources (e.g. TURN permissions).\n

" + "html": "

\n Destroy connection's ICE Agent,\n abruptly ending any active ICE processing and releasing\n any relevant resources (e.g. TURN permissions).\n

" }, { - "html": "

\n Set the [[IceTransportState]] slot of each of\n connection's RTCIceTransports to\n \"closed\".\n

" + "html": "

\n Set the [[IceTransportState]] slot of each of\n connection's RTCIceTransports to\n \"closed\".\n

" }, { - "html": "

\n Set connection's ICE connection state\n to \"closed\". This does not\n fire any event.\n

" + "html": "

\n Set\n connection.[[IceConnectionState]]\n to \"closed\". This does not\n fire any event.\n

" }, { - "html": "

\n Set connection's connection state to\n \"closed\". This does not fire\n any event.\n

" + "html": "

\n Set connection.[[ConnectionState]] to\n \"closed\". This does not fire\n any event.\n

" } ] }, @@ -1653,16 +1380,16 @@ "html": "

\n Let options be the callback indicated by\n the method's third argument.\n

" }, { - "html": "

\n Run the steps specified by RTCPeerConnection's\n createOffer() method with\n options as the sole argument, and let\n p be the resulting promise.\n

" + "html": "

\n Run the steps specified by RTCPeerConnection's\n createOffer() method with\n options as the sole argument, and let\n p be the resulting promise.\n

" }, { - "html": "

\n Upon fulfillment of p with value\n offer, invoke successCallback\n with offer as the argument.\n

" + "html": "

\n Upon fulfillment of p with value\n offer, invoke successCallback\n with offer as the argument.\n

" }, { - "html": "

\n Upon rejection of p with reason\n r, invoke failureCallback with\n r as the argument.\n

" + "html": "

\n Upon rejection of p with reason\n r, invoke failureCallback with\n r as the argument.\n

" }, { - "html": "

\n Return a promise resolved with\n undefined.\n

" + "html": "

\n Return a promise resolved with\n undefined.\n

" } ] }, @@ -1682,16 +1409,16 @@ "html": "

\n Let failureCallback be the callback\n indicated by the method's third argument.\n

" }, { - "html": "

\n Run the steps specified by RTCPeerConnection's\n setLocalDescription method with\n description as the sole argument, and let\n p be the resulting promise.\n

" + "html": "

\n Run the steps specified by RTCPeerConnection's\n setLocalDescription method with\n description as the sole argument, and let\n p be the resulting promise.\n

" }, { - "html": "

\n Upon fulfillment of p, invoke\n successCallback with\n undefined as the argument.\n

" + "html": "

\n Upon fulfillment of p, invoke\n successCallback with\n undefined as the argument.\n

" }, { - "html": "

\n Upon rejection of p with reason\n r, invoke failureCallback with\n r as the argument.\n

" + "html": "

\n Upon rejection of p with reason\n r, invoke failureCallback with\n r as the argument.\n

" }, { - "html": "

\n Return a promise resolved with\n undefined.\n

" + "html": "

\n Return a promise resolved with\n undefined.\n

" } ] }, @@ -1708,16 +1435,16 @@ "html": "

\n Let failureCallback be the callback\n indicated by the method's second argument.\n

" }, { - "html": "

\n Run the steps specified by RTCPeerConnection's\n createAnswer() method with no\n arguments, and let p be the resulting\n promise.\n

" + "html": "

\n Run the steps specified by RTCPeerConnection's\n createAnswer() method with no\n arguments, and let p be the resulting\n promise.\n

" }, { - "html": "

\n Upon fulfillment of p with value\n answer, invoke successCallback\n with answer as the argument.\n

" + "html": "

\n Upon fulfillment of p with value\n answer, invoke successCallback\n with answer as the argument.\n

" }, { - "html": "

\n Upon rejection of p with reason\n r, invoke failureCallback with\n r as the argument.\n

" + "html": "

\n Upon rejection of p with reason\n r, invoke failureCallback with\n r as the argument.\n

" }, { - "html": "

\n Return a promise resolved with\n undefined.\n

" + "html": "

\n Return a promise resolved with\n undefined.\n

" } ] }, @@ -1737,16 +1464,16 @@ "html": "

\n Let failureCallback be the callback\n indicated by the method's third argument.\n

" }, { - "html": "

\n Run the steps specified by RTCPeerConnection's\n setRemoteDescription method\n with description as the sole argument, and\n let p be the resulting promise.\n

" + "html": "

\n Run the steps specified by RTCPeerConnection's\n setRemoteDescription method\n with description as the sole argument, and\n let p be the resulting promise.\n

" }, { - "html": "

\n Upon fulfillment of p, invoke\n successCallback with\n undefined as the argument.\n

" + "html": "

\n Upon fulfillment of p, invoke\n successCallback with\n undefined as the argument.\n

" }, { - "html": "

\n Upon rejection of p with reason\n r, invoke failureCallback with\n r as the argument.\n

" + "html": "

\n Upon rejection of p with reason\n r, invoke failureCallback with\n r as the argument.\n

" }, { - "html": "

\n Return a promise resolved with\n undefined.\n

" + "html": "

\n Return a promise resolved with\n undefined.\n

" } ] }, @@ -1766,97 +1493,97 @@ "html": "

\n Let failureCallback be the callback\n indicated by the method's third argument.\n

" }, { - "html": "

\n Run the steps specified by RTCPeerConnection's\n addIceCandidate() method with\n candidate as the sole argument, and let\n p be the resulting promise.\n

" + "html": "

\n Run the steps specified by RTCPeerConnection's\n addIceCandidate() method with\n candidate as the sole argument, and let\n p be the resulting promise.\n

" }, { - "html": "

\n Upon fulfillment of p, invoke\n successCallback with\n undefined as the argument.\n

" + "html": "

\n Upon fulfillment of p, invoke\n successCallback with\n undefined as the argument.\n

" }, { - "html": "

\n Upon rejection of p with reason\n r, invoke failureCallback with\n r as the argument.\n

" + "html": "

\n Upon rejection of p with reason\n r, invoke failureCallback with\n r as the argument.\n

" }, { - "html": "

\n Return a promise resolved with\n undefined.\n

" + "html": "

\n Return a promise resolved with\n undefined.\n

" } ] }, { - "html": "When createOffer is called with any of the\n legacy options specified in this section, run the followings\n steps instead of the regular createOffer\n steps:", + "html": "When createOffer is called with any of the\n legacy options specified in this section, run the followings\n steps instead of the regular createOffer\n steps:", "rationale": ".algorithm", "steps": [ { "html": "

\n Let options be the methods first argument.\n

" }, { - "html": "

\n Let connection be the current\n RTCPeerConnection object.\n

" + "html": "

\n Let connection be the current\n RTCPeerConnection object.\n

" }, { "html": "For each offerToReceive<Kind>\n member in options with kind, kind, run\n the following steps:", - "rationale": "if", + "rationale": ".algorithm", "steps": [ { "html": "If the value of the dictionary member is false,", "rationale": "for", "steps": [ { - "html": "

\n For each non-stopped\n \"sendrecv\" transceiver\n of transceiver kind kind, set\n transceiver.[[Direction]] to\n \"sendonly\".\n

" + "html": "

\n For each non-stopped\n \"sendrecv\" transceiver\n of transceiver kind kind, set\n transceiver.[[Direction]] to\n \"sendonly\".\n

" }, { - "html": "

\n For each non-stopped\n \"recvonly\" transceiver\n of transceiver kind kind, set\n transceiver.[[Direction]] to\n \"inactive\".\n

" + "html": "

\n For each non-stopped\n \"recvonly\" transceiver\n of transceiver kind kind, set\n transceiver.[[Direction]] to\n \"inactive\".\n

" } ] }, { - "html": "

\n If connection has any non-stopped\n \"sendrecv\" or\n \"recvonly\" transceivers of\n transceiver kind kind, continue with the\n next option, if any.\n

" + "html": "

\n If connection has any non-stopped\n \"sendrecv\" or\n \"recvonly\" transceivers of\n transceiver kind kind, continue with the\n next option, if any.\n

" }, { - "html": "

\n Let transceiver be the result of invoking the\n equivalent of\n connection.addTransceiver(kind),\n except that this operation MUST NOT update the negotiation-needed flag.\n

" + "html": "

\n Let transceiver be the result of invoking the\n equivalent of\n connection.addTransceiver(kind),\n except that this operation MUST NOT update the negotiation-needed flag.\n

" }, { "html": "

\n If transceiver is unset because the previous\n operation threw an error, abort these steps.\n

" }, { - "html": "

\n Set transceiver.[[Direction]] to\n \"recvonly\".\n

" + "html": "

\n Set transceiver.[[Direction]] to\n \"recvonly\".\n

" } ] }, { - "html": "

\n Run the steps specified by createOffer\n to create the offer.\n

" + "html": "

\n Run the steps specified by createOffer\n to create the offer.\n

" } ] }, { "name": "clear the negotiation-needed flag", "href": "https://www.w3.org/TR/webrtc/#dfn-clear-the-negotiation-needed-flag", - "html": "To update the negotiation-needed flag for\n connection, run the following steps:", + "html": "To update the negotiation-needed flag for\n connection, run the following steps:", "rationale": ".algorithm", "steps": [ { - "html": "

\n If the length of connection.[[Operations]]\n is not 0, then set\n connection.[[UpdateNegotiationNeededFlagOnEmptyChain]]\n to true, and abort these steps.\n

" + "html": "

\n If the length of connection.[[Operations]]\n is not 0, then set\n connection.[[UpdateNegotiationNeededFlagOnEmptyChain]]\n to true, and abort these steps.\n

" }, { "html": "Queue a task to run the following steps:", "rationale": "if", "steps": [ { - "html": "

\n If connection.[[IsClosed]] is\n true, abort these steps.\n

" + "html": "

\n If connection.[[IsClosed]] is\n true, abort these steps.\n

" }, { - "html": "

\n If the length of\n connection.[[Operations]] is not\n 0, then set\n connection.[[UpdateNegotiationNeededFlagOnEmptyChain]]\n to true, and abort these steps.\n

" + "html": "

\n If the length of\n connection.[[Operations]] is not\n 0, then set\n connection.[[UpdateNegotiationNeededFlagOnEmptyChain]]\n to true, and abort these steps.\n

" }, { - "html": "

\n If connection's signaling state is not\n \"stable\", abort these steps.\n

" + "html": "

\n If connection.[[SignalingState]] is not\n \"stable\", abort these steps.\n

" }, { - "html": "

\n If the result of checking if negotiation is needed is false,\n clear the negotiation-needed flag by setting\n connection.[[NegotiationNeeded]] to\n false, and abort these steps.\n

" + "html": "

\n If the result of checking if negotiation is needed is false,\n clear the negotiation-needed flag by setting\n connection.[[NegotiationNeeded]] to\n false, and abort these steps.\n

" }, { - "html": "

\n If connection.[[NegotiationNeeded]] is\n already true, abort these steps.\n

" + "html": "

\n If connection.[[NegotiationNeeded]] is\n already true, abort these steps.\n

" }, { - "html": "

\n Set connection.[[NegotiationNeeded]] to\n true.\n

" + "html": "

\n Set connection.[[NegotiationNeeded]] to\n true.\n

" }, { - "html": "

\n Fire an event named negotiationneeded at\n connection.\n

" + "html": "

\n Fire an event named negotiationneeded at\n connection.\n

" } ] } @@ -1865,48 +1592,48 @@ { "name": "check if negotiation is needed", "href": "https://www.w3.org/TR/webrtc/#dfn-check-if-negotiation-is-needed", - "html": "To check if negotiation is needed for\n connection, perform the following checks:", + "html": "To check if negotiation is needed for\n connection, perform the following checks:", "rationale": ".algorithm", "steps": [ { "html": "

\n If any implementation-specific negotiation is required, as\n described at the start of this section, return\n true.\n

" }, { - "html": "

\n If\n connection.[[LocalIceCredentialsToReplace]]\n is not empty, return true.\n

" + "html": "

\n If\n connection.[[LocalIceCredentialsToReplace]]\n is not empty, return true.\n

" }, { - "html": "

\n Let description be\n connection.[[CurrentLocalDescription]].\n

" + "html": "

\n Let description be\n connection.[[CurrentLocalDescription]].\n

" }, { - "html": "

\n If connection has created any RTCDataChannels,\n and no m= section in description has been negotiated\n yet for data, return true.\n

" + "html": "

\n If connection has created any RTCDataChannels,\n and no m= section in description has been negotiated\n yet for data, return true.\n

" }, { - "html": "For each transceiver in connection's set of transceivers, perform the following checks:", + "html": "For each transceiver in connection's set of transceivers, perform the following checks:", "rationale": "if", "steps": [ { - "html": "

\n If transceiver.[[Stopping]] is\n true and\n transceiver.[[Stopped]] is\n false, return true.\n

" + "html": "

\n If transceiver.[[Stopping]] is\n true and\n transceiver.[[Stopped]] is\n false, return true.\n

" }, { - "html": "

\n If transceiver isn't stopped and isn't yet associated with an m= section\n in description, return true.\n

" + "html": "

\n If transceiver isn't stopped and isn't yet associated with an m= section\n in description, return true.\n

" }, { - "html": "If transceiver isn't stopped and is associated with an m= section in\n description then perform the following checks:", + "html": "If transceiver isn't stopped and is associated with an m= section in\n description then perform the following checks:", "rationale": "if", "steps": [ { - "html": "

\n If transceiver.[[Direction]] is\n \"sendrecv\" or\n \"sendonly\", and the associated m= section in description\n either doesn't contain a single a=msid line, or the number of MSIDs from\n the a=msid lines in this\n m= section, or the MSID values\n themselves, differ from what is in\n transceiver.sender.[[AssociatedMediaStreamIds]],\n return true.\n

" + "html": "

\n If transceiver.[[Direction]] is\n \"sendrecv\" or\n \"sendonly\", and the associated m= section in description\n either doesn't contain a single a=msid line, or the number of MSIDs from\n the a=msid lines in this\n m= section, or the MSID values\n themselves, differ from what is in\n transceiver.sender.[[AssociatedMediaStreamIds]],\n return true.\n

" }, { - "html": "

\n If description is of type\n \"offer\", and the direction of the associated m= section in neither\n connection.[[CurrentLocalDescription]]\n nor\n connection.[[CurrentRemoteDescription]]\n matches transceiver.[[Direction]],\n return true. In this step, when the\n direction is compared with a direction found in\n [[CurrentRemoteDescription]], the description's\n direction must be reversed to represent the peer's\n point of view.\n

" + "html": "

\n If description is of type\n \"offer\", and the direction of the associated m= section in neither\n connection.[[CurrentLocalDescription]]\n nor\n connection.[[CurrentRemoteDescription]]\n matches transceiver.[[Direction]],\n return true. In this step, when the\n direction is compared with a direction found in\n [[CurrentRemoteDescription]], the description's\n direction must be reversed to represent the peer's\n point of view.\n

" }, { - "html": "

\n If description is of type\n \"answer\", and the direction of the associated m= section in the description\n does not match\n transceiver.[[Direction]]\n intersected with the offered direction (as described in\n [RFC8829] (section 5.3.1.)),\n return true.\n

" + "html": "

\n If description is of type\n \"answer\", and the direction of the associated m= section in the description\n does not match\n transceiver.[[Direction]]\n intersected with the offered direction (as described in\n [RFC9429] (section 5.3.1.)),\n return true.\n

" } ] }, { - "html": "

\n If transceiver is stopped\n and is associated with an m= section, but the\n associated m= section is not yet rejected in\n connection.[[CurrentLocalDescription]]\n or\n connection.[[CurrentRemoteDescription]],\n return true.\n

" + "html": "

\n If transceiver is stopped\n and is associated with an m= section, but the\n associated m= section is not yet rejected in\n connection.[[CurrentLocalDescription]]\n or\n connection.[[CurrentRemoteDescription]],\n return true.\n

" } ] }, @@ -1919,40 +1646,40 @@ "name": "RTCIceCandidate/constructor()", "href": "https://www.w3.org/TR/webrtc/#dom-rtcicecandidate-constructor", "html": "When invoked, run the following steps:", - "rationale": "if", + "rationale": ".algorithm", "steps": [ { - "html": "If both\n the sdpMid and\n sdpMLineIndex members of\n candidateInitDict are null, throw a TypeError." + "html": "If both\n the sdpMid and\n sdpMLineIndex members of\n candidateInitDict are null, throw a TypeError." }, { - "html": "

\n Return the result of creating an RTCIceCandidate\n with candidateInitDict.\n

" + "html": "

\n Return the result of creating an RTCIceCandidate\n with candidateInitDict.\n

" } ] }, { "name": "creating an RTCIceCandidate", "href": "https://www.w3.org/TR/webrtc/#dfn-creating-an-rtcicecandidate", - "html": "To create an\n RTCIceCandidate with a candidateInitDict\n dictionary, run the following steps:", + "html": "To create an\n RTCIceCandidate with a candidateInitDict\n dictionary, run the following steps:", "rationale": "let", "steps": [ { - "html": "Let iceCandidate be a newly created\n RTCIceCandidate object." + "html": "Let iceCandidate be a newly created\n RTCIceCandidate object." }, { - "html": "Create internal slots for the following attributes of\n iceCandidate, initilized to null:\n foundation, component, priority, address,\n protocol, port, type, tcpType,\n relatedAddress, and relatedPort." + "html": "Create internal slots for the following attributes of\n iceCandidate, initilized to null:\n foundation, component, priority, address,\n protocol, port, type, tcpType,\n relatedAddress, and relatedPort." }, { - "html": "Create internal slots for the following attributes of\n iceCandidate, initilized to their namesakes in\n candidateInitDict: candidate, sdpMid,\n sdpMLineIndex, usernameFragment." + "html": "Create internal slots for the following attributes of\n iceCandidate, initilized to their namesakes in\n candidateInitDict: candidate, sdpMid,\n sdpMLineIndex, usernameFragment." }, { - "html": "Let candidate be the\n candidate dictionary member of\n candidateInitDict. If candidate is\n not an empty string, run the following steps:", + "html": "Let candidate be the\n candidate dictionary member of\n candidateInitDict. If candidate is\n not an empty string, run the following steps:", "rationale": "parse", "steps": [ { - "html": "Parse candidate using the candidate-attribute grammar." + "html": "Parse candidate using the candidate-attribute grammar." }, { - "html": "If parsing of candidate-attribute has failed,\n abort these steps." + "html": "If parsing of candidate-attribute has failed,\n abort these steps." }, { "html": "If any field in the parse result represents an\n invalid value for the corresponding attribute in \n iceCandidate, abort these steps." @@ -1970,18 +1697,18 @@ { "name": "RTCIceCandidate/toJSON()", "href": "https://www.w3.org/TR/webrtc/#dom-rtcicecandidate-tojson", - "html": "To invoke the toJSON() operation of the\n RTCIceCandidate interface, run the following steps:", + "html": "To invoke the toJSON() operation of the\n RTCIceCandidate interface, run the following steps:", "rationale": ".algorithm", "steps": [ { - "html": "Let json be a new\n RTCIceCandidateInit dictionary." + "html": "Let json be a new\n RTCIceCandidateInit dictionary." }, { - "html": "For each attribute identifier\n attr in «candidate, sdpMid,\n sdpMLineIndex, usernameFragment»:", + "html": "For each attribute identifier\n attr in «candidate, sdpMid,\n sdpMLineIndex, usernameFragment»:", "rationale": "let", "steps": [ { - "html": "Let value be the result of getting the\n underlying value of the attribute identified by\n attr, given this RTCIceCandidate object." + "html": "Let value be the result of getting the\n underlying value of the attribute identified by\n attr, given this RTCIceCandidate object." }, { "html": "Set json[attr]\n to value." @@ -2000,7 +1727,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "

\n Let keygenAlgorithm be the first argument to\n generateCertificate.\n

" + "html": "

\n Let keygenAlgorithm be the first argument to\n generateCertificate.\n

" }, { "html": "

\n Let expires be a value of\n 2592000000 (30*24*60*60*1000)\n

" @@ -2010,13 +1737,13 @@ "rationale": "let", "steps": [ { - "html": "

\n Let certificateExpiration be the result of\n converting\n the ECMAScript object represented by\n keygenAlgorithm to an\n RTCCertificateExpiration dictionary.\n

" + "html": "

\n Let certificateExpiration be the result of\n converting\n the ECMAScript object represented by\n keygenAlgorithm to an\n RTCCertificateExpiration dictionary.\n

" }, { - "html": "

\n If the conversion fails with an error,\n return a promise that is rejected with\n error.\n

" + "html": "

\n If the conversion fails with an error,\n return a promise that is rejected with\n error.\n

" }, { - "html": "

\n If\n certificateExpiration.expires\n is not undefined, set expires\n to\n certificateExpiration.expires.\n

" + "html": "

\n If\n certificateExpiration.expires\n is not undefined, set expires\n to\n certificateExpiration.expires.\n

" }, { "html": "

\n If expires is greater than 31536000000,\n set expires to 31536000000.\n

\n \n

\n A user agent MAY further cap the value of\n expires.\n

" @@ -2024,19 +1751,19 @@ ] }, { - "html": "

\n Let normalizedKeygenAlgorithm be the result of\n normalizing an\n algorithm with an operation name of generateKey\n and a supportedAlgorithms\n value specific to production of certificates for\n RTCPeerConnection.\n

" + "html": "

\n Let normalizedKeygenAlgorithm be the result of\n normalizing an\n algorithm with an operation name of generateKey\n and a supportedAlgorithms\n value specific to production of certificates for\n RTCPeerConnection.\n

" }, { - "html": "

\n If the above normalization step fails with an\n error, return a promise that is rejected\n with error.\n

" + "html": "

\n If the above normalization step fails with an\n error, return a promise that is rejected\n with error.\n

" }, { - "html": "

\n If the normalizedKeygenAlgorithm parameter\n identifies an algorithm that the user agent cannot\n or will not use to generate a certificate for\n RTCPeerConnection, return a promise that is rejected with a DOMException of type\n NotSupportedError. In particular,\n normalizedKeygenAlgorithm MUST be an\n asymmetric algorithm that can be used to produce a\n signature used to authenticate DTLS connections.\n

" + "html": "

\n If the normalizedKeygenAlgorithm parameter\n identifies an algorithm that the user agent cannot\n or will not use to generate a certificate for\n RTCPeerConnection, return a promise that is rejected with a DOMException of type\n NotSupportedError. In particular,\n normalizedKeygenAlgorithm MUST be an\n asymmetric algorithm that can be used to produce a\n signature used to authenticate DTLS connections.\n

" }, { "html": "

\n Let p be a new promise.\n

" }, { - "html": "Run the following steps in parallel:", + "html": "Run the following steps in parallel:", "rationale": "perform", "steps": [ { @@ -2046,22 +1773,22 @@ "html": "

\n Let generatedKeyingMaterial and\n generatedKeyCertificate be the private\n keying material and certificate generated by the\n above step.\n

" }, { - "html": "

\n Let certificate be a new\n RTCCertificate object.\n

" + "html": "

\n Let certificate be a new\n RTCCertificate object.\n

" }, { "html": "

\n Set certificate.[[Expires]] to the\n current time plus expires value.\n

" }, { - "html": "

\n Set certificate.[[Origin]] to the\n relevant settings object's\n origin.\n

" + "html": "

\n Set certificate.[[Origin]] to the\n relevant settings object's\n origin.\n

" }, { "html": "

\n Store the generatedKeyingMaterial in a\n secure module, and let handle be a\n reference identifier to it.\n

" }, { - "html": "

\n Set certificate.[[KeyingMaterialHandle]]\n to handle.\n

" + "html": "

\n Set certificate.[[KeyingMaterialHandle]]\n to handle.\n

" }, { - "html": "

\n Set certificate.[[Certificate]] to\n generatedCertificate.\n

" + "html": "

\n Set certificate.[[Certificate]] to\n generatedCertificate.\n

" }, { "html": "

\n Resolve p with certificate.\n

" @@ -2074,85 +1801,49 @@ ] }, { - "html": "RTCCertificate objects are serializable objects\n [HTML]. Their serialization steps, given value\n and serialized, are:", - "rationale": "set", - "steps": [ - { - "html": "Set serialized.[[Expires]] to the value of\n value.expires attribute." - }, - { - "html": "Set serialized.[[Certificate]] to a copy of the\n unstructured binary data in\n value.[[Certificate]]." - }, - { - "html": "Set serialized.[[Origin]] to a copy of the\n unstructured binary data in value.[[Origin]]." - }, - { - "html": "Set serialized.[[KeyingMaterialHandle]] to a\n serialization of the handle in\n value.[[KeyingMaterialHandle]] (not the private\n keying material itself)." - } - ] - }, - { - "html": "Their deserialization steps, given serialized and\n value, are:", - "rationale": "initialize", - "steps": [ - { - "html": "Initialize value.expires\n attribute to contain serialized.[[Expires]]." - }, - { - "html": "Set value.[[Certificate]] to a copy of \n serialized.[[Certificate]]." - }, - { - "html": "Set value.[[Origin]] to a copy of\n serialized.[[Origin]]." - }, - { - "html": "Set value.[[KeyingMaterialHandle]] to the\n private keying material handle resulting from deserializing\n serialized.[[KeyingMaterialHandle]]." - } - ] - }, - { - "html": "RTCCertificate objects are serializable objects\n [HTML]. Their serialization steps, given value\n and serialized, are:", + "html": "RTCCertificate objects are serializable objects\n [HTML]. Their serialization steps, given value\n and serialized, are:", "rationale": ".algorithm", "steps": [ { - "html": "Set serialized.[[Expires]] to the value of\n value.expires attribute." + "html": "Set serialized.[[Expires]] to the value of\n value.expires attribute." }, { - "html": "Set serialized.[[Certificate]] to a copy of the\n unstructured binary data in\n value.[[Certificate]]." + "html": "Set serialized.[[Certificate]] to a copy of the\n unstructured binary data in\n value.[[Certificate]]." }, { - "html": "Set serialized.[[Origin]] to a copy of the\n unstructured binary data in value.[[Origin]]." + "html": "Set serialized.[[Origin]] to a copy of the\n unstructured binary data in value.[[Origin]]." }, { - "html": "Set serialized.[[KeyingMaterialHandle]] to a\n serialization of the handle in\n value.[[KeyingMaterialHandle]] (not the private\n keying material itself)." + "html": "Set serialized.[[KeyingMaterialHandle]] to a\n serialization of the handle in\n value.[[KeyingMaterialHandle]] (not the private\n keying material itself)." } ] }, { - "html": "Their deserialization steps, given serialized and\n value, are:", + "html": "Their deserialization steps, given serialized and\n value, are:", "rationale": ".algorithm", "steps": [ { - "html": "Initialize value.expires\n attribute to contain serialized.[[Expires]]." + "html": "Initialize value.expires\n attribute to contain serialized.[[Expires]]." }, { - "html": "Set value.[[Certificate]] to a copy of \n serialized.[[Certificate]]" + "html": "Set value.[[Certificate]] to a copy of \n serialized.[[Certificate]]." }, { - "html": "Set value.[[Origin]] to a copy of\n serialized.[[Origin]]" + "html": "Set value.[[Origin]] to a copy of\n serialized.[[Origin]]." }, { - "html": "Set value.[[KeyingMaterialHandle]] to the\n private keying material handle resulting from deserializing\n serialized.[[KeyingMaterialHandle]]" + "html": "Set value.[[KeyingMaterialHandle]] to the\n private keying material handle resulting from deserializing\n serialized.[[KeyingMaterialHandle]]." } ] }, { "name": "CollectSenders", "href": "https://www.w3.org/TR/webrtc/#dfn-collectsenders", - "html": "We define the CollectSenders algorithm as follows:", + "html": "We define the CollectSenders algorithm as follows:", "rationale": ".algorithm", "steps": [ { - "html": "Let\n transceivers be the result of executing the\n CollectTransceivers algorithm." + "html": "Let\n transceivers be the result of executing the\n CollectTransceivers algorithm." }, { "html": "Let\n senders be a new empty sequence." @@ -2162,7 +1853,7 @@ "rationale": "if", "steps": [ { - "html": "If\n transceiver.[[Stopped]] is\n false, add\n transceiver.[[Sender]] to\n senders." + "html": "If\n transceiver.[[Stopped]] is\n false, add\n transceiver.[[Sender]] to\n senders." } ] }, @@ -2174,11 +1865,11 @@ { "name": "RTCPeerConnection/getReceivers()", "href": "https://www.w3.org/TR/webrtc/#dom-peerconnection-getreceivers", - "html": "When the getReceivers method is invoked, the user agent\n MUST run the following steps:", + "html": "When the getReceivers method is invoked, the user agent\n MUST run the following steps:", "rationale": ".algorithm", "steps": [ { - "html": "Let\n transceivers be the result of executing the\n CollectTransceivers algorithm." + "html": "Let\n transceivers be the result of executing the\n CollectTransceivers algorithm." }, { "html": "Let\n receivers be a new empty sequence." @@ -2188,7 +1879,7 @@ "rationale": "if", "steps": [ { - "html": "If transceiver.[[Stopped]] is\n false, add\n transceiver.[[Receiver]] to\n receivers." + "html": "If transceiver.[[Stopped]] is\n false, add\n transceiver.[[Receiver]] to\n receivers." } ] }, @@ -2200,11 +1891,11 @@ { "name": "CollectTransceivers", "href": "https://www.w3.org/TR/webrtc/#dfn-collecttransceivers", - "html": "We define the CollectTransceivers algorithm as\n follows:", + "html": "We define the CollectTransceivers algorithm as\n follows:", "rationale": ".algorithm", "steps": [ { - "html": "Let\n transceivers be a new sequence consisting of all\n RTCRtpTransceiver objects in this RTCPeerConnection\n object's set of transceivers, in insertion order." + "html": "Let\n transceivers be a new sequence consisting of all\n RTCRtpTransceiver objects in this RTCPeerConnection\n object's set of transceivers, in insertion order." }, { "html": "Return transceivers." @@ -2214,51 +1905,51 @@ { "name": "RTCPeerConnection/addTrack()", "href": "https://www.w3.org/TR/webrtc/#dom-rtcpeerconnection-addtrack", - "html": "When the addTrack method is invoked, the user agent MUST\n run the following steps:", + "html": "When the addTrack method is invoked, the user agent MUST\n run the following steps:", "rationale": ".algorithm", "steps": [ { - "html": "

\n Let connection be the RTCPeerConnection\n object on which this method was invoked.\n

" + "html": "

\n Let connection be the RTCPeerConnection\n object on which this method was invoked.\n

" }, { - "html": "

\n Let track be the MediaStreamTrack object\n indicated by the method's first argument.\n

" + "html": "

\n Let track be the MediaStreamTrack object\n indicated by the method's first argument.\n

" }, { "html": "

\n Let kind be track.kind.\n

" }, { - "html": "

\n Let streams be a list of MediaStream\n objects constructed from the method's remaining\n arguments, or an empty list if the method was called with\n a single argument.\n

" + "html": "

\n Let streams be a list of MediaStream\n objects constructed from the method's remaining\n arguments, or an empty list if the method was called with\n a single argument.\n

" }, { - "html": "

\n If connection.[[IsClosed]] is\n true, throw an\n InvalidStateError.\n

" + "html": "

\n If connection.[[IsClosed]] is\n true, throw an\n InvalidStateError.\n

" }, { - "html": "

\n Let senders be the result of executing the\n CollectSenders algorithm. If an RTCRtpSender for\n track already exists in senders, throw an InvalidAccessError.\n

" + "html": "

\n Let senders be the result of executing the\n CollectSenders algorithm. If an RTCRtpSender for\n track already exists in senders, throw an InvalidAccessError.\n

" }, { - "html": "

\n The steps below describe how to determine if an existing\n sender can be reused. Doing so will cause future calls to\n createOffer and\n createAnswer to mark the\n corresponding media description as sendrecv or sendonly and add the MSID of the sender's\n streams, as defined in [RFC8829] (section 5.2.2. and section 5.3.2.).\n

\n

\n If any RTCRtpSender object in senders\n matches all the following criteria, let sender\n be that object, or null otherwise:\n

\n " + "html": "

\n The steps below describe how to determine if an existing\n sender can be reused. Doing so will cause future calls to\n createOffer and\n createAnswer to mark the\n corresponding media description as sendrecv or sendonly and add the MSID of the sender's\n streams, as defined in [RFC9429] (section 5.2.2. and section 5.3.2.).\n

\n

\n If any RTCRtpSender object in senders\n matches all the following criteria, let sender\n be that object, or null otherwise:\n

\n " }, { "html": "If sender is not null, run the\n following steps to use that sender:", "rationale": ".algorithm", "steps": [ { - "html": "

\n Set sender.[[SenderTrack]] to\n track.\n

" + "html": "

\n Set sender.[[SenderTrack]] to\n track.\n

" }, { - "html": "

\n Set\n sender.[[AssociatedMediaStreamIds]]\n to an empty set.\n

" + "html": "

\n Set\n sender.[[AssociatedMediaStreamIds]]\n to an empty set.\n

" }, { - "html": "

\n For each stream in streams, add\n stream.id to\n [[AssociatedMediaStreamIds]] if it's not\n already there.\n

" + "html": "

\n For each stream in streams, add\n stream.id to\n [[AssociatedMediaStreamIds]] if it's not\n already there.\n

" }, { - "html": "

\n Let transceiver be the\n RTCRtpTransceiver associated with\n sender.\n

" + "html": "

\n Let transceiver be the\n RTCRtpTransceiver associated with\n sender.\n

" }, { - "html": "

\n If transceiver.[[Direction]] is\n \"recvonly\", set\n transceiver.[[Direction]] to\n \"sendrecv\".\n

" + "html": "

\n If transceiver.[[Direction]] is\n \"recvonly\", set\n transceiver.[[Direction]] to\n \"sendrecv\".\n

" }, { - "html": "

\n If transceiver.[[Direction]] is\n \"inactive\", set\n transceiver.[[Direction]] to\n \"sendonly\".\n

" + "html": "

\n If transceiver.[[Direction]] is\n \"inactive\", set\n transceiver.[[Direction]] to\n \"sendonly\".\n

" } ] }, @@ -2273,18 +1964,18 @@ "html": "

\n Create an RTCRtpReceiver with kind,\n and let receiver be the result.\n

" }, { - "html": "

\n Create an RTCRtpTransceiver with\n sender, receiver and an\n RTCRtpTransceiverDirection value of\n \"sendrecv\", and let\n transceiver be the result.\n

" + "html": "

\n Create an RTCRtpTransceiver with\n sender, receiver and an\n RTCRtpTransceiverDirection value of\n \"sendrecv\", and let\n transceiver be the result.\n

" }, { - "html": "

\n Add transceiver to connection's\n set of transceivers.\n

" + "html": "

\n Add transceiver to connection's\n set of transceivers.\n

" } ] }, { - "html": "

\n A track could have contents that are inaccessible to the\n application. This can be due to anything that would make\n a track CORS\n cross-origin. These tracks can be supplied to the\n addTrack() method, and have an\n RTCRtpSender created for them, but content MUST NOT\n be transmitted. Silence (audio), black frames (video) or\n equivalently absent content is sent in place of track\n content.\n

\n

\n Note that this property can change over time.\n

" + "html": "

\n A track could have contents that are inaccessible to the\n application. This can be due to anything that would make\n a track CORS\n cross-origin. These tracks can be supplied to the\n addTrack() method, and have an\n RTCRtpSender created for them, but content MUST NOT\n be transmitted. Silence (audio), black frames (video) or\n equivalently absent content is sent in place of track\n content.\n

\n

\n Note that this property can change over time.\n

" }, { - "html": "

\n Update the negotiation-needed flag for\n connection.\n

" + "html": "

\n Update the negotiation-needed flag for\n connection.\n

" }, { "html": "

\n Return sender.\n

" @@ -2294,151 +1985,77 @@ { "name": "RTCPeerConnection/removeTrack()", "href": "https://www.w3.org/TR/webrtc/#dom-rtcpeerconnection-removetrack", - "html": "When the removeTrack method is invoked, the user agent\n MUST run the following steps:", + "html": "When the removeTrack method is invoked, the user agent\n MUST run the following steps:", "rationale": ".algorithm", "steps": [ { - "html": "

\n Let sender be the argument to removeTrack.\n

" - }, - { - "html": "

\n Let connection be the RTCPeerConnection\n object on which the method was invoked.\n

" - }, - { - "html": "

\n If connection.[[IsClosed]] is\n true, throw an\n InvalidStateError.\n

" - }, - { - "html": "

\n If sender was not created by\n connection, throw an\n InvalidAccessError.\n

" - }, - { - "html": "

\n Let senders be the result of executing the\n CollectSenders algorithm.\n

" - }, - { - "html": "

\n If sender is not in senders (which\n indicates its transceiver was stopped or removed due to\n setting a session description of\n type\n \"rollback\"), then abort these steps.\n

" - }, - { - "html": "

\n If sender.[[SenderTrack]] is null,\n abort these steps.\n

" - }, - { - "html": "

\n Set sender.[[SenderTrack]] to null.\n

" - }, - { - "html": "

\n Let transceiver be the RTCRtpTransceiver\n object corresponding to sender.\n

" - }, - { - "html": "

\n If transceiver.[[Direction]] is\n \"sendrecv\", set\n transceiver.[[Direction]] to\n \"recvonly\".\n

" - }, - { - "html": "

\n If transceiver.[[Direction]] is\n \"sendonly\", set\n transceiver.[[Direction]] to\n \"inactive\".\n

" - }, - { - "html": "

\n Update the negotiation-needed flag for\n connection.\n

" - } - ] - }, - { - "rationale": "let", - "steps": [ - { - "html": "

\n Let init be the second argument.\n

" + "html": "

\n Let sender be the argument to removeTrack.\n

" }, { - "html": "

\n Let streams be\n init.streams.\n

" + "html": "

\n Let connection be the RTCPeerConnection\n object on which the method was invoked.\n

" }, { - "html": "

\n Let sendEncodings be\n init.sendEncodings.\n

" + "html": "

\n If connection.[[IsClosed]] is\n true, throw an\n InvalidStateError.\n

" }, { - "html": "

\n Let direction be\n init.direction.\n

" + "html": "

\n If sender was not created by\n connection, throw an\n InvalidAccessError.\n

" }, { - "html": "If the first argument is a string, let it be\n kind and run the following steps:", - "rationale": "if", - "steps": [ - { - "html": "

\n If kind is not a legal\n MediaStreamTrack kind,\n throw a TypeError.\n

" - }, - { - "html": "

\n Let track be null.\n

" - } - ] + "html": "

\n Let transceiver be the RTCRtpTransceiver\n object corresponding to sender.\n

" }, { - "html": "

\n If the first argument is a MediaStreamTrack, let it\n be track and let kind be\n track.kind.\n

" + "html": "

\n If transceiver.[[Stopping]] is\n true, abort these steps.\n

" }, { - "html": "

\n If connection.[[IsClosed]] is\n true, throw an\n InvalidStateError.\n

" + "html": "

\n Let

\n Let senders be the result of executing the\n CollectSenders algorithm.\n

" }, { - "html": "Validate sendEncodings by running the\n following steps:", - "rationale": "verify", - "steps": [ - { - "html": "

\n Verify that each rid value\n in sendEncodings conforms to the grammar\n specified in Section 10 of [RFC8851]. If one of\n the RIDs does not meet these requirements, throw a TypeError.\n

" - }, - { - "html": "

\n If any RTCRtpEncodingParameters dictionary in\n sendEncodings contains a read-only\n parameter other than\n rid, throw\n an InvalidAccessError.\n

" - }, - { - "html": "

\n Verify that the value of each\n scaleResolutionDownBy\n member in sendEncodings that is defined\n is greater than or equal to 1.0. If one of the\n scaleResolutionDownBy\n values does not meet this requirement, throw a RangeError.\n

" - }, - { - "html": "

\n Let maxN be the maximum number of total\n simultaneous encodings the user agent may support for\n this kind, at minimum 1.This\n should be an optimistic number since the codec to be\n used is not known yet.\n

" - }, - { - "html": "

\n If sendEncodings contains any encoding\n whose\n scaleResolutionDownBy\n attribute is defined, set any undefined\n scaleResolutionDownBy of\n the other encodings to 1.0.\n

" - }, - { - "html": "

\n If the number of RTCRtpEncodingParameters stored\n in sendEncodings exceeds maxN,\n then trim sendEncodings from the tail\n until its length is maxN.\n

" - }, - { - "html": "If the\n scaleResolutionDownBy\n attribues of sendEncodings are still\n undefined, initialize each encoding's\n scaleResolutionDownBy to\n 2^(length of sendEncodings - encoding\n index - 1). This results in smaller-to-larger\n resolutions where the last encoding has no scaling\n applied to it, e.g. 4:2:1 if the length is 3." - }, - { - "html": "

\n If the number of RTCRtpEncodingParameters now\n stored in sendEncodings is 1,\n then remove any rid member\n from the lone entry.\n

" - } - ] + "html": "

\n If sender is not in senders (which\n indicates its transceiver was stopped or removed due to\n setting a session description of\n type\n \"rollback\"), then abort these steps.\n

" }, { - "html": "

\n Create an RTCRtpSender with track,\n kind, streams and\n sendEncodings and let sender be the\n result.\n

\n

\n If sendEncodings is set, then subsequent calls\n to createOffer will be configured to send multiple\n RTP encodings as defined in [RFC8829] (section 5.2.2. and section 5.2.1.). When\n setRemoteDescription is called with\n a corresponding remote description that is able to\n receive multiple RTP encodings as defined in\n [RFC8829] (section 3.7.), the\n RTCRtpSender may send multiple RTP encodings and the\n parameters retrieved via the transceiver's\n sender.getParameters()\n will reflect the encodings negotiated.\n

" + "html": "

\n If sender.[[SenderTrack]] is null,\n abort these steps.\n

" }, { - "html": "

\n Create an RTCRtpReceiver with kind and\n let receiver be the result.\n

" + "html": "

\n Set sender.[[SenderTrack]] to null.\n

" }, { - "html": "

\n Create an RTCRtpTransceiver with\n sender, receiver and\n direction, and let transceiver be\n the result.\n

" + "html": "

\n Let transceiver be the RTCRtpTransceiver\n object corresponding to sender.\n

" }, { - "html": "

\n Add transceiver to connection's set of transceivers.\n

" + "html": "

\n

\n If transceiver.[[Direction]] is\n \"sendrecv\", set\n transceiver.[[Direction]] to\n \"recvonly\".\n

" }, { - "html": "

\n Update the negotiation-needed flag for\n connection.\n

" + "html": "

\n If transceiver.[[Direction]] is\n \"sendonly\", set\n transceiver.[[Direction]] to\n \"inactive\".\n

" }, { - "html": "

\n Return transceiver.\n

" + "html": "

\n Update the negotiation-needed flag for\n connection.\n

" } ] }, { + "name": "RTCPeerConnection/addTransceiver sendEncodings validation steps", + "href": "https://www.w3.org/TR/webrtc/#dfn-addtransceiver-sendencodings-validation-steps", + "html": "When this method is invoked, the user agent MUST run the\n following steps:", "rationale": ".algorithm", "steps": [ { "html": "

\n Let init be the second argument.\n

" }, { - "html": "

\n Let streams be\n init.streams.\n

" + "html": "

\n Let streams be\n init.streams.\n

" }, { - "html": "

\n Let sendEncodings be\n init.sendEncodings.\n

" + "html": "

\n Let sendEncodings be\n init.sendEncodings.\n

" }, { - "html": "

\n Let direction be\n init.direction.\n

" + "html": "

\n Let direction be\n init.direction.\n

" }, { "html": "If the first argument is a string, let kind be\n the first argument and run the following steps:", "rationale": "if", "steps": [ { - "html": "

\n If kind is neither \"audio\" nor \"video\",\n throw a TypeError.\n

" + "html": "

\n If kind is neither \"audio\" nor \"video\",\n throw a TypeError.\n

" }, { "html": "

\n Let track be null.\n

" @@ -2446,55 +2063,61 @@ ] }, { - "html": "

\n If the first argument is a MediaStreamTrack, let\n track be the first argument and let kind be\n track.kind.\n

" + "html": "

\n If the first argument is a MediaStreamTrack, let\n track be the first argument and let kind be\n track.kind.\n

" }, { - "html": "

\n If connection.[[IsClosed]] is\n true, throw an\n InvalidStateError.\n

" + "html": "

\n If connection.[[IsClosed]] is\n true, throw an\n InvalidStateError.\n

" }, { - "html": "Validate sendEncodings by running the\n following steps, where each RTCRtpEncodingParameters\n dictionary in it is an \"encoding\":", - "rationale": "if", + "html": "Validate sendEncodings by running the following\n \n addTransceiver sendEncodings validation steps,\n where each RTCRtpEncodingParameters\n dictionary in it is an \"encoding\":", + "rationale": "verify", "steps": [ { - "html": "

\n If any encoding contains a\n rid member whose value\n does not conform to the grammar requirements specified\n in Section 10 of [RFC8851], throw a TypeError.\n

" + "html": "
Candidate Correction 18:TypeError unless all or none of encodings have rids and on duplicate rids (PR #2774, PR #2775)
" + }, + { + "html": "

\n Verify that each rid value\n in sendEncodings conforms to the grammar\n specified in Section 10 of [RFC8851]. If one of\n the RIDs does not meet these requirements, throw a TypeError.\n

\n If any of the following conditions are met,\n throw a TypeError:\n " }, { - "html": "

\n If some but not all encodings contain a\n rid member, throw a TypeError.\n

" + "html": "

\n If any encoding contains a read-only\n parameter other than\n rid, throw\n an InvalidAccessError.\n

" }, { - "html": "

\n If any encoding contains a\n rid member whose value\n is the same as that of a rid\n contained in another encoding in\n sendEncodings, throw a\n TypeError.\n

" + "html": "
Candidate Addition 49:Add codec to RTCRtpEncodingParameters (PR #2985)
\n

\n If any encoding contains a\n codec member whose value does\n not match any codec in RTCRtpSender.getCapabilities(kind).codecs,\n throw an OperationError.

\n
" }, { - "html": "

\n If any encoding contains a read-only\n parameter other than\n rid, throw\n an InvalidAccessError.\n

" + "html": "
Candidate Addition 49:Add codec to RTCRtpEncodingParameters (PR #2985)
\n

If the user agent does not support changing codecs without negotiation or\n does not support setting codecs for individual encodings, return a promise\n rejected with a newly created OperationError.

\n
" }, { - "html": "

\n If kind is \"audio\", remove the\n scaleResolutionDownBy and\n maxFramerate\n members from all encodings that contain any of\n them.\n

" + "html": "
Proposed Addition 19:Add RTCRtpEncodingParameters.maxFramerate (PR #2785)
Proposed Correction 20:Remove RTCRtpEncodingParameters.scaleResolutionDownBy for audio (PR #2772, PR #2799)
\n

\n If kind is \"audio\", remove the\n scaleResolutionDownBy and\n maxFramerate\n members from all encodings that contain any of\n them.\n

\n
" }, { - "html": "

\n If any encoding contains a\n scaleResolutionDownBy\n member whose value is less than 1.0, throw a RangeError.\n

" + "html": "

\n If any encoding contains a\n scaleResolutionDownBy\n member whose value is less than 1.0, throw a RangeError.\n

" }, { - "html": "

\n Verify that the value of each\n maxFramerate\n member in sendEncodings that is defined\n is greater than 0.0. If one of the\n maxFramerate\n values does not meet this requirement, throw a RangeError.\n

" + "html": "
Proposed Addition 19:Add RTCRtpEncodingParameters.maxFramerate (PR #2785)
\n

\n Verify that the value of each\n maxFramerate\n member in sendEncodings that is defined\n is greater than 0.0. If one of the\n maxFramerate\n values does not meet this requirement, throw a RangeError.\n

\n
" }, { "html": "

\n Let maxN be the maximum number of total\n simultaneous encodings the user agent may support for\n this kind, at minimum 1.This\n should be an optimistic number since the codec to be\n used is not known yet.\n

" }, { - "html": "

\n If any encoding contains a\n scaleResolutionDownBy\n member, then for each encoding without one,\n add a scaleResolutionDownBy\n member with the value 1.0.\n

" + "html": "

\n If any encoding contains a\n scaleResolutionDownBy\n member, then for each encoding without one,\n add a scaleResolutionDownBy\n member with the value 1.0.\n

" }, { "html": "

\n If the number of encodings stored\n in sendEncodings exceeds maxN,\n then trim sendEncodings from the tail\n until its length is maxN.\n

" }, { - "html": "

\n If kind is \"video\" and none of the\n encodings contain a\n scaleResolutionDownBy\n member, then for each encoding, add a\n scaleResolutionDownBy\n member with the value\n 2^(length of sendEncodings - encoding\n index - 1). This results in smaller-to-larger\n resolutions where the last encoding has no scaling\n applied to it, e.g. 4:2:1 if the length is 3.\n

" + "html": "
Proposed Correction 20:Remove RTCRtpEncodingParameters.scaleResolutionDownBy for audio (PR #2772, PR #2799)
" }, { - "html": "

\n If the number of encodings now\n stored in sendEncodings is 1,\n then remove any rid member\n from the lone entry.\n

" + "html": "If the\n scaleResolutionDownBy\n attribues of sendEncodings are still\n undefined, initialize each encoding's\n scaleResolutionDownBy to\n 2^(length of sendEncodings - encoding\n index - 1). This results in smaller-to-larger\n resolutions where the last encoding has no scaling\n applied to it, e.g. 4:2:1 if the length is 3.\n

\n If kind is \"video\" and none of the\n encodings contain a\n scaleResolutionDownBy\n member, then for each encoding, add a\n scaleResolutionDownBy\n member with the value\n 2^(length of sendEncodings - encoding\n index - 1). This results in smaller-to-larger\n resolutions where the last encoding has no scaling\n applied to it, e.g. 4:2:1 if the length is 3.\n

" + }, + { + "html": "

\n If the number of encodings now\n stored in sendEncodings is 1,\n then remove any rid member\n from the lone entry.\n

" } ] }, { - "html": "

\n Create an RTCRtpSender with track,\n kind, streams and\n sendEncodings and let sender be the\n result.\n

\n

\n If sendEncodings is set, then subsequent calls\n to createOffer will be configured to send multiple\n RTP encodings as defined in [RFC8829] (section 5.2.2. and section 5.2.1.). When\n setRemoteDescription is called with\n a corresponding remote description that is able to\n receive multiple RTP encodings as defined in\n [RFC8829] (section 3.7.), the\n RTCRtpSender may send multiple RTP encodings and the\n parameters retrieved via the transceiver's\n sender.getParameters()\n will reflect the encodings negotiated.\n

" + "html": "

\n Create an RTCRtpSender with track,\n kind, streams and\n sendEncodings and let sender be the\n result.\n

\n

\n If sendEncodings is set, then subsequent calls\n to createOffer will be configured to send multiple\n RTP encodings as defined in [RFC9429] (section 5.2.2. and section 5.2.1.). When\n setRemoteDescription is called with\n a corresponding remote description that is able to\n receive multiple RTP encodings as defined in\n [RFC9429] (section 3.7.), the\n RTCRtpSender may send multiple RTP encodings and the\n parameters retrieved via the transceiver's\n sender.getParameters()\n will reflect the encodings negotiated.\n

" }, { "html": "

\n Create an RTCRtpReceiver with kind and\n let receiver be the result.\n

" @@ -2503,10 +2126,10 @@ "html": "

\n Create an RTCRtpTransceiver with\n sender, receiver and\n direction, and let transceiver be\n the result.\n

" }, { - "html": "

\n Add transceiver to connection's set of transceivers.\n

" + "html": "

\n Add transceiver to connection's set of transceivers.\n

" }, { - "html": "

\n Update the negotiation-needed flag for\n connection.\n

" + "html": "

\n Update the negotiation-needed flag for\n connection.\n

" }, { "html": "

\n Return transceiver.\n

" @@ -2516,57 +2139,57 @@ { "name": "process remote tracks", "href": "https://www.w3.org/TR/webrtc/#process-remote-tracks", - "html": "To process remote tracks\n given an RTCRtpTransceiver transceiver,\n direction, msids, addList,\n removeList, and trackEventInits, run the\n following steps:", + "html": "To process remote tracks\n given an RTCRtpTransceiver transceiver,\n direction, msids, addList,\n removeList, and trackEventInits, run the\n following steps:", "rationale": ".algorithm", "steps": [ { - "html": "

\n Set the associated remote streams with\n transceiver.[[Receiver]], msids,\n addList, and removeList.\n

" + "html": "

\n Set the associated remote streams with\n transceiver.[[Receiver]], msids,\n addList, and removeList.\n

" }, { - "html": "

\n If direction is\n \"sendrecv\" or\n \"recvonly\" and\n transceiver.[[FiredDirection]] is neither\n \"sendrecv\" nor\n \"recvonly\", or the previous step\n increased the length of addList, process the\n addition of a remote track with transceiver and\n trackEventInits.\n

" + "html": "

\n If direction is\n \"sendrecv\" or\n \"recvonly\" and\n transceiver.[[FiredDirection]] is neither\n \"sendrecv\" nor\n \"recvonly\", or the previous step\n increased the length of addList, process the\n addition of a remote track with transceiver and\n trackEventInits.\n

" }, { - "html": "

\n If direction is\n \"sendonly\" or\n \"inactive\", set\n transceiver.[[Receptive]] to\n false.\n

" + "html": "

\n If direction is\n \"sendonly\" or\n \"inactive\", set\n transceiver.[[Receptive]] to\n false.\n

" }, { - "html": "

\n If direction is\n \"sendonly\" or\n \"inactive\", and\n transceiver.[[FiredDirection]] is either\n \"sendrecv\" or\n \"recvonly\", process the\n removal of a remote track for the media description,\n with transceiver and muteTracks.\n

" + "html": "

\n If direction is\n \"sendonly\" or\n \"inactive\", and\n transceiver.[[FiredDirection]] is either\n \"sendrecv\" or\n \"recvonly\", process the\n removal of a remote track for the media description,\n with transceiver and muteTracks.\n

" }, { - "html": "

\n Set transceiver.[[FiredDirection]] to\n direction.\n

" + "html": "

\n Set transceiver.[[FiredDirection]] to\n direction.\n

" } ] }, { "name": "process the addition of a remote track", "href": "https://www.w3.org/TR/webrtc/#process-remote-track-addition", - "html": "To process the addition of\n a remote track given an RTCRtpTransceiver\n transceiver and trackEventInits, run the\n following steps:", + "html": "To process the addition of\n a remote track given an RTCRtpTransceiver\n transceiver and trackEventInits, run the\n following steps:", "rationale": ".algorithm", "steps": [ { - "html": "

\n Let receiver be\n transceiver.[[Receiver]].\n

" + "html": "

\n Let receiver be\n transceiver.[[Receiver]].\n

" }, { - "html": "

\n Let track be\n receiver.[[ReceiverTrack]].\n

" + "html": "

\n Let track be\n receiver.[[ReceiverTrack]].\n

" }, { - "html": "

\n Let streams be\n receiver.[[AssociatedRemoteMediaStreams]].\n

" + "html": "

\n Let streams be\n receiver.[[AssociatedRemoteMediaStreams]].\n

" }, { - "html": "

\n Create a new RTCTrackEventInit dictionary with\n receiver, track, streams and\n transceiver as members and add it to\n trackEventInits.\n

" + "html": "

\n Create a new RTCTrackEventInit dictionary with\n receiver, track, streams and\n transceiver as members and add it to\n trackEventInits.\n

" } ] }, { "name": "process the removal of a remote track", "href": "https://www.w3.org/TR/webrtc/#process-remote-track-removal", - "html": "To process the removal of a\n remote track with an RTCRtpTransceiver\n transceiver and muteTracks, run the following\n steps:", + "html": "To process the removal of a\n remote track with an RTCRtpTransceiver\n transceiver and muteTracks, run the following\n steps:", "rationale": ".algorithm", "steps": [ { - "html": "

\n Let receiver be\n transceiver.[[Receiver]].\n

" + "html": "

\n Let receiver be\n transceiver.[[Receiver]].\n

" }, { - "html": "

\n Let track be\n receiver.[[ReceiverTrack]].\n

" + "html": "

\n Let track be\n receiver.[[ReceiverTrack]].\n

" }, { "html": "

\n If track.muted is false, add\n track to muteTracks.\n

" @@ -2576,86 +2199,40 @@ { "name": "set the associated remote streams", "href": "https://www.w3.org/TR/webrtc/#set-associated-remote-streams", - "html": "To set the associated\n remote streams given RTCRtpReceiver receiver,\n msids, addList, and removeList,\n run the following steps:", + "html": "To set the associated\n remote streams given RTCRtpReceiver receiver,\n msids, addList, and removeList,\n run the following steps:", "rationale": ".algorithm", "steps": [ { - "html": "

\n Let connection be the RTCPeerConnection object\n associated with receiver.\n

" - }, - { - "html": "

\n For each MSID in msids, unless a MediaStream\n object has previously been created with that id for this connection, create a\n MediaStream object with that id.\n

" - }, - { - "html": "

\n Let streams be a list of the MediaStream objects\n created for this connection with the ids corresponding to msids.\n

" - }, - { - "html": "

\n Let track be\n receiver.[[ReceiverTrack]].\n

" - }, - { - "html": "

\n For each stream in\n receiver.[[AssociatedRemoteMediaStreams]]\n that is not present in streams, add\n stream and track as a pair to\n removeList.\n

" - }, - { - "html": "

\n For each stream in streams that is not\n present in\n receiver.[[AssociatedRemoteMediaStreams]],\n add stream and track as a pair to\n addList.\n

" - }, - { - "html": "

\n Set\n receiver.[[AssociatedRemoteMediaStreams]] to\n streams.\n

" - } - ] - }, - { - "rationale": "let", - "steps": [ - { - "html": "

\n Let sender be a new RTCRtpSender object.\n

" - }, - { - "html": "

\n Let sender have a [[SenderTrack]] internal\n slot initialized to track.\n

" - }, - { - "html": "

\n Let sender have a [[SenderTransport]]\n internal slot initialized to null.\n

" - }, - { - "html": "

\n Let sender have a\n [[LastStableStateSenderTransport]] internal slot\n initialized to null.\n

" - }, - { - "html": "

\n Let sender have a [[Dtmf]] internal slot\n initialized to null.\n

" - }, - { - "html": "

\n If kind is \"audio\" then create an\n RTCDTMFSender dtmf and set the [[Dtmf]]\n internal slot to dtmf.\n

" - }, - { - "html": "

\n Let sender have an\n [[AssociatedMediaStreamIds]] internal slot,\n representing a list of Ids of MediaStream objects that this\n sender is to be associated with. The\n [[AssociatedMediaStreamIds]] slot is used when\n sender is represented in SDP as described in\n [RFC8829] (section 5.2.1.).\n

" - }, - { - "html": "

\n Set sender.[[AssociatedMediaStreamIds]] to an\n empty set.\n

" + "html": "

\n Let connection be the RTCPeerConnection object\n associated with receiver.\n

" }, { - "html": "

\n For each stream in streams, add\n stream.id to [[AssociatedMediaStreamIds]] if\n it's not already there.\n

" + "html": "

\n For each MSID in msids, unless a MediaStream\n object has previously been created with that id for this connection, create a\n MediaStream object with that id.\n

" }, { - "html": "

\n Let sender have a [[SendEncodings]]\n internal slot, representing a list of\n RTCRtpEncodingParameters dictionaries.\n

" + "html": "

\n Let streams be a list of the MediaStream objects\n created for this connection with the ids corresponding to msids.\n

" }, { - "html": "

\n If sendEncodings is given as input to this algorithm,\n and is non-empty, set the [[SendEncodings]] slot to\n sendEncodings. Otherwise, set it to a list containing\n a single RTCRtpEncodingParameters with\n active set to true.\n

" + "html": "

\n Let track be\n receiver.[[ReceiverTrack]].\n

" }, { - "html": "

\n Let sender have a [[SendCodecs]] internal\n slot, representing a list of RTCRtpCodecParameters\n dictionaries, and initialized to an empty list.\n

" + "html": "

\n For each stream in\n receiver.[[AssociatedRemoteMediaStreams]]\n that is not present in streams, add\n stream and track as a pair to\n removeList.\n

" }, { - "html": "

\n Let sender have a\n [[LastReturnedParameters]] internal slot, which will\n be used to match getParameters and\n setParameters transactions.\n

" + "html": "

\n For each stream in streams that is not\n present in\n receiver.[[AssociatedRemoteMediaStreams]],\n add stream and track as a pair to\n addList.\n

" }, { - "html": "

\n Return sender.\n

" + "html": "

\n Set\n receiver.[[AssociatedRemoteMediaStreams]] to\n streams.\n

" } ] }, { "name": "RTCRtpSender/[[SenderTrack]]", "href": "https://www.w3.org/TR/webrtc/#dfn-sendertrack", + "html": "To create an RTCRtpSender with a MediaStreamTrack,\n track, a string, kind, a list of\n MediaStream objects, streams, and optionally a list of\n RTCRtpEncodingParameters objects, sendEncodings, run\n the following steps:", "rationale": ".algorithm", "steps": [ { - "html": "

\n Let sender be a new RTCRtpSender object.\n

" + "html": "

\n Let sender be a new RTCRtpSender object.\n

" }, { "html": "

\n Let sender have a [[SenderTrack]] internal\n slot initialized to track.\n

" @@ -2670,173 +2247,123 @@ "html": "

\n Let sender have a [[Dtmf]] internal slot\n initialized to null.\n

" }, { - "html": "

\n If kind is \"audio\" then create an\n RTCDTMFSender dtmf and set the [[Dtmf]]\n internal slot to dtmf.\n

" - }, - { - "html": "

\n Let sender have an\n [[AssociatedMediaStreamIds]] internal slot,\n representing a list of Ids of MediaStream objects that this\n sender is to be associated with. The\n [[AssociatedMediaStreamIds]] slot is used when\n sender is represented in SDP as described in\n [RFC8829] (section 5.2.1.).\n

" - }, - { - "html": "

\n Set sender.[[AssociatedMediaStreamIds]] to an\n empty set.\n

" + "html": "

\n If kind is \"audio\" then create an\n RTCDTMFSender dtmf and set the [[Dtmf]]\n internal slot to dtmf.\n

" }, { - "html": "

\n For each stream in streams, add\n stream.id to [[AssociatedMediaStreamIds]] if\n it's not already there.\n

" + "html": "

\n Let sender have an\n [[AssociatedMediaStreamIds]] internal slot,\n representing a list of Ids of MediaStream objects that this\n sender is to be associated with. The\n [[AssociatedMediaStreamIds]] slot is used when\n sender is represented in SDP as described in\n [RFC9429] (section 5.2.1.).\n

" }, { - "html": "

\n Let sender have a [[SendEncodings]]\n internal slot, representing a list of\n RTCRtpEncodingParameters dictionaries.\n

" + "html": "

\n Set sender.[[AssociatedMediaStreamIds]] to an\n empty set.\n

" }, { - "html": "

\n If sendEncodings is given as input to this algorithm,\n and is non-empty, set the [[SendEncodings]] slot to\n sendEncodings. Otherwise, set it to a list containing\n a single new RTCRtpEncodingParameters dictionary, and if\n kind is \"video\", add a\n scaleResolutionDownBy member with the\n value 1.0 to that dictionary.\n

" + "html": "

\n For each stream in streams, add\n stream.id to [[AssociatedMediaStreamIds]] if\n it's not already there.\n

" }, { - "html": "

\n Let sender have a\n [[LastStableRidlessSendEncodings]] internal slot\n initialized to null.\n

" + "html": "

\n Let sender have a [[SendEncodings]]\n internal slot, representing a list of\n RTCRtpEncodingParameters dictionaries.\n

" }, - { - "html": "

\n Let sender have a [[SendCodecs]] internal\n slot, representing a list of RTCRtpCodecParameters\n dictionaries, and initialized to an empty list.\n

" - }, - { - "html": "

\n Let sender have a\n [[LastReturnedParameters]] internal slot, which will\n be used to match getParameters and\n setParameters transactions.\n

" - }, - { - "html": "

\n Return sender.\n

" - } - ] - }, - { - "rationale": "let", - "steps": [ - { - "html": "Let parameters be the\n method's first argument." - }, - { - "html": "Let sender be the\n RTCRtpSender object on which setParameters is\n invoked." - }, - { - "html": "Let transceiver be the\n RTCRtpTransceiver object associated with\n sender (i.e. sender is\n transceiver.[[Sender]])." - }, - { - "html": "If transceiver.[[Stopped]] is\n true, return a promise rejected with a\n newly created InvalidStateError." - }, - { - "html": "If \n sender.[[LastReturnedParameters]] is\n null, return a promise rejected with a\n newly created InvalidStateError." - }, - { - "html": "Validate parameters by running the following\n steps:", - "rationale": "let", - "steps": [ - { - "html": "Let encodings be\n parameters.encodings." - }, - { - "html": "Let codecs be \n parameters.codecs." - }, - { - "html": "Let N be the number\n of RTCRtpEncodingParameters stored in\n sender.[[SendEncodings]]." - }, - { - "html": "If any of the following conditions are met, return a\n promise rejected with a newly created InvalidModificationError:", - "ignored": [ - "encodings.length is different from N. encodings has been re-ordered. Any parameter in parameters is marked as a Read-only parameter (such as RID) and has a value that is different from the corresponding parameter value in sender.[[LastReturnedParameters]]. Note that this also applies to transactionId." - ] - }, - { - "html": "

\n Verify that each encoding in encodings has\n a scaleResolutionDownBy\n member whose value is greater than or equal to 1.0. If one of the\n scaleResolutionDownBy\n values does not meet this requirement, return a\n promise rejected with a newly created RangeError.\n

" - } - ] + { + "html": "
Proposed Correction 21:Default RTCRtpEncodingParameters.scaleResolutionDownBy to 1 for video (PR #2772)
" }, { - "html": "Let p be a new promise." + "html": "

\n If sendEncodings is given as input to this algorithm,\n and is non-empty, set the [[SendEncodings]] slot to\n sendEncodings. Otherwise, set it to a list containing\n a single new RTCRtpEncodingParameters with\n activedictionary, set and if\n kind is \"video\", add a\n scaleResolutionDownBy member with the\n value 1.0 to truethat dictionary.\n

" }, { - "html": "In parallel, configure the media stack to use\n parameters to transmit\n sender.[[SenderTrack]].", - "rationale": "if", - "steps": [ - { - "html": "If the media stack is successfully configured with\n parameters, queue a task to run the following\n steps:", - "rationale": "set", - "steps": [ - { - "html": "Set\n sender.[[LastReturnedParameters]]\n to null." - }, - { - "html": "Set sender.[[SendEncodings]]\n to\n parameters.encodings." - }, - { - "html": "Resolve p with\n undefined." - } - ] - }, - { - "html": "If any error occurred while configuring the media\n stack, queue a task to run the following steps:", - "rationale": "if", - "steps": [ - { - "html": "If an error occurred due to hardware resources\n not being available, reject p with a\n newly created RTCError whose\n errorDetail is set to\n \"hardware-encoder-not-available\"\n and abort these steps." - }, - { - "html": "If an error occurred due to a hardware encoder\n not supporting parameters, reject\n p with a newly created RTCError whose\n errorDetail is set to\n \"hardware-encoder-error\" and\n abort these steps." - }, - { - "html": "For all other errors, reject p\n with a newly created\n OperationError." - } - ] - } - ] + "html": "
Candidate Correction 13:Rollback restores ridless encoding trounced by sRD(simulcastOffer). (PR #2797)
\n

\n Let sender have a\n [[LastStableRidlessSendEncodings]] internal slot\n initialized to null.\n

\n
" }, { - "html": "Return p." + "html": "

\n Let sender have a [[SendCodecs]] internal\n slot, representing a list of RTCRtpCodecParameters\n dictionaries, and initialized to an empty list.\n

" + }, + { + "html": "

\n Let sender have a\n [[LastReturnedParameters]] internal slot, which will\n be used to match getParameters and\n setParameters transactions.\n

" + }, + { + "html": "

\n Return sender.\n

" + } + ] + }, + { + "name": "RTCRtpSender/getCapabilities()", + "href": "https://www.w3.org/TR/webrtc/#dom-rtcrtpsender-getcapabilities", + "html": "When the getCapabilities method is called, the user agent MUST run the\n following steps:", + "rationale": ".algorithm", + "steps": [ + { + "html": "

Let kind be the method's first argument.

" + }, + { + "html": "

If kind is neither \"video\" nor \"audio\" return null.

" + }, + { + "html": "

Return a new RTCRtpCapabilities dictionary, with its\n codecs member initialized to the\n list of implemented send codecs for kind, and its\n headerExtensions member initialized to the\n list of implemented header extensions for sending with\n kind.

" } ] }, { - "name": "Read-only parameter", - "href": "https://www.w3.org/TR/webrtc/#dfn-read-only-parameter", + "name": "RTCRtpSender/setParameters validation steps", + "href": "https://www.w3.org/TR/webrtc/#dfn-setparameters-validation-steps", + "html": "When the setParameters method is called, the user agent\n MUST run the following steps:", "rationale": ".algorithm", "steps": [ { "html": "Let parameters be the\n method's first argument." }, { - "html": "Let sender be the\n RTCRtpSender object on which setParameters is\n invoked." + "html": "Let sender be the\n RTCRtpSender object on which setParameters is\n invoked." + }, + { + "html": "Let transceiver be the\n RTCRtpTransceiver object associated with\n sender (i.e. sender is\n transceiver.[[Sender]])." }, { - "html": "Let transceiver be the\n RTCRtpTransceiver object associated with\n sender (i.e. sender is\n transceiver.[[Sender]])." + "html": "
Proposed Correction 32:Reject setParameters(), replaceTrack(), & insertDTMF() after stop() (PR #2829)
" }, { - "html": "If transceiver.[[Stopped]] is\n true, return a promise rejected with a\n newly created InvalidStateError." + "html": "If transceiver.[[StoppedStopping]] is\n true, return a promise rejected with a\n newly created InvalidStateError." }, { - "html": "If \n sender.[[LastReturnedParameters]] is\n null, return a promise rejected with a\n newly created InvalidStateError." + "html": "If \n sender.[[LastReturnedParameters]] is\n null, return a promise rejected with a\n newly created InvalidStateError." }, { - "html": "Validate parameters by running the following steps:", + "html": "Validate parameters by running the following\n \n setParameters validation steps:", "rationale": "let", "steps": [ { - "html": "Let encodings be\n parameters.encodings." + "html": "Let encodings be\n parameters.encodings." }, { - "html": "Let codecs be \n parameters.codecs." + "html": "Let codecs be \n parameters.codecs." }, { - "html": "Let N be the number\n of RTCRtpEncodingParameters stored in\n sender.[[SendEncodings]]." + "html": "
Candidate Addition 49:Add codec to RTCRtpEncodingParameters (PR #2985)
\n

Let choosableCodecs be codecs.

\n
" }, { - "html": "If any of the following conditions are met, return a\n promise rejected with a newly created InvalidModificationError:", - "ignored": [ - "encodings.length is different from N. encodings has been re-ordered. Any parameter in parameters is marked as a Read-only parameter (such as RID) and has a value that is different from the corresponding parameter value in sender.[[LastReturnedParameters]]. Note that this also applies to transactionId." - ] + "html": "
Candidate Addition 49:Add codec to RTCRtpEncodingParameters (PR #2985)
\n

If choosableCodecs is an empty list, set choosableCodecs\n to transceiver.[[PreferredCodecs]].

\n
" + }, + { + "html": "
Candidate Addition 49:Add codec to RTCRtpEncodingParameters (PR #2985)
\n

If choosableCodecs is still an empty list, set choosableCodecs\n to the list of implemented send codecs for transceiver's kind.

\n
" + }, + { + "html": "Let N be the number\n of RTCRtpEncodingParameters stored in\n sender.[[SendEncodings]]." + }, + { + "html": "If any of the following conditions are met, return a\n promise rejected with a newly created InvalidModificationError:\n " }, { - "html": "

\n If transceiver kind is \"audio\", remove the\n scaleResolutionDownBy and\n maxFramerate\n members from all encodings that\n contain any of them.\n

" + "html": "
Proposed Correction 20:Remove RTCRtpEncodingParameters.scaleResolutionDownBy for audio (PR #2772, PR #2799)
Proposed Addition 19:Add RTCRtpEncodingParameters.maxFramerate (PR #2785)
\n

\n If transceiver kind is \"audio\", remove the\n scaleResolutionDownBy and\n maxFramerate\n members from all encodings that\n contain any of them.\n

\n
" }, { - "html": "

\n If transceiver kind is \"video\", then for\n each encoding in encodings that doesn't\n contain a\n scaleResolutionDownBy\n member, add a\n scaleResolutionDownBy\n member with the value 1.0.\n

" + "html": "
Proposed Correction 21:Default RTCRtpEncodingParameters.scaleResolutionDownBy to 1 for video (PR #2772)
\n

\n If transceiver kind is \"video\", then for\n each encoding in encodings that doesn't\n contain a\n scaleResolutionDownBy\n member, add a\n scaleResolutionDownBy\n member with the value 1.0.\n

\n
" }, { - "html": "

\n If transceiver kind is \"video\",\n and any encoding in encodings\n contains a\n scaleResolutionDownBy\n member whose value is less than 1.0, return a\n promise rejected with a newly created RangeError.\n

" + "html": "
Proposed Correction 20:Remove RTCRtpEncodingParameters.scaleResolutionDownBy for audio (PR #2772, PR #2799)
" }, { - "html": "

\n Verify that each encoding in encodings has\n a maxFramerate\n member whose value is greater than or equal to 0.0. If one of the\n maxFramerate\n values does not meet this requirement, return a\n promise rejected with a newly created RangeError.\n

" + "html": "

\n Verify that each If transceiver kind is \"video\",\n and any encoding in encodings\n contains has\n a a\n scaleResolutionDownBy\n member whose value is greater less than or equal to 1.0. If one of the\n scaleResolutionDownBy\n values does not meet this requirement1.0, return a\n promise rejected with a newly created RangeError.\n

" + }, + { + "html": "
Proposed Addition 19:Add RTCRtpEncodingParameters.maxFramerate (PR #2785)
\n

\n Verify that each encoding in encodings has\n a maxFramerate\n member whose value is greater than or equal to 0.0. If one of the\n maxFramerate\n values does not meet this requirement, return a\n promise rejected with a newly created RangeError.\n

\n
" + }, + { + "html": "
Candidate Addition 49:Add codec to RTCRtpEncodingParameters (PR #2985)
\n

If the user agent does not support setting the codec for any encoding or mixing\n different codec values on the different encodings, return a promise rejected\n with a newly created OperationError.\n

\n
" } ] }, @@ -2844,7 +2371,7 @@ "html": "Let p be a new promise." }, { - "html": "In parallel, configure the media stack to use\n parameters to transmit\n sender.[[SenderTrack]].", + "html": "In parallel, configure the media stack to use\n parameters to transmit\n sender.[[SenderTrack]].", "rationale": "if", "steps": [ { @@ -2852,13 +2379,13 @@ "rationale": "set", "steps": [ { - "html": "Set\n sender.[[LastReturnedParameters]]\n to null." + "html": "Set\n sender.[[LastReturnedParameters]]\n to null." }, { - "html": "Set sender.[[SendEncodings]]\n to\n parameters.encodings." + "html": "Set sender.[[SendEncodings]]\n to\n parameters.encodings." }, { - "html": "Resolve p with\n undefined." + "html": "Resolve p with\n undefined." } ] }, @@ -2867,13 +2394,13 @@ "rationale": "if", "steps": [ { - "html": "If an error occurred due to hardware resources\n not being available, reject p with a\n newly created RTCError whose\n errorDetail is set to\n \"hardware-encoder-not-available\"\n and abort these steps." + "html": "If an error occurred due to hardware resources\n not being available, reject p with a\n newly created RTCError whose\n errorDetail is set to\n \"hardware-encoder-not-available\"\n and abort these steps." }, { - "html": "If an error occurred due to a hardware encoder\n not supporting parameters, reject\n p with a newly created RTCError whose\n errorDetail is set to\n \"hardware-encoder-error\" and\n abort these steps." + "html": "If an error occurred due to a hardware encoder\n not supporting parameters, reject\n p with a newly created RTCError whose\n errorDetail is set to\n \"hardware-encoder-error\" and\n abort these steps." }, { - "html": "For all other errors, reject p\n with a newly created\n OperationError." + "html": "For all other errors, reject p\n with a newly created\n OperationError." } ] } @@ -2887,23 +2414,23 @@ { "name": "RTCRtpSender/getParameters()", "href": "https://www.w3.org/TR/webrtc/#dom-rtcrtpsender-getparameters", - "html": "When getParameters is called, the user agent MUST run the\n following steps:", + "html": "When getParameters is called, the user agent MUST run the\n following steps:", "rationale": ".algorithm", "steps": [ { - "html": "

\n Let sender be the RTCRtpSender object on\n which the getter was invoked.\n

" + "html": "

\n Let sender be the RTCRtpSender object on\n which the getter was invoked.\n

" }, { - "html": "

\n If sender.[[LastReturnedParameters]]\n is not null, return\n sender.[[LastReturnedParameters]], and\n abort these steps.\n

" + "html": "

\n If sender.[[LastReturnedParameters]]\n is not null, return\n sender.[[LastReturnedParameters]], and\n abort these steps.\n

" }, { - "html": "

\n Let result be a new RTCRtpSendParameters\n dictionary constructed as follows:\n

\n " + "html": "

\n Let result be a new RTCRtpSendParameters\n dictionary constructed as follows:\n

\n " }, { - "html": "

\n Set sender.[[LastReturnedParameters]]\n to result.\n

" + "html": "

\n Set sender.[[LastReturnedParameters]]\n to result.\n

" }, { - "html": "

\n Queue a task that sets\n sender.[[LastReturnedParameters]] to\n null.\n

" + "html": "

\n Queue a task that sets\n sender.[[LastReturnedParameters]] to\n null.\n

" }, { "html": "

\n Return result.\n

" @@ -2913,46 +2440,49 @@ { "name": "RTCRtpSender/replaceTrack()", "href": "https://www.w3.org/TR/webrtc/#dom-rtcrtpsender-replacetrack", - "html": "When the replaceTrack method is invoked, the user agent\n MUST run the following steps:", + "html": "When the replaceTrack method is invoked, the user agent\n MUST run the following steps:", "rationale": ".algorithm", "steps": [ { - "html": "

\n Let sender be the RTCRtpSender object on\n which replaceTrack is invoked.\n

" + "html": "

\n Let sender be the RTCRtpSender object on\n which replaceTrack is invoked.\n

" }, { - "html": "

\n Let transceiver be the RTCRtpTransceiver\n object associated with sender.\n

" + "html": "

\n Let transceiver be the RTCRtpTransceiver\n object associated with sender.\n

" }, { - "html": "

\n Let connection be the RTCPeerConnection\n object associated with sender.\n

" + "html": "

\n Let connection be the RTCPeerConnection\n object associated with sender.\n

" }, { "html": "

\n Let withTrack be the argument to this method.\n

" }, { - "html": "

\n If withTrack is non-null and\n withTrack.kind differs from the\n transceiver kind of transceiver, return\n a promise rejected with a newly created TypeError.\n

" + "html": "

\n If withTrack is non-null and\n withTrack.kind differs from the\n transceiver kind of transceiver, return\n a promise rejected with a newly created TypeError.\n

" }, { - "html": "Return the result of chaining the following steps\n to connection's operations chain:", - "rationale": "if", + "html": "Return the result of chaining the following steps\n to connection's operations chain:", + "rationale": "reject", "steps": [ { - "html": "

\n If transceiver.[[Stopped]] is\n true, return a promise rejected\n with a newly created\n InvalidStateError.\n

" + "html": "
Proposed Correction 32:Reject setParameters(), replaceTrack(), & insertDTMF() after stop() (PR #2829)
" + }, + { + "html": "

\n If transceiver.[[StoppedStopping]] is\n true, return a promise rejected\n with a newly created\n InvalidStateError.\n

" }, { "html": "

\n Let p be a new promise.\n

" }, { - "html": "

\n Let sending be true if\n transceiver.[[CurrentDirection]]\n is \"sendrecv\" or\n \"sendonly\", and\n false otherwise.\n

" + "html": "

\n Let sending be true if\n transceiver.[[CurrentDirection]]\n is \"sendrecv\" or\n \"sendonly\", and\n false otherwise.\n

" }, { - "html": "Run the following steps in parallel:", + "html": "Run the following steps in parallel:", "rationale": "if", "steps": [ { "html": "

\n If sending is true, and\n withTrack is null, have\n the sender stop sending.\n

" }, { - "html": "

\n If sending is true, and\n withTrack is not null,\n determine if withTrack can be sent\n immediately by the sender without violating the\n sender's already-negotiated envelope, and if it\n cannot, then reject p with a\n newly created\n InvalidModificationError, and abort these\n steps.\n

" + "html": "

\n If sending is true, and\n withTrack is not null,\n determine if withTrack can be sent\n immediately by the sender without violating the\n sender's already-negotiated envelope, and if it\n cannot, then reject p with a\n newly created\n InvalidModificationError, and abort these\n steps.\n

" }, { "html": "

\n If sending is true, and\n withTrack is not null,\n have the sender switch seamlessly to transmitting\n withTrack instead of the sender's\n existing track.\n

" @@ -2962,13 +2492,13 @@ "rationale": "if", "steps": [ { - "html": "

\n If connection.[[IsClosed]]\n is true, abort these steps.\n

" + "html": "

\n If connection.[[IsClosed]]\n is true, abort these steps.\n

" }, { - "html": "

\n Set sender.[[SenderTrack]]\n to withTrack.\n

" + "html": "

\n Set sender.[[SenderTrack]]\n to withTrack.\n

" }, { - "html": "

\n Resolve p with\n undefined.\n

" + "html": "

\n Resolve p with\n undefined.\n

" } ] } @@ -2984,50 +2514,50 @@ { "name": "RTCRtpSender/setStreams()", "href": "https://www.w3.org/TR/webrtc/#dom-rtcrtpsender-setstreams", - "html": "When the setStreams method is invoked, the user agent\n MUST run the following steps:", + "html": "When the setStreams method is invoked, the user agent\n MUST run the following steps:", "rationale": ".algorithm", "steps": [ { - "html": "

\n Let sender be the RTCRtpSender object on\n which this method was invoked.\n

" + "html": "

\n Let sender be the RTCRtpSender object on\n which this method was invoked.\n

" }, { - "html": "

\n Let connection be the RTCPeerConnection\n object on which this method was invoked.\n

" + "html": "

\n Let connection be the RTCPeerConnection\n object on which this method was invoked.\n

" }, { - "html": "

\n If connection.[[IsClosed]] is\n true, throw an\n InvalidStateError.\n

" + "html": "

\n If connection.[[IsClosed]] is\n true, throw an\n InvalidStateError.\n

" }, { - "html": "

\n Let streams be a list of MediaStream\n objects constructed from the method's arguments, or an\n empty list if the method was called without arguments.\n

" + "html": "

\n Let streams be a list of MediaStream\n objects constructed from the method's arguments, or an\n empty list if the method was called without arguments.\n

" }, { - "html": "

\n Set\n sender.[[AssociatedMediaStreamIds]] to\n an empty set.\n

" + "html": "

\n Set\n sender.[[AssociatedMediaStreamIds]] to\n an empty set.\n

" }, { - "html": "

\n For each stream in streams, add\n stream.id to\n [[AssociatedMediaStreamIds]] if it's not already\n there.\n

" + "html": "

\n For each stream in streams, add\n stream.id to\n [[AssociatedMediaStreamIds]] if it's not already\n there.\n

" }, { - "html": "

\n Update the negotiation-needed flag for\n connection.\n

" + "html": "

\n Update the negotiation-needed flag for\n connection.\n

" } ] }, { "name": "RTCRtpSender/getStats()", "href": "https://www.w3.org/TR/webrtc/#widl-RTCRtpSender-getStats-Promise-RTCStatsReport", - "html": "When the getStats() method is invoked, the user agent\n MUST run the following steps:", + "html": "When the getStats() method is invoked, the user agent\n MUST run the following steps:", "rationale": ".algorithm", "steps": [ { - "html": "

\n Let selector be the RTCRtpSender object on\n which the method was invoked.\n

" + "html": "

\n Let selector be the RTCRtpSender object on\n which the method was invoked.\n

" }, { - "html": "Let p be a new promise, and run the following\n steps in parallel:", + "html": "Let p be a new promise, and run the following\n steps in parallel:", "rationale": "gather", "steps": [ { - "html": "

\n Gather the stats indicated by selector\n according to the stats selection algorithm.\n

" + "html": "

\n Gather the stats indicated by selector\n according to the stats selection algorithm.\n

" }, { - "html": "

\n Resolve p with the resulting\n RTCStatsReport object, containing the gathered\n stats.\n

" + "html": "

\n Resolve p with the resulting\n RTCStatsReport object, containing the gathered\n stats.\n

" } ] }, @@ -3039,14 +2569,14 @@ { "name": "remote source", "href": "https://www.w3.org/TR/webrtc/#dfn-remote-source", - "html": "To create an RTCRtpReceiver with a string,\n kind, run the following steps:", + "html": "To create an RTCRtpReceiver with a string,\n kind, run the following steps:", "rationale": ".algorithm", "steps": [ { - "html": "

\n Let receiver be a new RTCRtpReceiver object.\n

" + "html": "

\n Let receiver be a new RTCRtpReceiver object.\n

" }, { - "html": "

\n Let track be a new MediaStreamTrack object\n [GETUSERMEDIA]. The source of track is a\n remote source provided by receiver. Note\n that the track.id is\n generated by the user agent and does not map to any track\n IDs on the remote side.\n

" + "html": "

\n Let track be a new MediaStreamTrack object\n [GETUSERMEDIA]. The source of track is a\n remote source provided by receiver. Note\n that the track.id is\n generated by the user agent and does not map to any track\n IDs on the remote side.\n

" }, { "html": "

\n Initialize track.kind to kind.\n

" @@ -3058,10 +2588,10 @@ "html": "

\n Initialize track.readyState to live.\n

" }, { - "html": "

\n Initialize track.muted to true. See the\n MediaStreamTrack\n section about how the muted attribute\n reflects if a MediaStreamTrack is receiving media data or\n not.\n

" + "html": "

\n Initialize track.muted to true. See the\n MediaStreamTrack\n section about how the muted attribute\n reflects if a MediaStreamTrack is receiving media data or\n not.\n

" }, { - "html": "

\n Let receiver have a [[ReceiverTrack]]\n internal slot initialized to track.\n

" + "html": "

\n Let receiver have a [[ReceiverTrack]]\n internal slot initialized to track.\n

" }, { "html": "

\n Let receiver have a [[ReceiverTransport]]\n internal slot initialized to null.\n

" @@ -3070,40 +2600,93 @@ "html": "

\n Let receiver have a\n [[LastStableStateReceiverTransport]] internal slot\n initialized to null.\n

" }, { - "html": "

\n Let receiver have an\n [[AssociatedRemoteMediaStreams]] internal slot,\n representing a list of MediaStream objects that the\n MediaStreamTrack object of this receiver is associated with,\n and initialized to an empty list.\n

" + "html": "

\n Let receiver have an\n [[AssociatedRemoteMediaStreams]] internal slot,\n representing a list of MediaStream objects that the\n MediaStreamTrack object of this receiver is associated with,\n and initialized to an empty list.\n

" }, { "html": "

\n Let receiver have a\n [[LastStableStateAssociatedRemoteMediaStreams]]\n internal slot and initialize it to an empty list.\n

" }, { - "html": "

\n Let receiver have a [[ReceiveCodecs]]\n internal slot, representing a list of RTCRtpCodecParameters\n dictionaries, and initialized to an empty list.\n

" + "html": "

\n Let receiver have a [[ReceiveCodecs]]\n internal slot, representing a list of RTCRtpCodecParameters\n dictionaries, and initialized to an empty list.\n

" }, { "html": "

\n Let receiver have a\n [[LastStableStateReceiveCodecs]] internal slot and\n initialize it to an empty list.\n

" }, + { + "html": "
Proposed Addition 44:Add control for the receiver's jitter buffer (PR #2953)
\n

\n Let receiver have a [[JitterBufferTarget]]\n internal slot initialized to null.\n

\n
" + }, { "html": "

\n Return receiver.\n

" } ] }, + { + "html": "On setting, the user agent MUST run the following steps:", + "rationale": ".algorithm", + "steps": [ + { + "html": "

Let receiver be the\n RTCRtpReceiver object on which the setter is\n invoked.

" + }, + { + "html": "

Let target be the argument to the setter.

" + }, + { + "html": "

If target is negative or larger than 4000 milliseconds, then\n throw a RangeError.

" + }, + { + "html": "

Set receiver's [[JitterBufferTarget]]\n to target.

" + }, + { + "html": "

Let track be receiver's\n [[ReceiverTrack]].

" + }, + { + "html": "in parallel, begin executing the following steps:", + "rationale": "update", + "steps": [ + { + "html": "

Update the underlying system about the new target,\n or that there is no application preference if target is\n null.

\n

\n If track is synchronized with another\n RTCRtpReceiver's track for\n audio/video synchronization,\n then the user agent SHOULD use the larger of the two receivers'\n [[JitterBufferTarget]] for both receivers.\n

\n

\n When the underlying system is applying a jitter buffer target, it will\n continuously make sure that the actual jitter buffer target is clamped\n within the minimum allowed target and maximum allowed\n target.\n

\n

" + }, + { + "html": "

Modifying the jitter buffer target of the underlying system SHOULD\n affect the internal audio or video buffering gradually in order not\n to hurt user experience. Audio samples or video frames SHOULD\n be accelerated or decelerated before playout, similarly to how\n it is done for\n \n audio/video synchronization or in response to congestion\n control.

\n

The acceleration or deceleration rate may vary depending on\n network conditions or the type of audio received (e.g. speech\n or background noise). It MAY take several seconds to achieve 1\n second of buffering but SHOULD not take more than 30 seconds\n assuming packets are being received. The speed MAY be\n different for audio and video.

" + } + ] + } + ] + }, + { + "name": "RTCRtpReceiver/getCapabilities()", + "href": "https://www.w3.org/TR/webrtc/#dom-rtcrtpreceiver-getcapabilities", + "html": "When the getCapabilities method is called, the user agent MUST run the\n following steps:", + "rationale": ".algorithm", + "steps": [ + { + "html": "

Let kind be the method's first argument.

" + }, + { + "html": "

If kind is neither \"video\" nor \"audio\" return null.

" + }, + { + "html": "

Return a new RTCRtpCapabilities dictionary, with its\n codecs member initialized to the\n list of implemented receive codecs for kind, and its\n headerExtensions member initialized to the\n list of implemented header extensions for receiving for\n kind.

" + } + ] + }, { "name": "RTCRtpReceiver/getStats()", "href": "https://www.w3.org/TR/webrtc/#widl-RTCRtpReceiver-getStats-Promise-RTCStatsReport", - "html": "When the getStats() method is invoked, the user agent\n MUST run the following steps:", + "html": "When the getStats() method is invoked, the user agent\n MUST run the following steps:", "rationale": ".algorithm", "steps": [ { - "html": "

\n Let selector be the RTCRtpReceiver object\n on which the method was invoked.\n

" + "html": "

\n Let selector be the RTCRtpReceiver object\n on which the method was invoked.\n

" }, { - "html": "Let p be a new promise, and run the following\n steps in parallel:", + "html": "Let p be a new promise, and run the following\n steps in parallel:", "rationale": "gather", "steps": [ { - "html": "

\n Gather the stats indicated by selector\n according to the stats selection algorithm.\n

" + "html": "

\n Gather the stats indicated by selector\n according to the stats selection algorithm.\n

" }, { - "html": "

\n Resolve p with the resulting\n RTCStatsReport object, containing the gathered\n stats.\n

" + "html": "

\n Resolve p with the resulting\n RTCStatsReport object, containing the gathered\n stats.\n

" } ] }, @@ -3115,14 +2698,14 @@ { "name": "RTCRtpTransceiver/[[Sender]]", "href": "https://www.w3.org/TR/webrtc/#dfn-sender", - "html": "To create an RTCRtpTransceiver with an RTCRtpReceiver\n object, receiver, RTCRtpSender object,\n sender, and an RTCRtpTransceiverDirection value,\n direction, run the following steps:", + "html": "To create an RTCRtpTransceiver with an RTCRtpReceiver\n object, receiver, RTCRtpSender object,\n sender, and an RTCRtpTransceiverDirection value,\n direction, run the following steps:", "rationale": ".algorithm", "steps": [ { - "html": "

\n Let transceiver be a new RTCRtpTransceiver object.\n

" + "html": "

\n Let transceiver be a new RTCRtpTransceiver object.\n

" }, { - "html": "

\n Let transceiver have a [[Sender]] internal\n slot, initialized to sender.\n

" + "html": "

\n Let transceiver have a [[Sender]] internal\n slot, initialized to sender.\n

" }, { "html": "

\n Let transceiver have a [[Receiver]]\n internal slot, initialized to receiver.\n

" @@ -3146,10 +2729,10 @@ "html": "

\n Let transceiver have a [[FiredDirection]]\n internal slot, initialized to null.\n

" }, { - "html": "

\n Let transceiver have a [[PreferredCodecs]]\n internal slot, initialized to an empty list.\n

" + "html": "

\n Let transceiver have a [[PreferredCodecs]]\n internal slot, initialized to an empty list.\n

" }, { - "html": "

\n Let transceiver have a [[JsepMid]]\n internal slot, initialized to null. This is the\n \"RtpTransceiver mid property\" defined in [RFC8829] (section 5.2.1. and section 5.3.1.), and is only\n modified there.\n

" + "html": "

\n Let transceiver have a [[JsepMid]]\n internal slot, initialized to null. This is the\n \"RtpTransceiver mid property\" defined in [RFC9429] (section 5.2.1. and section 5.3.1.), and is only\n modified there.\n

" }, { "html": "

\n Let transceiver have a [[Mid]] internal\n slot, initialized to null.\n

" @@ -3166,13 +2749,13 @@ "rationale": ".algorithm", "steps": [ { - "html": "

\n Let transceiver be the RTCRtpTransceiver\n object on which the getter is invoked.\n

" + "html": "

\n Let transceiver be the RTCRtpTransceiver\n object on which the getter is invoked.\n

" }, { - "html": "

\n If transceiver.[[Stopping]] is\n true, return\n \"stopped\".\n

" + "html": "

\n If transceiver.[[Stopping]] is\n true, return\n \"stopped\".\n

" }, { - "html": "

\n Otherwise, return the value of the [[Direction]]\n slot.\n

" + "html": "

\n Otherwise, return the value of the [[Direction]]\n slot.\n

" } ] }, @@ -3183,25 +2766,25 @@ "rationale": ".algorithm", "steps": [ { - "html": "

\n Let transceiver be the RTCRtpTransceiver\n object on which the setter is invoked.\n

" + "html": "

\n Let transceiver be the RTCRtpTransceiver\n object on which the setter is invoked.\n

" }, { - "html": "

\n Let connection be the RTCPeerConnection\n object associated with transceiver.\n

" + "html": "

\n Let connection be the RTCPeerConnection\n object associated with transceiver.\n

" }, { - "html": "

\n If transceiver.[[Stopping]] is\n true, throw an\n InvalidStateError.\n

" + "html": "

\n If transceiver.[[Stopping]] is\n true, throw an\n InvalidStateError.\n

" }, { "html": "

\n Let newDirection be the argument to the\n setter.\n

" }, { - "html": "

\n If newDirection is equal to\n transceiver.[[Direction]], abort these\n steps.\n

" + "html": "

\n If newDirection is equal to\n transceiver.[[Direction]], abort these\n steps.\n

" }, { - "html": "

\n If newDirection is equal to\n \"stopped\", throw a TypeError.\n

" + "html": "

\n If newDirection is equal to\n \"stopped\", throw a TypeError.\n

" }, { - "html": "

\n Set transceiver.[[Direction]] to\n newDirection.\n

" + "html": "

\n Set transceiver.[[Direction]] to\n newDirection.\n

" }, { "html": "

\n Update the negotiation-needed flag for\n connection.\n

" @@ -3215,36 +2798,36 @@ "rationale": ".algorithm", "steps": [ { - "html": "

\n Let transceiver be the RTCRtpTransceiver\n object on which the getter is invoked.\n

" + "html": "

\n Let transceiver be the RTCRtpTransceiver\n object on which the getter is invoked.\n

" }, { - "html": "

\n If transceiver.[[Stopped]] is\n true, return\n \"stopped\".\n

" + "html": "

\n If transceiver.[[Stopped]] is\n true, return\n \"stopped\".\n

" }, { - "html": "

\n Otherwise, return the value of the\n [[CurrentDirection]] slot.\n

" + "html": "

\n Otherwise, return the value of the\n [[CurrentDirection]] slot.\n

" } ] }, { "name": "RTCRtpTransceiver/stop()", "href": "https://www.w3.org/TR/webrtc/#dom-rtcrtptransceiver-stop", - "html": "When the stop method is invoked, the user agent MUST run\n the following steps:", + "html": "When the stop method is invoked, the user agent MUST run\n the following steps:", "rationale": ".algorithm", "steps": [ { - "html": "

\n Let transceiver be the RTCRtpTransceiver\n object on which the method is invoked.\n

" + "html": "

\n Let transceiver be the RTCRtpTransceiver\n object on which the method is invoked.\n

" }, { - "html": "

\n Let connection be the RTCPeerConnection\n object associated with transceiver.\n

" + "html": "

\n Let connection be the RTCPeerConnection\n object associated with transceiver.\n

" }, { - "html": "

\n If connection.[[IsClosed]] is\n true, throw an\n InvalidStateError.\n

" + "html": "

\n If connection.[[IsClosed]] is\n true, throw an\n InvalidStateError.\n

" }, { - "html": "

\n If transceiver.[[Stopping]] is\n true, abort these steps.\n

" + "html": "

\n If transceiver.[[Stopping]] is\n true, abort these steps.\n

" }, { - "html": "

\n Stop sending and receiving with\n transceiver.\n

" + "html": "

\n Stop sending and receiving with\n transceiver.\n

" }, { "html": "

\n Update the negotiation-needed flag for\n connection.\n

" @@ -3254,93 +2837,126 @@ { "name": "stop sending and receiving", "href": "https://www.w3.org/TR/webrtc/#dfn-stop-sending-and-receiving", - "html": "The stop sending and receiving algorithm given a\n transceiver and, optionally, a\n disappear boolean defaulting to\n false, is as follows:", + "html": "The stop sending and receiving algorithm given a\n transceiver and, optionally, a\n disappear boolean defaulting to\n false, is as follows:", "rationale": ".algorithm", "steps": [ { - "html": "

\n Let sender be\n transceiver.[[Sender]].\n

" - }, - { - "html": "

\n Let receiver be\n transceiver.[[Receiver]].\n

" + "html": "

\n Let sender be\n transceiver.[[Sender]].\n

" }, { - "html": "

\n Stop sending media with sender.\n

" + "html": "

\n Let receiver be\n transceiver.[[Receiver]].\n

" }, { - "html": "

\n Send an RTCP BYE for each RTP stream that was being sent\n by sender, as specified in [RFC3550].\n

" + "html": "

\n In parallel, stop sending media with sender, and\n send an RTCP BYE for each RTP stream that was being sent\n by sender, as specified in [RFC3550].\n

" }, { - "html": "

\n Stop receiving media with receiver.\n

" + "html": "

\n In parallel, stop receiving media with receiver.\n

" }, { - "html": "

\n If disappear is false, execute\n the steps for\n receiver.[[ReceiverTrack]] to be\n ended. This\n fires an event.\n

" + "html": "

\n If disappear is false, execute\n the steps for\n receiver.[[ReceiverTrack]] to be\n ended. This\n fires an event.\n

" }, { - "html": "

\n Set transceiver.[[Direction]] to\n \"inactive\".\n

" + "html": "

\n Set transceiver.[[Direction]] to\n \"inactive\".\n

" }, { - "html": "

\n Set transceiver.[[Stopping]] to\n true.\n

" + "html": "

\n Set transceiver.[[Stopping]] to\n true.\n

" } ] }, { "name": "stop the RTCRtpTransceiver", "href": "https://www.w3.org/TR/webrtc/#dfn-stop-the-rtcrtptransceiver", - "html": "The stop the RTCRtpTransceiver algorithm given a\n transceiver and, optionally, a\n disappear boolean defaulting to\n false, is as follows:", + "html": "The stop the RTCRtpTransceiver algorithm given a\n transceiver and, optionally, a\n disappear boolean defaulting to\n false, is as follows:", "rationale": ".algorithm", "steps": [ { - "html": "

\n If transceiver.[[Stopping]] is\n false, stop sending and receiving with\n transceiver and disappear.\n

" + "html": "

\n If transceiver.[[Stopping]] is\n false, stop sending and receiving with\n transceiver and disappear.\n

" }, { - "html": "

\n Set transceiver.[[Stopped]] to\n true.\n

" + "html": "

\n Set transceiver.[[Stopped]] to\n true.\n

" }, { - "html": "

\n Set transceiver.[[Receptive]] to\n false.\n

" + "html": "

\n Set transceiver.[[Receptive]] to\n false.\n

" }, { - "html": "

\n Set transceiver.[[CurrentDirection]]\n to null.\n

" + "html": "

\n Set transceiver.[[CurrentDirection]]\n to null.\n

" } ] }, { - "name": "RTCRtpTransceiver/setCodecPreferences()", - "href": "https://www.w3.org/TR/webrtc/#dom-rtcrtptransceiver-setcodecpreferences", - "html": "When setCodecPreferences() is invoked, the user\n agent MUST run the following steps:", + "html": "When setCodecPreferences() in is invoked, the user\n agent MUST run the following steps:", "rationale": ".algorithm", "steps": [ { - "html": "

\n Let transceiver be the RTCRtpTransceiver\n object this method was invoked on.\n

" + "html": "

\n Let transceiver be the RTCRtpTransceiver\n object this method was invoked on.\n

" }, { "html": "

\n Let codecs be the first argument.\n

" }, { - "html": "

\n If codecs is an empty list, set\n transceiver.[[PreferredCodecs]] to\n codecs and abort these steps.\n

" + "html": "

\n If codecs is an empty list, set\n transceiver.[[PreferredCodecs]] to\n codecs and abort these steps.\n

" + }, + { + "html": "

\n Remove any duplicate values in codecs. Start\n at the back of the list such that the priority of the\n codecs is maintained; the index of the first occurrence\n of a codec within the list is the same before and after\n this step.\n

" + }, + { + "html": "

\n Remove any duplicate values in\n codecs, ensuring that the first occurrence of each\n value remains in place.\n

" }, { - "html": "

\n Remove any duplicate values in codecs. Start\n at the back of the list such that the priority of the\n codecs is maintained; the index of the first occurrence\n of a codec within the list is the same before and after\n this step.\n

" + "html": "

\n Let kind be the transceiver's transceiver kind.\n

" }, { - "html": "

\n Let kind be the transceiver's transceiver kind.\n

" + "html": "

\n If the intersection between codecs and\n RTCRtpSender.getCapabilities(kind).codecs\n or the intersection between codecs and\n RTCRtpReceiver.getCapabilities(kind).codecs\n only contains RTX, RED or FEC codecs or is an empty set,\n throw InvalidModificationError. This ensures that we\n always have something to offer, regardless of\n transceiver.direction.\n

" }, { - "html": "

\n If the intersection between codecs and\n RTCRtpSender.getCapabilities(kind).codecs\n or the intersection between codecs and\n RTCRtpReceiver.getCapabilities(kind).codecs\n only contains RTX, RED or FEC codecs or is an empty set,\n throw InvalidModificationError. This ensures that we\n always have something to offer, regardless of\n transceiver.direction.\n

" + "html": "

\n Let codecCapabilities be the union of\n RTCRtpSender.getCapabilities(kind).codecs\n and\n be\n RTCRtpReceiver.getCapabilities(kind).codecs.\n

" }, { - "html": "

\n Let codecCapabilities be the union of\n RTCRtpSender.getCapabilities(kind).codecs\n and\n RTCRtpReceiver.getCapabilities(kind).codecs.\n

" + "html": "For each codec in codecs,", + "rationale": "if", + "steps": [ + { + "html": "If codec is not in\n codecCapabilities, throw\n InvalidModificationError." + } + ] }, { "html": "For each codec in codecs,", "rationale": "if", "steps": [ { - "html": "If codec is not in\n codecCapabilities, throw\n InvalidModificationError." + "html": "

If codec does not match any codec\n in codecCapabilities, throw InvalidModificationError.\n

" } ] }, { - "html": "

\n Set transceiver.[[PreferredCodecs]] to\n codecs.\n

" + "html": "

\n If codecs only contains entries for RTX, RED, FEC\n or Comfort Noise or is an empty set,\n throw InvalidModificationError. This ensures that we\n always have something to offer, regardless of\n transceiver.direction.\n

" + }, + { + "html": "

\n

\n Set transceiver.[[PreferredCodecs]] to\n codecs.\n

" + } + ] + }, + { + "name": "codec dictionary match", + "href": "https://www.w3.org/TR/webrtc/#dfn-codec-dictionary-match", + "html": "The codec dictionary match algorithm\n given two RTCRtpCodec dictionaries\n first and second is as follows:", + "rationale": ".algorithm", + "steps": [ + { + "html": "

\n If first.mimeType is not an\n ASCII case-insensitive match for\n second.mimeType, return false.\n

" + }, + { + "html": "

\n If first.clockRate is different from\n second.clockRate, return false.\n

" + }, + { + "html": "

\n If either (but not both) of first.channels\n and second.channels are missing,\n or if they both exist and first.channels\n is different from second.channels, return\n false.\n

" + }, + { + "html": "

\n If either (but not both) of first.sdpFmtpLine\n and second.sdpFmtpLine are missing,\n or if they both exist and first.sdpFmtpLine\n is different from second.sdpFmtpLine, return\n false.\n

" + }, + { + "html": "

\n Return true.\n

" } ] }, @@ -3349,94 +2965,117 @@ "rationale": ".algorithm", "steps": [ { - "html": "

\n Let transport be the RTCDtlsTransport object to\n receive the state update and error notification.\n

" + "html": "

\n Let transport be the RTCDtlsTransport object to\n receive the state update and error notification.\n

" }, { - "html": "

\n If the state of transport is already\n \"failed\", abort these steps.\n

" + "html": "

\n If the state of transport is already\n \"failed\", abort these steps.\n

" }, { - "html": "

\n Set transport.[[DtlsTransportState]] to\n \"failed\".\n

" + "html": "

\n Set transport.[[DtlsTransportState]] to\n \"failed\".\n

" }, { - "html": "

\n Fire an event named error using the\n RTCErrorEvent interface with its errorDetail attribute set to\n either \"dtls-failure\" or\n \"fingerprint-failure\", as appropriate, and\n other fields set as described under the RTCErrorDetailType\n enum description, at transport.\n

" + "html": "

\n Fire an event named error using the\n RTCErrorEvent interface with its errorDetail attribute set to\n either \"dtls-failure\" or\n \"fingerprint-failure\", as appropriate, and\n other fields set as described under the RTCErrorDetailType\n enum description, at transport.\n

" }, { - "html": "

\n Fire an event named statechange at\n transport.\n

" + "html": "

\n Fire an event named statechange at\n transport.\n

" } ] }, { - "html": "When the underlying DTLS transport needs to update the state of the\n corresponding RTCDtlsTransport object for any other reason, the\n user agent MUST queue a task that runs the following steps:", + "html": "When the underlying DTLS transport needs to update the state of the\n corresponding RTCDtlsTransport object for any other reason, the\n user agent MUST queue a task that runs the following steps:", "rationale": ".algorithm", "steps": [ { - "html": "

\n Let transport be the RTCDtlsTransport object to\n receive the state update.\n

" + "html": "

\n Let transport be the RTCDtlsTransport object to\n receive the state update.\n

" }, { "html": "

\n Let newState be the new state.\n

" }, { - "html": "

\n Set transport.[[DtlsTransportState]] to\n newState.\n

" + "html": "

\n Set transport.[[DtlsTransportState]] to\n newState.\n

" }, { - "html": "

\n If newState is connected\n then let newRemoteCertificates be the certificate\n chain in use by the remote side, with each certificate encoded in\n binary Distinguished Encoding Rules (DER) [X690], and set\n transport.[[RemoteCertificates]] to\n newRemoteCertificates.\n

" + "html": "

\n If newState is connected\n then let newRemoteCertificates be the certificate\n chain in use by the remote side, with each certificate encoded in\n binary Distinguished Encoding Rules (DER) [X690], and set\n transport.[[RemoteCertificates]] to\n newRemoteCertificates.\n

" }, { - "html": "

\n Fire an event named statechange at\n transport.\n

" + "html": "

\n Fire an event named statechange at\n transport.\n

" } ] }, { - "html": "When the ICE Agent indicates that it began gathering a generation of candidates for an RTCIceTransport, the user\n agent MUST queue a task that runs the following steps:", + "html": "When the ICE Agent indicates that it began gathering a generation of candidates for an RTCIceTransport transport\n associated with an RTCPeerConnection connection, the user\n agent MUST queue a task that runs the following steps:", "rationale": ".algorithm", "steps": [ { - "html": "

\n Let connection be the RTCPeerConnection object\n associated with this ICE Agent.\n

" + "html": "

\n Let connection be the RTCPeerConnection object\n associated with this ICE Agent.\n

" }, { - "html": "

\n If connection.[[IsClosed]] is\n true, abort these steps.\n

" + "html": "

\n

\n If connection.[[IsClosed]] is\n true, abort these steps.\n

" }, { - "html": "

\n Let transport be the RTCIceTransport for which\n candidate gathering began.\n

" + "html": "

\n Let transport be the RTCIceTransport for which\n candidate gathering began.\n

" }, { - "html": "

\n Set transport.[[IceGathererState]] to\n gathering.\n

" + "html": "

\n Set transport.[[IceGathererState]] to\n gathering.\n

.\n

" }, { - "html": "

\n Fire an event named gatheringstatechange at\n transport.\n

" + "html": "

\n Set connection.[[IceGatheringState]]\n to the value of deriving a new state value as described by the\n RTCIceGatheringState enum.\n

" }, { - "html": "

\n Update the ICE gathering state of connection.\n

" + "html": "

\n Let connectionIceGatheringStateChanged be\n true if\n connection.[[IceGatheringState]]\n changed in the previous step, otherwise false.\n

" + }, + { + "html": "

Do not read or modify state beyond this point.

" + }, + { + "html": "

\n Fire an event named gatheringstatechange at\n transport.\n

" + }, + { + "html": "

\n Update the ICE gathering state of connection.\n

" + }, + { + "html": "

\n If connectionIceGatheringStateChanged is\n true, fire an event named\n icegatheringstatechange at connection.\n

" } ] }, { - "html": "When the ICE Agent is finished gathering a generation of\n candidates for an RTCIceTransport, and those candidates have been\n surfaced to the application, the user agent MUST queue a task that\n runs the following steps:", + "html": "When the ICE Agent is finished gathering a generation of\n candidates for an RTCIceTransport transport associated\n with an RTCPeerConnection connection, and those candidates have been\n surfaced to the application, the user agent MUST queue a task that\n runs to run the following following\n steps:", "rationale": ".algorithm", "steps": [ { - "html": "

\n Let connection be the RTCPeerConnection object\n associated with this ICE Agent.\n

" + "html": "

\n Let connection be the RTCPeerConnection object\n associated with this ICE Agent.\n

" }, { - "html": "

\n If connection.[[IsClosed]] is\n true, abort these steps.\n

" + "html": "

\n If connection.[[IsClosed]] is\n true, abort these steps.\n

" }, { - "html": "

\n Let transport be the RTCIceTransport for which\n candidate gathering finished.\n

" + "html": "

\n Let transport be the RTCIceTransport for which\n candidate gathering finished.\n

" }, { - "html": "

\n Let newCandidate be the result of creating an RTCIceCandidate with a new dictionary whose\n sdpMid and\n sdpMLineIndex are set to the values\n associated with this RTCIceTransport,\n usernameFragment is set to the username\n fragment of the generation of candidates for which\n gathering finished, and candidate is set\n to an empty string.\n

" + "html": "

\n If connection.[[PendingLocalDescription]] is\n not null, and represents the ICE generation\n for which gathering finished, add\n a=end-of-candidates to\n connection.[[PendingLocalDescription]].sdp.\n

" }, { - "html": "

\n Fire an event named icecandidate using the\n RTCPeerConnectionIceEvent interface with the candidate\n attribute set to newCandidate at\n connection.\n

" + "html": "

\n If connection.[[CurrentLocalDescription]] is\n not null, and represents the ICE generation\n for which gathering finished, add\n a=end-of-candidates to\n connection.[[CurrentLocalDescription]].sdp.\n

" }, { - "html": "

\n If another generation of candidates is still being\n gathered, abort these steps.\n

" + "html": "

\n Let newCandidateendOfGatheringCandidate be the result of creating an\n an RTCIceCandidate with a new dictionary whose\n sdpMid and\n sdpMLineIndex are set to the values\n associated with this RTCIceTransport,\n usernameFragment is is set to the username\n fragment of the generation of candidates for which\n gathering finished, and candidate is set\n set to an empty string\"\".\n

" + }, + { + "html": "

\n Fire an event named icecandidate using the\n RTCPeerConnectionIceEvent interface with the candidate\n attribute set to newCandidateendOfGatheringCandidate at\n connection.\n

" + } + ] + }, + { + "rationale": "if", + "steps": [ + { + "html": "

\n If another generation of candidates is still being\n gathered, abort these steps.\n

" }, { - "html": "

\n Set transport.[[IceGathererState]] to\n complete.\n

" + "html": "

\n Set transport.[[IceGathererState]] to\n complete.\n

" }, { - "html": "

\n Fire an event named gatheringstatechange at\n transport.\n

" + "html": "

\n Fire an event named gatheringstatechange at\n transport.\n

" }, { "html": "

\n Update the ICE gathering state of connection.\n

" @@ -3444,81 +3083,113 @@ ] }, { - "html": "When the ICE Agent indicates that a new ICE candidate is\n available for an RTCIceTransport, either by taking one from the\n ICE candidate pool or gathering it\n from scratch, the user agent MUST queue a task that runs the\n following steps:", + "html": "When the ICE Agent has queued the above task, and no other\n generations of candidates is being gathered, the user agent\n MUST also queue a second task to run the following steps:", + "rationale": ".algorithm", + "steps": [ + { + "html": "

\n If connection.[[IsClosed]] is\n true, abort these steps.\n

" + }, + { + "html": "

\n Set transport.[[IceGathererState]] to\n complete.\n

" + }, + { + "html": "

\n Set connection.[[IceGatheringState]]\n to the value of deriving a new state value as described by the\n RTCIceGatheringState enum.\n

" + }, + { + "html": "

\n Let connectionIceGatheringStateChanged be\n true if\n connection.[[IceGatheringState]]\n changed in the previous step, otherwise false.\n

" + }, + { + "html": "

Do not read or modify state beyond this point.

" + }, + { + "html": "

\n Fire an event named gatheringstatechange at\n transport.\n

" + }, + { + "html": "

\n If connectionIceGatheringStateChanged is\n true, fire an event named\n icegatheringstatechange at connection.\n

" + }, + { + "html": "

\n Fire an event\n named icecandidate using the\n RTCPeerConnectionIceEvent interface with the candidate\n attribute set to null at connection.\n

" + } + ] + }, + { + "html": "When the ICE Agent indicates that a new ICE candidate is\n available for an RTCIceTransport, either by taking one from the\n ICE candidate pool or gathering it\n from scratch, the user agent MUST queue a task that runs the\n following steps:", "rationale": ".algorithm", "steps": [ { "html": "

\n Let candidate be the available ICE candidate.\n

" }, { - "html": "

\n Let connection be the RTCPeerConnection object\n associated with this ICE Agent.\n

" + "html": "

\n Let connection be the RTCPeerConnection object\n associated with this ICE Agent.\n

" }, { - "html": "

\n If connection.[[IsClosed]] is\n true, abort these steps.\n

" + "html": "

\n If connection.[[IsClosed]] is\n true, abort these steps.\n

" }, { - "html": "

\n If either\n connection.[[PendingLocalDescription]] or\n connection.[[CurrentLocalDescription]] are not\n null, and represent the ICE generation for\n which candidate was gathered, surface the candidate with candidate and connection, and abort\n these steps.\n

" + "html": "

\n If either\n connection.[[PendingLocalDescription]] or\n connection.[[CurrentLocalDescription]] are not\n null, and represent the ICE generation for\n which candidate was gathered, surface the candidate with candidate and connection, and abort\n these steps.\n

" }, { - "html": "

\n Otherwise, append candidate to\n connection.[[EarlyCandidates]].\n

" + "html": "

\n Otherwise, append candidate to\n connection.[[EarlyCandidates]].\n

" } ] }, { "name": "release early candidates", "href": "https://www.w3.org/TR/webrtc/#dfn-release-early-candidates", - "html": "To release early candidates of a connection,\n run the following steps:", + "html": "To release early candidates of a connection,\n run the following steps:", "rationale": ".algorithm", "steps": [ { - "html": "

\n For each candidate, candidate, in\n connection.[[EarlyCandidates]], queue a task\n to surface the candidate with candidate and\n connection.\n

" + "html": "

\n For each candidate, candidate, in\n connection.[[EarlyCandidates]], queue a task\n to surface the candidate with candidate and\n connection.\n

" }, { - "html": "

\n Set connection.[[EarlyCandidates]] to an empty\n list.\n

" + "html": "

\n Set connection.[[EarlyCandidates]] to an empty\n list.\n

" } ] }, { "name": "surface the candidate", "href": "https://www.w3.org/TR/webrtc/#dfn-surface-the-candidate", - "html": "To surface a candidate\n with candidate and connection, run the\n following steps:", + "html": "To surface a candidate\n with candidate and connection, run the\n following steps:", "rationale": ".algorithm", "steps": [ { - "html": "

\n If connection.[[IsClosed]] is\n true, abort these steps.\n

" + "html": "

\n If connection.[[IsClosed]] is\n true, abort these steps.\n

" }, { - "html": "

\n Let transport be the RTCIceTransport for which\n candidate is being made available.\n

" + "html": "

\n Let transport be the RTCIceTransport for which\n candidate is being made available.\n

" }, { - "html": "

\n If connection.[[PendingLocalDescription]] is\n not null, and represents the ICE generation\n for which candidate was gathered, add\n candidate to\n connection.[[PendingLocalDescription]].sdp.\n

" + "html": "

\n If connection.[[PendingLocalDescription]] is\n not null, and represents the ICE generation\n for which candidate was gathered, add\n candidate to\n connection.[[PendingLocalDescription]].sdp.\n

" }, { - "html": "

\n If connection.[[CurrentLocalDescription]] is\n not null, and represents the ICE generation\n for which candidate was gathered, add\n candidate to\n connection.[[CurrentLocalDescription]].sdp.\n

" + "html": "

\n If connection.[[CurrentLocalDescription]] is\n not null, and represents the ICE generation\n for which candidate was gathered, add\n candidate to\n connection.[[CurrentLocalDescription]].sdp.\n

" }, { - "html": "

\n Let newCandidate be the result of creating an RTCIceCandidate with a new dictionary whose\n sdpMid and\n sdpMLineIndex are set to the values\n associated with this RTCIceTransport,\n usernameFragment is set to the username\n fragment of the candidate, and candidate\n is set to a string encoded using the candidate-attribute\n grammar to represent candidate.\n

" + "html": "

\n Let newCandidate be the result of creating an RTCIceCandidate with a new dictionary whose\n sdpMid and\n sdpMLineIndex are set to the values\n associated with this RTCIceTransport,\n usernameFragment is set to the username\n fragment of the candidate, and candidate\n is set to a string encoded using the candidate-attribute\n grammar to represent candidate.\n

" }, { "html": "

\n Add newCandidate to transport's set of\n local candidates.\n

" }, { - "html": "

\n Fire an event named icecandidate using the\n RTCPeerConnectionIceEvent interface with the candidate\n attribute set to newCandidate at\n connection.\n

" + "html": "

\n Fire an event named icecandidate using the\n RTCPeerConnectionIceEvent interface with the candidate\n attribute set to newCandidate at\n connection.\n

" } ] }, { - "html": "When the ICE Agent indicates that an RTCIceTransport has\n changed either the selected candidate pair, the\n RTCIceTransportState or both, the user agent MUST queue a task\n that runs the following steps:", + "name": "RTCIceTransport/change the selected candidate pair and state", + "href": "https://www.w3.org/TR/webrtc/#dfn-change-the-selected-candidate-pair-and-state", + "html": "When the ICE Agent indicates that an RTCIceTransport has\n changed either the selected candidate pair, the\n RTCIceTransportState or both, the user agent MUST queue a task\n that runs the steps to change the selected candidate pair and state:", "rationale": ".algorithm", "steps": [ { - "html": "

\n Let connection be the RTCPeerConnection object\n associated with this ICE Agent.\n

" + "html": "

\n Let connection be the RTCPeerConnection object\n associated with this ICE Agent.\n

" }, { - "html": "

\n If connection.[[IsClosed]] is\n true, abort these steps.\n

" + "html": "

\n If connection.[[IsClosed]] is\n true, abort these steps.\n

" }, { - "html": "

\n Let transport be the RTCIceTransport whose state\n is changing.\n

" + "html": "

\n Let transport be the RTCIceTransport whose state\n is changing.\n

" }, { "html": "

\n Let selectedCandidatePairChanged be\n false.\n

" @@ -3537,10 +3208,10 @@ "rationale": "let", "steps": [ { - "html": "

\n Let newCandidatePair be a newly created\n RTCIceCandidatePair representing the indicated pair if\n one is selected, and null otherwise.\n

" + "html": "

\n Let newCandidatePair be the result of creating an RTCIceCandidatePair with local and remote, representing the local and remote candidates of the indicated pair if one is selected, and null otherwise.\n

" }, { - "html": "

\n Set transport.[[SelectedCandidatePair]] to\n newCandidatePair.\n

" + "html": "

\n Set transport.[[SelectedCandidatePair]] to\n newCandidatePair.\n

" }, { "html": "

\n Set selectedCandidatePairChanged to\n true.\n

" @@ -3548,131 +3219,154 @@ ] }, { - "html": "If transport's RTCIceTransportState was changed,\n run the following steps:", + "html": "If transport's RTCIceTransportState was changed,\n run the following steps:", "rationale": "set", "steps": [ { - "html": "

\n Set transport.[[IceTransportState]] to the\n new indicated RTCIceTransportState.\n

" + "html": "

\n Set transport.[[IceTransportState]] to the\n new indicated RTCIceTransportState.\n

" }, { "html": "

\n Set transportIceConnectionStateChanged to\n true.\n

" }, { - "html": "

\n Set connection's ICE connection state to the\n value of deriving a new state value as described by the\n RTCIceConnectionState enum.\n

" + "html": "

\n Set connection.[[IceConnectionState]] to the\n value of deriving a new state value as described by the\n RTCIceConnectionState enum.\n

" }, { - "html": "

\n If the ice connection state changed in the previous\n step, set connectionIceConnectionStateChanged to\n true.\n

" + "html": "

\n If connection.[[IceConnectionState]]\n changed in the previous\n step, set connectionIceConnectionStateChanged to\n true.\n

" }, { - "html": "

\n Set connection's connection state to the\n value of deriving a new state value as described by the\n RTCPeerConnectionState enum.\n

" + "html": "

\n Set connection.[[ConnectionState]] to the\n value of deriving a new state value as described by the\n RTCPeerConnectionState enum.\n

" }, { - "html": "

\n If the connection state changed in the previous step,\n set connectionStateChanged to true.\n

" + "html": "

\n If connection.[[ConnectionState]]\n changed in the previous step,\n set connectionStateChanged to true.\n

" } ] }, { - "html": "

\n If selectedCandidatePairChanged is true,\n fire an event named selectedcandidatepairchange at\n transport.\n

" + "html": "

\n If selectedCandidatePairChanged is true,\n fire an event named selectedcandidatepairchange at\n transport.\n

" + }, + { + "html": "

\n If transportIceConnectionStateChanged is\n true, fire an event named statechange at\n transport.\n

" + }, + { + "html": "

\n If connectionIceConnectionStateChanged is\n true, fire an event named\n iceconnectionstatechange at connection.\n

" + }, + { + "html": "

\n If connectionStateChanged is true, fire an event named connectionstatechange at\n connection.\n

" + } + ] + }, + { + "name": "RTCIceCandidatePair/[[Local]]", + "href": "https://www.w3.org/TR/webrtc/#dfn-local", + "html": "To create an RTCIceCandidatePair with RTCIceCandidate objects, local and remote, run the following steps:", + "rationale": ".algorithm", + "steps": [ + { + "html": "Let candidatePair be a newly created RTCIceCandidatePair object." }, { - "html": "

\n If transportIceConnectionStateChanged is\n true, fire an event named statechange at\n transport.\n

" + "html": "Let candidatePair have a [[Local]] internal slot, initialized to local." }, { - "html": "

\n If connectionIceConnectionStateChanged is\n true, fire an event named\n iceconnectionstatechange at connection.\n

" + "html": "Let candidatePair have a [[Remote]] internal slot, initialized to remote." }, { - "html": "

\n If connectionStateChanged is true, fire an event named connectionstatechange at\n connection.\n

" + "html": "Return candidatePair." } ] }, { "name": "RTCPeerConnection/createDataChannel()", "href": "https://www.w3.org/TR/webrtc/#dom-peerconnection-createdatachannel", - "html": "When the createDataChannel method is invoked, the user\n agent MUST run the following steps.", + "html": "When the createDataChannel method is invoked, the user\n agent MUST run the following steps.", "rationale": ".algorithm", "steps": [ { - "html": "

\n Let connection be the RTCPeerConnection\n object on which the method is invoked.\n

" + "html": "

\n Let connection be the RTCPeerConnection\n object on which the method is invoked.\n

" }, { - "html": "

\n If connection.[[IsClosed]] is\n true, throw an\n InvalidStateError.\n

" + "html": "

\n If connection.[[IsClosed]] is\n true, throw an\n InvalidStateError.\n

" }, { - "html": "

\n Create an RTCDataChannel, channel.\n

" + "html": "

\n Create an RTCDataChannel, channel.\n

" }, { - "html": "

\n Initialize\n channel.[[DataChannelLabel]] to the\n value of the first argument.\n

" + "html": "

\n Initialize\n channel.[[DataChannelLabel]] to the\n value of the first argument.\n

" }, { - "html": "

\n If the UTF-8 representation of\n [[DataChannelLabel]] is longer than 65535 bytes,\n throw a TypeError.\n

" + "html": "

\n If the UTF-8 representation of\n [[DataChannelLabel]] is longer than 65535 bytes,\n throw a TypeError.\n

" }, { "html": "

\n Let options be the second argument.\n

" }, { - "html": "

\n Initialize\n channel.[[MaxPacketLifeTime]] to\n option.maxPacketLifeTime,\n if present, otherwise null.\n

" + "html": "

\n Initialize\n channel.[[MaxPacketLifeTime]] to\n option.maxPacketLifeTime,\n if present, otherwise null.\n

" + }, + { + "html": "

\n Initialize channel.[[MaxRetransmits]]\n to\n option.maxRetransmits,\n if present, otherwise null.\n

" }, { - "html": "

\n Initialize channel.[[MaxRetransmits]]\n to\n option.maxRetransmits,\n if present, otherwise null.\n

" + "html": "

\n Initialize channel.[[Ordered]] to\n option.ordered.\n

" }, { - "html": "

\n Initialize channel.[[Ordered]] to\n option.ordered.\n

" + "html": "

\n Initialize\n channel.[[DataChannelProtocol]] to\n option.protocol.\n

" }, { - "html": "

\n Initialize\n channel.[[DataChannelProtocol]] to\n option.protocol.\n

" + "html": "

\n If the UTF-8 representation of\n [[DataChannelProtocol]] is longer than 65535\n bytes, throw a TypeError.\n

" }, { - "html": "

\n If the UTF-8 representation of\n [[DataChannelProtocol]] is longer than 65535\n bytes, throw a TypeError.\n

" + "html": "

\n Initialize channel.[[Negotiated]] to\n option.negotiated.\n

" }, { - "html": "

\n Initialize channel.[[Negotiated]] to\n option.negotiated.\n

" + "html": "

\n Initialize channel.[[DataChannelId]]\n to the value of\n option.id, if it is\n present and [[Negotiated]] is true, otherwise\n null.\n

" }, { - "html": "

\n Initialize channel.[[DataChannelId]]\n to the value of\n option.id, if it is\n present and [[Negotiated]] is true, otherwise\n null.\n

" + "html": "

\n If [[Negotiated]] is true and\n [[DataChannelId]] is null, throw a TypeError.\n

" }, { - "html": "

\n If [[Negotiated]] is true and\n [[DataChannelId]] is null, throw a TypeError.\n

" + "html": "

\n If both [[MaxPacketLifeTime]] and\n [[MaxRetransmits]] attributes are set (not null),\n throw a TypeError.\n

" }, { - "html": "

\n If both [[MaxPacketLifeTime]] and\n [[MaxRetransmits]] attributes are set (not null),\n throw a TypeError.\n

" + "html": "

\n If a setting, either [[MaxPacketLifeTime]] or\n [[MaxRetransmits]], has been set to indicate\n unreliable mode, and that value exceeds the maximum value\n supported by the user agent, the value MUST be set to the\n user agents maximum value.\n

" }, { - "html": "

\n If a setting, either [[MaxPacketLifeTime]] or\n [[MaxRetransmits]], has been set to indicate\n unreliable mode, and that value exceeds the maximum value\n supported by the user agent, the value MUST be set to the\n user agents maximum value.\n

" + "html": "

\n If [[DataChannelId]] is equal to 65535, which is\n greater than the maximum allowed ID of 65534 but still\n qualifies as an unsigned\n short, throw a TypeError.\n

" }, { - "html": "

\n If [[DataChannelId]] is equal to 65535, which is\n greater than the maximum allowed ID of 65534 but still\n qualifies as an unsigned\n short, throw a TypeError.\n

" + "html": "

\n If the [[DataChannelId]] slot is\n null (due to no ID being passed into\n createDataChannel, or [[Negotiated]] being\n false), and the DTLS role of the SCTP transport has\n already been negotiated, then initialize\n [[DataChannelId]] to a value generated by the\n user agent, according to [RFC8832], and\n skip to the next step. If no available ID could be\n generated, or if the value of the\n [[DataChannelId]] slot is being used by an\n existing RTCDataChannel, throw an\n OperationError exception.\n

" }, { - "html": "

\n If the [[DataChannelId]] slot is\n null (due to no ID being passed into\n createDataChannel, or [[Negotiated]] being\n false), and the DTLS role of the SCTP transport has\n already been negotiated, then initialize\n [[DataChannelId]] to a value generated by the\n user agent, according to [RFC8832], and\n skip to the next step. If no available ID could be\n generated, or if the value of the\n [[DataChannelId]] slot is being used by an\n existing RTCDataChannel, throw an\n OperationError exception.\n

" + "html": "

\n Let transport be\n connection.[[SctpTransport]].\n

\n

\n If the [[DataChannelId]] slot is not\n null, transport is in the\n \"connected\" state and\n [[DataChannelId]] is greater or equal to\n transport.[[MaxChannels]], throw an OperationError.\n

" }, { - "html": "

\n Let transport be\n connection.[[SctpTransport]].\n

\n

\n If the [[DataChannelId]] slot is not\n null, transport is in the\n \"connected\" state and\n [[DataChannelId]] is greater or equal to\n transport.[[MaxChannels]], throw an OperationError.\n

" + "html": "

\n If channel is the first RTCDataChannel\n created on connection, update the negotiation-needed flag for connection.\n

" }, { - "html": "

\n If channel is the first RTCDataChannel\n created on connection, update the negotiation-needed flag for connection.\n

" + "html": "

\n Append channel to\n connection.[[DataChannels]].\n

" }, { - "html": "

\n Return channel and continue the following\n steps in parallel.\n

" + "html": "

\n Return channel and continue the following\n steps in parallel.\n

" }, { - "html": "

\n Create channel's associated underlying data transport and configure it according to the relevant\n properties of channel.\n

" + "html": "

\n Create channel's associated underlying data transport and configure it according to the relevant\n properties of channel.\n

" } ] }, { "name": "RTCSctpTransport/[[SctpTransportState]]", "href": "https://www.w3.org/TR/webrtc/#dfn-sctptransportstate", - "html": "To create an RTCSctpTransport with an initial\n state, initialState, run the following steps:", + "html": "To create an RTCSctpTransport with an initial\n state, initialState, run the following steps:", "rationale": ".algorithm", "steps": [ { - "html": "

\n Let transport be a new RTCSctpTransport\n object.\n

" + "html": "

\n Let transport be a new RTCSctpTransport\n object.\n

" }, { "html": "

\n Let transport have a\n [[SctpTransportState]] internal slot initialized\n to initialState.\n

" }, { - "html": "

\n Let transport have a\n [[MaxMessageSize]] internal slot and run the\n steps labeled update the data max message size to\n initialize it.\n

" + "html": "

\n Let transport have a\n [[MaxMessageSize]] internal slot and run the\n steps labeled update the data max message size to\n initialize it.\n

" }, { "html": "

\n Let transport have a [[MaxChannels]]\n internal slot initialized to null.\n

" @@ -3685,11 +3379,11 @@ { "name": "update the data max message size", "href": "https://www.w3.org/TR/webrtc/#dfn-update-the-data-max-message-size", - "html": "To update the data max message size of an\n RTCSctpTransport run the following steps:", + "html": "To update the data max message size of an\n RTCSctpTransport run the following steps:", "rationale": ".algorithm", "steps": [ { - "html": "

\n Let transport be the RTCSctpTransport object\n to be updated.\n

" + "html": "

\n Let transport be the RTCSctpTransport object\n to be updated.\n

" }, { "html": "

\n Let remoteMaxMessageSize be the value of the\n max-message-size SDP attribute read\n from the remote description, as described in [RFC8841]\n (section 6), or 65536 if the attribute is missing.\n

" @@ -3698,62 +3392,62 @@ "html": "

\n Let canSendSize be the number of bytes that this\n client can send (i.e. the size of the local send buffer) or 0\n if the implementation can handle messages of any size.\n

" }, { - "html": "

\n If both remoteMaxMessageSize and\n canSendSize are 0, set [[MaxMessageSize]]\n to the positive Infinity value.\n

" + "html": "

\n If both remoteMaxMessageSize and\n canSendSize are 0, set [[MaxMessageSize]]\n to the positive Infinity value.\n

" }, { - "html": "

\n Else, if either remoteMaxMessageSize or\n canSendSize is 0, set [[MaxMessageSize]]\n to the larger of the two.\n

" + "html": "

\n Else, if either remoteMaxMessageSize or\n canSendSize is 0, set [[MaxMessageSize]]\n to the larger of the two.\n

" }, { - "html": "

\n Else, set [[MaxMessageSize]] to the smaller of\n remoteMaxMessageSize or canSendSize.\n

" + "html": "

\n Else, set [[MaxMessageSize]] to the smaller of\n remoteMaxMessageSize or canSendSize.\n

" } ] }, { "name": "rtcsctptransport connected", "href": "https://www.w3.org/TR/webrtc/#dfn-rtcsctptransport-connected", - "html": "Once an SCTP transport\n is connected, meaning the SCTP association of an RTCSctpTransport has been established, run the following steps:", + "html": "Once an SCTP transport\n is connected, meaning the SCTP association of an RTCSctpTransport has been established, run the following steps:", "rationale": ".algorithm", "steps": [ { - "html": "

\n Let transport be the RTCSctpTransport object.\n

" + "html": "

\n Let transport be the RTCSctpTransport object.\n

" }, { - "html": "

\n Let connection be the RTCPeerConnection object\n associated with transport.\n

" + "html": "

\n Let connection be the RTCPeerConnection object\n associated with transport.\n

" }, { - "html": "

\n Set [[MaxChannels]] to the minimum of the negotiated\n amount of incoming and outgoing SCTP streams.\n

" + "html": "

\n Set [[MaxChannels]] to the minimum of the negotiated\n amount of incoming and outgoing SCTP streams.\n

" }, { - "html": "For each of connection's RTCDataChannel:", + "html": "For each of connection's RTCDataChannel:", "rationale": "let", "steps": [ { - "html": "

\n Let channel be the RTCDataChannel object.\n

" + "html": "

\n Let channel be the RTCDataChannel object.\n

" }, { - "html": "

\n If channel.[[DataChannelId]] is\n null, initialize [[DataChannelId]]\n to the value generated by the underlying sctp data\n channel, according to [RFC8832].\n

" + "html": "

\n If channel.[[DataChannelId]] is\n null, initialize [[DataChannelId]]\n to the value generated by the underlying sctp data\n channel, according to [RFC8832].\n

" }, { - "html": "

\n If channel.[[DataChannelId]] is\n greater or equal to\n transport.[[MaxChannels]], or the\n previous step failed to assign an id, close the channel due\n to a failure. Otherwise, announce the channel as open.\n

" + "html": "

\n If channel.[[DataChannelId]] is\n greater or equal to\n transport.[[MaxChannels]], or the\n previous step failed to assign an id, close the channel due\n to a failure. Otherwise, announce the channel as open.\n

" } ] }, { - "html": "

\n Fire an event named statechange at\n transport.\n

" + "html": "

\n Fire an event named statechange at\n transport.\n

" } ] }, { "name": "RTCDataChannel/[[ReadyState]]", "href": "https://www.w3.org/TR/webrtc/#dfn-readystate", - "html": "To create an RTCDataChannel, run the following\n steps:", + "html": "To create an RTCDataChannel, run the following\n steps:", "rationale": ".algorithm", "steps": [ { - "html": "

\n Let channel be a newly created RTCDataChannel\n object.\n

" + "html": "

\n Let channel be a newly created RTCDataChannel\n object.\n

" }, { - "html": "

\n Let channel have a [[ReadyState]]\n internal slot initialized to\n \"connecting\".\n

" + "html": "

\n Let channel have a [[ReadyState]]\n internal slot initialized to\n \"connecting\".\n

" }, { "html": "

\n Let channel have a [[BufferedAmount]]\n internal slot initialized to 0.\n

" @@ -3761,6 +3455,18 @@ { "html": "

\n Let channel have internal slots named\n [[DataChannelLabel]], [[Ordered]],\n [[MaxPacketLifeTime]],\n [[MaxRetransmits]],\n [[DataChannelProtocol]],\n [[Negotiated]], and [[DataChannelId]].\n

" }, + { + "html": "
Candidate Addition 48:Make RTCDataChannel transferable to DedicatedWorker (PR #2988)
Let channel have a [[IsTransferable]] internal slot initialized to true." + }, + { + "rationale": "set", + "steps": [ + { + "html": "Set channel.[[IsTransferable]] to false." + } + ], + "html": "
Candidate Addition 48:Make RTCDataChannel transferable to DedicatedWorker (PR #2988)
Queue a task to run the following step:\n\t

This task needs to run before any task enqueued by the receiving messages on a data channel algorithm for channel.\n\t\tThis ensures that no message is lost during the transfer of a RTCDataChannel.

\n\t
" + }, { "html": "

\n Return channel.\n

" } @@ -3769,86 +3475,95 @@ { "name": "announce the rtcdatachannel as open", "href": "https://www.w3.org/TR/webrtc/#announce-datachannel-open", - "html": "When the user agent is to announce an RTCDataChannel as\n open, the user agent MUST queue a task to run the following\n steps:", + "html": "When the user agent is to announce an RTCDataChannel as\n open, the user agent MUST queue a task to run the following\n steps:", "rationale": ".algorithm", "steps": [ { - "html": "

\n If the associated RTCPeerConnection object's\n [[IsClosed]] slot is true, abort these\n steps.\n

" + "html": "

\n If the associated RTCPeerConnection object's\n [[IsClosed]] slot is true, abort these\n steps.\n

" }, { - "html": "

\n Let channel be the RTCDataChannel object to be\n announced.\n

" + "html": "

\n Let channel be the RTCDataChannel object to be\n announced.\n

" }, { - "html": "

\n If channel.[[ReadyState]] is\n \"closing\" or\n \"closed\", abort these steps.\n

" + "html": "

\n If channel.[[ReadyState]] is\n \"closing\" or\n \"closed\", abort these steps.\n

" }, { - "html": "

\n Set channel.[[ReadyState]] to\n \"open\".\n

" + "html": "

\n Set channel.[[ReadyState]] to\n \"open\".\n

" }, { - "html": "

\n Fire an event named open at channel.\n

" + "html": "

\n Fire an event named open at channel.\n

" } ] }, { - "html": "When an underlying data transport is to be announced (the\n other peer created a channel with negotiated\n unset or set to false), the user agent of the peer that did not\n initiate the creation process MUST queue a task to run the\n following steps:", + "html": "When an underlying data transport is to be announced (the\n other peer created a channel with negotiated\n unset or set to false), the user agent of the peer that did not\n initiate the creation process MUST queue a task to run the\n following steps:", "rationale": ".algorithm", "steps": [ { - "html": "

\n Let connection be the RTCPeerConnection object\n associated with the underlying data transport.\n

" + "html": "

\n Let connection be the RTCPeerConnection object\n associated with the underlying data transport.\n

" + }, + { + "html": "

\n If connection.[[IsClosed]] is\n true, abort these steps.\n

" }, { - "html": "

\n If connection.[[IsClosed]] is\n true, abort these steps.\n

" + "html": "

\n Create an RTCDataChannel, channel.\n

" }, { - "html": "

\n Create an RTCDataChannel, channel.\n

" + "html": "

\n Let configuration be an information bundle received\n from the other peer as a part of the process to establish the\n underlying data transport described by the WebRTC\n DataChannel Protocol specification [RFC8832].\n

" }, { - "html": "

\n Let configuration be an information bundle received\n from the other peer as a part of the process to establish the\n underlying data transport described by the WebRTC\n DataChannel Protocol specification [RFC8832].\n

" + "html": "

\n Initialize channel.[[DataChannelLabel]],\n [[Ordered]], [[MaxPacketLifeTime]],\n [[MaxRetransmits]], [[DataChannelProtocol]],\n and [[DataChannelId]] internal slots to the\n corresponding values in configuration.\n

" }, { - "html": "

\n Initialize channel.[[DataChannelLabel]],\n [[Ordered]], [[MaxPacketLifeTime]],\n [[MaxRetransmits]], [[DataChannelProtocol]],\n and [[DataChannelId]] internal slots to the\n corresponding values in configuration.\n

" + "html": "

\n Initialize channel.[[Negotiated]] to\n false.\n

" }, { - "html": "

\n Initialize channel.[[Negotiated]] to\n false.\n

" + "html": "

\n Append channel to\n connection.[[DataChannels]].\n

" }, { - "html": "

\n Set channel.[[ReadyState]] to\n \"open\" (but do not fire the open\n event, yet).\n

" + "html": "

\n Set channel.[[ReadyState]] to\n \"open\" (but do not fire the open\n event, yet).\n

" }, { - "html": "

\n Fire an event named datachannel using the\n RTCDataChannelEvent interface with the\n channel attribute set to\n channel at connection.\n

" + "html": "

\n Fire an event named datachannel using the\n RTCDataChannelEvent interface with the\n channel attribute set to\n channel at connection.\n

" }, { - "html": "

\n Announce the data channel as open.\n

" + "html": "

\n Announce the data channel as open.\n

" } ] }, { "name": "closing procedure", "href": "https://www.w3.org/TR/webrtc/#data-transport-closing-procedure", - "html": "An RTCDataChannel object's underlying data transport may\n be torn down in a non-abrupt manner by running the closing procedure. When\n that happens the user agent MUST queue a task to run the following\n steps:", + "html": "An RTCDataChannel object's underlying data transport may\n be torn down in a non-abrupt manner by running the closing procedure. When\n that happens the user agent MUST queue a task to run the following\n steps:", "rationale": ".algorithm", "steps": [ { - "html": "

\n Let channel be the RTCDataChannel object whose\n underlying data transport was closed.\n

" + "html": "

\n Let channel be the RTCDataChannel object whose\n underlying data transport was closed.\n

" }, { - "html": "

\n Unless the procedure was initiated by\n channel.close, set\n channel.[[ReadyState]] to\n \"closing\" and fire an event named\n closing at channel.\n

" + "html": "

\n Let connection be the RTCPeerConnection object\n associated with channel.\n

" }, { - "html": "Run the following steps in parallel:", + "html": "

\n Remove channel from connection.[[DataChannels]].\n

" + }, + { + "html": "

\n

\n Unless the procedure was initiated by\n channel.close, set\n channel.[[ReadyState]] to\n \"closing\" and fire an event named\n closing at channel.\n

" + }, + { + "html": "Run the following steps in parallelin parallel:", "rationale": "finish", "steps": [ { "html": "

\n Finish sending all currently pending messages of the\n channel.\n

" }, { - "html": "

\n Follow the closing procedure defined for the\n channel's underlying data transport :\n

", + "html": "

\n Follow the closing procedure defined for the\n channel's underlying data transport :\n

", "ignored": [ "In the case of an SCTP-based transport, follow [RFC8831], section 6.7." ] }, { - "html": "

\n Close the channel's data transport\n by following the associated procedure.\n

" + "html": "

\n Render Close the channel's data transport\n closed \n by following the associated procedure.\n

" } ] } @@ -3857,121 +3572,202 @@ { "name": "RTCDataChannel underlying data transport/closed", "href": "https://www.w3.org/TR/webrtc/#data-transport-closed", - "html": "When an RTCDataChannel object's underlying data transport\n has been closed, the user agent MUST queue a task to run the\n following steps:", + "html": "When an RTCDataChannel object's underlying data transport\n has been closed, the user agent MUST queue a task to run the\n following steps:", "rationale": ".algorithm", "steps": [ { - "html": "

\n Let channel be the RTCDataChannel object whose\n underlying data transport was closed.\n

" + "html": "

\n Let channel be the RTCDataChannel object whose\n underlying data transport was closed.\n

" + }, + { + "html": "If channel.[[ReadyState]] is\n \"closed\", abort these steps." + }, + { + "html": "

\n Set channel.[[ReadyState]] to\n \"closed\".\n

" + }, + { + "html": "

\n Remove channel from connection.[[DataChannels]]\n if it is still there.\n

" + }, + { + "html": "

\n If the transport was closed\n with an error, fire an event named error using the RTCErrorEvent\n interface with its errorDetail attribute set to\n \"sctp-failure\" at channel.\n

" + }, + { + "html": "

\n Fire an event named close at channel.\n

" + } + ] + }, + { + "html": "The RTCDataChannel transfer steps, given value and dataHolder, are:", + "rationale": "if", + "steps": [ + { + "html": "

If value.[[IsTransferable]] is false, throw a DataCloneError DOMException.

" + }, + { + "html": "

Set dataHolder.[[ReadyState]] to value.[[ReadyState]].

" + }, + { + "html": "

Set dataHolder.[[DataChannelLabel]] to value.[[DataChannelLabel]].

" + }, + { + "html": "

Set dataHolder.[[Ordered]] to value.[[Ordered]].

" + }, + { + "html": "

Set dataHolder.[[MaxPacketLifeTime]] to value..[[MaxPacketLifeTime]]

" + }, + { + "html": "

Set dataHolder.[[MaxRetransmits]] to value.[[MaxRetransmits]].

" + }, + { + "html": "

Set dataHolder.[[DataChannelProtocol]] to value.[[DataChannelProtocol]].

" + }, + { + "html": "

Set dataHolder.[[Negotiated]] to value.[[Negotiated]].

" + }, + { + "html": "

Set dataHolder.[[DataChannelId]] to value.[[DataChannelId]].

" + }, + { + "html": "

Set dataHolder’s underlying data transport to value underlying data transport.

" + }, + { + "html": "

Set value.[[IsTransferable]] to false.

" + }, + { + "html": "

Set value.[[ReadyState]] to \"closed\".

" + } + ] + }, + { + "html": "The RTCDataChannel transfer-receiving steps, given dataHolder and channel, are:", + "rationale": "initialize", + "steps": [ + { + "html": "

Initialize channel.[[ReadyState]] to dataHolder.[[ReadyState]].

" + }, + { + "html": "

Initialize channel.[[DataChannelLabel]] to dataHolder.[[DataChannelLabel]].

" + }, + { + "html": "

Initialize channel.[[Ordered]] to dataHolder.[[Ordered]].

" + }, + { + "html": "

Initialize channel.[[MaxPacketLifeTime]] to dataHolder.[[MaxPacketLifeTime]].

" }, { - "html": "If channel.[[ReadyState]] is\n \"closed\", abort these steps." + "html": "

Initialize channel.[[MaxRetransmits]] to dataHolder.[[MaxRetransmits]].

" }, { - "html": "

\n Set channel.[[ReadyState]] to\n \"closed\".\n

" + "html": "

Initialize channel.[[DataChannelProtocol]] to dataHolder.[[DataChannelProtocol]].

" }, { - "html": "

\n If the transport was closed\n with an error, fire an event named error using the RTCErrorEvent\n interface with its errorDetail attribute set to\n \"sctp-failure\" at channel.\n

" + "html": "

Initialize channel.[[Negotiated]] to dataHolder.[[Negotiated]].

" }, { - "html": "

\n Fire an event named close at channel.\n

" + "html": "

Initialize channel.[[DataChannelId]] to dataHolder.[[DataChannelId]].

" + }, + { + "html": "

Initialize channel’s underlying data transport to dataHolder’s underlying data transport.

" } ] }, { "name": "unable to create an RTCDataChannel", "href": "https://www.w3.org/TR/webrtc/#dfn-unable-to-create-an-rtcdatachannel", - "html": "In some cases, the user agent may be unable to create an\n RTCDataChannel 's underlying data transport. For\n example, the data channel's id may be outside\n the range negotiated by the [RFC8831] implementations in the\n SCTP handshake. When the user agent determines that an\n RTCDataChannel's underlying data transport cannot be\n created, the user agent MUST queue a task to run the following\n steps:", + "html": "In some cases, the user agent may be unable to create an\n RTCDataChannel 's underlying data transport. For\n example, the data channel's id may be outside\n the range negotiated by the [RFC8831] implementations in the\n SCTP handshake. When the user agent determines that an\n RTCDataChannel's underlying data transport cannot be\n created, the user agent MUST queue a task to run the following\n steps:", "rationale": ".algorithm", "steps": [ { - "html": "

\n Let channel be the RTCDataChannel object for\n which the user agent could not create an underlying data transport.\n

" + "html": "

\n Let channel be the RTCDataChannel object for\n which the user agent could not create an underlying data transport.\n

" }, { - "html": "

\n Set channel.[[ReadyState]] to\n \"closed\".\n

" + "html": "

\n Set channel.[[ReadyState]] to\n \"closed\".\n

" }, { - "html": "

\n Fire an event named error using the\n RTCErrorEvent interface with the errorDetail\n attribute set to \"data-channel-failure\"\n at channel.\n

" + "html": "

\n Fire an event named error using the\n RTCErrorEvent interface with the errorDetail\n attribute set to \"data-channel-failure\"\n at channel.\n

" }, { - "html": "

\n Fire an event named close at channel.\n

" + "html": "

\n Fire an event named close at channel.\n

" } ] }, { - "html": "When an RTCDataChannel message has\n been received via the underlying data transport with\n type type and data rawData, the user agent\n MUST queue a task to run the following steps:", + "html": "When an RTCDataChannel message has\n been received via the underlying data transport with\n type type and data rawData, the user agent\n MUST queue a task to run the following steps:", "rationale": ".algorithm", "steps": [ { - "html": "

\n Let channel be the RTCDataChannel object for\n which the user agent has received a message.\n

" + "html": "

\n Let channel be the RTCDataChannel object for\n which the user agent has received a message.\n

" }, { - "html": "

\n Let connection be the RTCPeerConnection object\n associated with channel.\n

" + "html": "

\n Let connection be the RTCPeerConnection object\n associated with channel.\n

" }, { - "html": "

\n If channel.[[ReadyState]] is not\n \"open\", abort these steps and discard\n rawData.\n

" + "html": "

\n If channel.[[ReadyState]] is not\n \"open\", abort these steps and discard\n rawData.\n

" }, { - "html": "

\n Execute the sub step by switching on type and\n channel.binaryType:\n

\n " + "html": "

\n Execute the sub step by switching on type and\n channel.binaryType:\n

\n " }, { - "html": "

\n Fire an event named message using the\n MessageEvent interface with its origin attribute initialized to the\n serialization of an origin of\n connection.[[DocumentOrigin]], and the\n data attribute initialized to\n data at channel.\n

" + "html": "

\n Fire an event named message using the\n MessageEvent interface with its origin attribute initialized to the\n serialization of an origin of\n connection.[[DocumentOrigin]], and the\n data attribute initialized to\n data at channel.\n

" } ] }, { "name": "RTCDataChannel/close()", "href": "https://www.w3.org/TR/webrtc/#dom-rtcdatachannel-close", - "html": "When the close method is called, the user agent MUST run\n the following steps:", + "html": "When the close method is called, the user agent MUST run\n the following steps:", "rationale": ".algorithm", "steps": [ { - "html": "

\n Let channel be the RTCDataChannel object\n which is about to be closed.\n

" + "html": "

\n Let channel be the RTCDataChannel object\n which is about to be closed.\n

" }, { - "html": "

\n If channel.[[ReadyState]] is\n \"closing\" or\n \"closed\", then abort these steps.\n

" + "html": "

\n If channel.[[ReadyState]] is\n \"closing\" or\n \"closed\", then abort these steps.\n

" }, { - "html": "

\n Set channel.[[ReadyState]] to\n \"closing\".\n

" + "html": "

\n Set channel.[[ReadyState]] to\n \"closing\".\n

" }, { - "html": "

\n If the closing procedure has not started yet, start\n it.\n

" + "html": "

\n If the closing procedure has not started yet, start\n it.\n

" } ] }, { "name": "send() algorithm", "href": "https://www.w3.org/TR/webrtc/#datachannel-send", - "html": "The send() method is overloaded to\n handle different data argument types. When any version of the\n method is called, the user agent MUST run the following\n steps:", + "html": "The send() method is overloaded to\n handle different data argument types. When any version of the\n method is called, the user agent MUST run the following\n steps:", "rationale": ".algorithm", "steps": [ { - "html": "

\n Let channel be the RTCDataChannel object on\n which data is to be sent.\n

" + "html": "

\n Let channel be the RTCDataChannel object on\n which data is to be sent.\n

" + }, + { + "html": "
Candidate Addition 48:Make RTCDataChannel transferable to DedicatedWorker (PR #2988)

Set channel.[[IsTransferable]] to false.

" }, { - "html": "

\n If channel.[[ReadyState]] is not\n \"open\", throw an\n InvalidStateError.\n

" + "html": "

\n If channel.[[ReadyState]] is not\n \"open\", throw an\n InvalidStateError.\n

" }, { - "html": "

\n Execute the sub step that corresponds to the type of the\n methods argument:\n

\n " + "html": "

\n Execute the sub step that corresponds to the type of the\n methods argument:\n

\n " }, { - "html": "

\n If the byte size of data exceeds the value of\n maxMessageSize on channel's\n associated RTCSctpTransport, throw a\n TypeError.\n

" + "html": "

\n If the byte size of data exceeds the value of\n maxMessageSize on channel's\n associated RTCSctpTransport, throw a\n TypeError.\n

" }, { - "html": "

\n Queue data for transmission on\n channel's underlying data transport. If\n queuing data is not possible because not enough\n buffer space is available, throw an\n OperationError.\n

" + "html": "

\n Queue data for transmission on\n channel's underlying data transport. If\n queuing data is not possible because not enough\n buffer space is available, throw an\n OperationError.\n

" }, { - "html": "

\n Increase the value of the [[BufferedAmount]] slot by\n the byte size of data.\n

" + "html": "

\n Increase the value of the [[BufferedAmount]] slot by\n the byte size of data.\n

" } ] }, { "name": "RTCDTMFSender/[[Duration]]", "href": "https://www.w3.org/TR/webrtc/#dfn-duration", - "html": "To create an RTCDTMFSender, the user agent MUST run the\n following steps:", + "html": "To create an RTCDTMFSender, the user agent MUST run the\n following steps:", "rationale": ".algorithm", "steps": [ { - "html": "

\n Let dtmf be a newly created RTCDTMFSender object.\n

" + "html": "

\n Let dtmf be a newly created RTCDTMFSender object.\n

" }, { "html": "

\n Let dtmf have a [[Duration]] internal\n slot.\n

" @@ -3985,22 +3781,22 @@ ] }, { - "name": "RTCDTMFSender/insertDTMF()", - "href": "https://www.w3.org/TR/webrtc/#dom-RTCDTMFSender-insertDTMF", - "html": "When the insertDTMF() method is invoked, the user agent\n MUST run the following steps:", + "name": "DTMF playout task steps", + "href": "https://www.w3.org/TR/webrtc/#dfn-dtmf-playout-task-steps", + "html": "When the insertDTMF() method is invoked, the user agent\n MUST run the following steps:", "rationale": ".algorithm", "steps": [ { - "html": "Let sender be the\n RTCRtpSender used to send DTMF." + "html": "Let sender be the\n RTCRtpSender used to send DTMF." }, { - "html": "

\n Let transceiver be the RTCRtpTransceiver\n object associated with sender.\n

" + "html": "

\n Let transceiver be the RTCRtpTransceiver\n object associated with sender.\n

" }, { - "html": "Let dtmf be the\n RTCDTMFSender associated with sender." + "html": "Let dtmf be the\n RTCDTMFSender associated with sender." }, { - "html": "If determine if DTMF can be sent for\n dtmf returns false, throw an InvalidStateError." + "html": "If determine if DTMF can be sent for\n dtmf returns false, throw an InvalidStateError." }, { "html": "Let tones be the\n method's first argument." @@ -4012,53 +3808,56 @@ "html": "Let interToneGap be the\n method's third argument." }, { - "html": "If \n tones contains any unrecognized characters, throw an InvalidCharacterError." + "html": "If \n tones contains any unrecognized characters, throw an InvalidCharacterError." }, { - "html": "Set the object's [[ToneBuffer]] slot to\n tones." + "html": "Set the object's [[ToneBuffer]] slot to\n tones." }, { - "html": "Set dtmf.[[Duration]] to the value of\n duration." + "html": "Set dtmf.[[Duration]] to the value of\n duration." }, { - "html": "Set dtmf.[[InterToneGap]] to the value\n of interToneGap." + "html": "Set dtmf.[[InterToneGap]] to the value\n of interToneGap." }, { - "html": "If the value of duration is less than 40 ms, set\n dtmf.[[Duration]] to 40 ms." + "html": "If the value of duration is less than 40 ms, set\n dtmf.[[Duration]] to 40 ms." }, { - "html": "If the value of duration parameter is greater than\n 6000 ms, set dtmf.[[Duration]] to 6000 ms." + "html": "If the value of duration parameter is greater than\n 6000 ms, set dtmf.[[Duration]] to 6000 ms." }, { - "html": "If the\n value of interToneGap is less than 30 ms, set\n dtmf.[[InterToneGap]] to 30 ms." + "html": "If the\n value of interToneGap is less than 30 ms, set\n dtmf.[[InterToneGap]] to 30 ms." }, { - "html": "If the value of interToneGap is greater than 6000\n ms, set dtmf.[[InterToneGap]] to 6000 ms." + "html": "If the value of interToneGap is greater than 6000\n ms, set dtmf.[[InterToneGap]] to 6000 ms." }, { "html": "If \n [[ToneBuffer]] slot is an empty string, abort these\n steps." }, { - "html": "If a\n Playout task is scheduled to be run, abort these\n steps; otherwise queue a task that runs the following steps\n (Playout task):", + "html": "If a\n task to run the DTMF playout task steps is scheduled to be run,\n abort these steps; otherwise queue a task that runs the following\n DTMF playout task steps:", "rationale": "if", "steps": [ { - "html": "If\n transceiver.[[CurrentDirection]] is\n neither \"sendrecv\" nor\n \"sendonly\", abort these\n steps." + "html": "
Candidate Correction 33:Determine if DTMF can be sent inside queued playout task (PR #2861)
" }, { - "html": "If the [[ToneBuffer]] slot contains the empty\n string, fire an event named tonechange using\n the RTCDTMFToneChangeEvent interface with the\n tone attribute set to an empty\n string at the RTCDTMFSender object and abort these\n steps." + "html": "If\n transceiver.[[CurrentDirection]]If determine if DTMF can be sent is\n neither \"sendrecv\" nor\n \"sendonly\"for\n dtmf returns false, abort these\n steps." }, { - "html": "Remove the first character from the\n [[ToneBuffer]] slot and let that character be\n tone." + "html": "If the [[ToneBuffer]] slot contains the empty\n string, fire an event named tonechange using\n the RTCDTMFToneChangeEvent interface with the\n tone attribute set to an empty\n string at the RTCDTMFSender object and abort these\n steps." }, { - "html": "If tone is \",\" delay sending\n tones for 2000 ms on the associated RTP\n media stream, and queue a task to be executed in\n 2000 ms from now that runs the steps\n labelled Playout task." + "html": "Remove the first character from the\n [[ToneBuffer]] slot and let that character be\n tone." }, { - "html": "If tone is not \",\" start\n playout of tone for [[Duration]] ms on\n the associated RTP media stream, using the appropriate\n codec, then queue a task to be executed in\n [[Duration]] + [[InterToneGap]] ms from\n now that runs the steps labelled Playout task." + "html": "If tone is \",\" delay sending\n tones for 2000 ms on the associated RTP\n media stream, and queue a task to be executed in\n 2000 ms from now that runs the\n DTMF playout task steps." }, { - "html": "Fire an event named tonechange using the\n RTCDTMFToneChangeEvent interface with the\n tone attribute set to\n tone at the RTCDTMFSender object." + "html": "If tone is not \",\" start\n playout of tone for [[Duration]] ms on\n the associated RTP media stream, using the appropriate\n codec, then queue a task to be executed in\n [[Duration]] + [[InterToneGap]] ms from\n now that runs the DTMF playout task steps." + }, + { + "html": "Fire an event named tonechange using the\n RTCDTMFToneChangeEvent interface with the\n tone attribute set to\n tone at the RTCDTMFSender object." } ] } @@ -4067,29 +3866,32 @@ { "name": "determine if DTMF can be sent", "href": "https://www.w3.org/TR/webrtc/#dfn-determine-if-dtmf-can-be-sent", - "html": "\n To determine if DTMF can be sent for an RTCDTMFSender\n instance dtmfSender, the user agent MUST run the following\n steps:\n ", + "html": "To determine if DTMF can be sent for an RTCDTMFSender\n instance dtmfSender, the user agent MUST queue a task that\n runs run the following following\n steps:", "rationale": ".algorithm", "steps": [ { - "html": "Let sender be the\n RTCRtpSender associated with dtmfSender." + "html": "Let sender be the\n RTCRtpSender associated with dtmfSender." + }, + { + "html": "Let transceiver be the\n RTCRtpTransceiver associated with sender." }, { - "html": "Let transceiver be the\n RTCRtpTransceiver associated with sender." + "html": "Let connection be the\n RTCPeerConnection associated with transceiver." }, { - "html": "Let connection be the\n RTCPeerConnection associated with transceiver." + "html": "If connection's RTCPeerConnectionState is not\n \"connected\" return false." }, { - "html": "If connection's RTCPeerConnectionState is not\n \"connected\" return false." + "html": "
Proposed Correction 32:Reject setParameters(), replaceTrack(), & insertDTMF() after stop() (PR #2829)
If transceiver.[[Stopping]] is\n true return false.\n " }, { - "html": "If sender.[[SenderTrack]] is null\n return false." + "html": "If sender.[[SenderTrack]] is null\n return false." }, { - "html": "If transceiver.[[CurrentDirection]] is neither\n \"sendrecv\" nor\n \"sendonly\" return false." + "html": "If transceiver.[[CurrentDirection]] is neither\n \"sendrecv\" nor\n \"sendonly\" return false." }, { - "html": "If\n sender.[[SendEncodings]][0].active\n is false return false." + "html": "If\n sender.[[SendEncodings]][0].active\n is false return false." }, { "html": "If no codec with mimetype \"audio/telephone-event\" has been negotiated for sending\n with this sender, return false." @@ -4102,33 +3904,33 @@ { "name": "RTCPeerConnection/getStats()", "href": "https://www.w3.org/TR/webrtc/#widl-RTCPeerConnection-getStats-Promise-RTCStatsReport--MediaStreamTrack-selector", - "html": "When the getStats() method is invoked, the user agent\n MUST run the following steps:", + "html": "When the getStats() method is invoked, the user agent\n MUST run the following steps:", "rationale": ".algorithm", "steps": [ { "html": "

\n Let selectorArg be the method's first\n argument.\n

" }, { - "html": "

\n Let connection be the RTCPeerConnection\n object on which the method was invoked.\n

" + "html": "

\n Let connection be the RTCPeerConnection\n object on which the method was invoked.\n

" }, { "html": "

\n If selectorArg is null, let\n selector be null.\n

" }, { - "html": "

\n If selectorArg is a MediaStreamTrack let\n selector be an RTCRtpSender or\n RTCRtpReceiver on connection which\n track attribute matches\n selectorArg. If no such sender or receiver\n exists, or if more than one sender or receiver fit this\n criteria, return a promise rejected with a newly created InvalidAccessError.\n

" + "html": "

\n If selectorArg is a MediaStreamTrack let\n selector be an RTCRtpSender or\n RTCRtpReceiver on connection which\n track attribute matches\n selectorArg. If no such sender or receiver\n exists, or if more than one sender or receiver fit this\n criteria, return a promise rejected with a newly created InvalidAccessError.\n

" }, { "html": "

\n Let p be a new promise.\n

" }, { - "html": "Run the following steps in parallel:", + "html": "Run the following steps in parallel:", "rationale": "gather", "steps": [ { - "html": "

\n Gather the stats indicated by selector\n according to the stats selection algorithm.\n

" + "html": "

\n Gather the stats indicated by selector\n according to the stats selection algorithm.\n

" }, { - "html": "

\n Resolve p with the resulting\n RTCStatsReport object, containing the gathered\n stats.\n

" + "html": "

\n Resolve p with the resulting\n RTCStatsReport object, containing the gathered\n stats.\n

" } ] }, @@ -4140,20 +3942,20 @@ { "name": "stats selection algorithm", "href": "https://www.w3.org/TR/webrtc/#dfn-stats-selection-algorithm", - "html": "The stats selection algorithm is as follows:", + "html": "The stats selection algorithm is as follows:", "rationale": ".algorithm", "steps": [ { - "html": "Let result be an empty\n RTCStatsReport." + "html": "Let result be an empty\n RTCStatsReport." }, { "html": "If\n selector is null,\n gather stats for the whole connection, add them to\n result, return result, and abort these steps." }, { - "html": "If selector is an RTCRtpSender, gather stats for and\n add the following objects to result:\n " + "html": "If selector is an RTCRtpSender, gather stats for and\n add the following objects to result:\n " }, { - "html": "If selector is an RTCRtpReceiver, gather stats for and\n add the following objects to result:\n " + "html": "If selector is an RTCRtpReceiver, gather stats for and\n add the following objects to result:\n " }, { "html": "Return result." @@ -4173,13 +3975,13 @@ "html": "

\n Let message be the constructor's second\n argument.\n

" }, { - "html": "

\n Let e be a new RTCError object.\n

" + "html": "

\n Let e be a new RTCError object.\n

" }, { - "html": "

\n Invoke the DOMException constructor of e\n with the message argument set to\n message and the name argument\n set to \"OperationError\".\n

" + "html": "

\n Invoke the DOMException constructor of e\n with the message argument set to\n message and the name argument\n set to \"OperationError\".\n

" }, { - "html": "

\n Set all RTCError attributes of e to the\n value of the corresponding attribute in init if\n it is present, otherwise set it to null.\n

" + "html": "

\n Set all RTCError attributes of e to the\n value of the corresponding attribute in init if\n it is present, otherwise set it to null.\n

" }, { "html": "

\n Return e.\n

" diff --git a/tr/dfns/presentation-api.json b/tr/dfns/presentation-api.json index 17457fe69f5f..dec8efb8c375 100644 --- a/tr/dfns/presentation-api.json +++ b/tr/dfns/presentation-api.json @@ -585,6 +585,45 @@ }, "definedIn": "prose" }, + { + "id": "dfn-presentation-task-source", + "href": "https://www.w3.org/TR/presentation-api/#dfn-presentation-task-source", + "linkingText": [ + "presentation task source" + ], + "localLinkingText": [], + "type": "dfn", + "for": [], + "access": "private", + "informative": false, + "heading": { + "id": "common-idioms", + "href": "https://www.w3.org/TR/presentation-api/#common-idioms", + "title": "Common idioms", + "number": "6.1" + }, + "definedIn": "prose" + }, + { + "id": "dfn-queue-a-presentation-api-task", + "href": "https://www.w3.org/TR/presentation-api/#dfn-queue-a-presentation-api-task", + "linkingText": [ + "queue a Presentation API task", + "queues a Presentation API task" + ], + "localLinkingText": [], + "type": "dfn", + "for": [], + "access": "private", + "informative": false, + "heading": { + "id": "common-idioms", + "href": "https://www.w3.org/TR/presentation-api/#common-idioms", + "title": "Common idioms", + "number": "6.1" + }, + "definedIn": "prose" + }, { "id": "dom-presentation", "href": "https://www.w3.org/TR/presentation-api/#dom-presentation", @@ -1900,7 +1939,7 @@ "id": "dfn-send-a-termination-request", "href": "https://www.w3.org/TR/presentation-api/#dfn-send-a-termination-request", "linkingText": [ - "Send a termination request" + "send a termination request" ], "localLinkingText": [], "type": "dfn", diff --git a/tr/dfns/webrtc.json b/tr/dfns/webrtc.json index 7dcad798f0a7..6447ddcf5c14 100644 --- a/tr/dfns/webrtc.json +++ b/tr/dfns/webrtc.json @@ -196,8 +196,8 @@ "access": "public", "informative": false, "heading": { - "id": "dictionary-rtcconfiguration-members-new", - "href": "https://www.w3.org/TR/webrtc/#dictionary-rtcconfiguration-members-new", + "id": "dictionary-rtcconfiguration-members-0-dedup-2", + "href": "https://www.w3.org/TR/webrtc/#dictionary-rtcconfiguration-members-0-dedup-2", "title": "Dictionary RTCConfiguration Members" }, "definedIn": "dt" @@ -216,8 +216,8 @@ "access": "public", "informative": false, "heading": { - "id": "dictionary-rtcconfiguration-members-new", - "href": "https://www.w3.org/TR/webrtc/#dictionary-rtcconfiguration-members-new", + "id": "dictionary-rtcconfiguration-members-0-dedup-2", + "href": "https://www.w3.org/TR/webrtc/#dictionary-rtcconfiguration-members-0-dedup-2", "title": "Dictionary RTCConfiguration Members" }, "definedIn": "dt" @@ -236,8 +236,8 @@ "access": "public", "informative": false, "heading": { - "id": "dictionary-rtcconfiguration-members-new", - "href": "https://www.w3.org/TR/webrtc/#dictionary-rtcconfiguration-members-new", + "id": "dictionary-rtcconfiguration-members-0-dedup-2", + "href": "https://www.w3.org/TR/webrtc/#dictionary-rtcconfiguration-members-0-dedup-2", "title": "Dictionary RTCConfiguration Members" }, "definedIn": "dt" @@ -256,8 +256,8 @@ "access": "public", "informative": false, "heading": { - "id": "dictionary-rtcconfiguration-members-new", - "href": "https://www.w3.org/TR/webrtc/#dictionary-rtcconfiguration-members-new", + "id": "dictionary-rtcconfiguration-members-0-dedup-2", + "href": "https://www.w3.org/TR/webrtc/#dictionary-rtcconfiguration-members-0-dedup-2", "title": "Dictionary RTCConfiguration Members" }, "definedIn": "dt" @@ -276,8 +276,8 @@ "access": "public", "informative": false, "heading": { - "id": "dictionary-rtcconfiguration-members-new", - "href": "https://www.w3.org/TR/webrtc/#dictionary-rtcconfiguration-members-new", + "id": "dictionary-rtcconfiguration-members-0-dedup-2", + "href": "https://www.w3.org/TR/webrtc/#dictionary-rtcconfiguration-members-0-dedup-2", "title": "Dictionary RTCConfiguration Members" }, "definedIn": "dt" @@ -296,12 +296,52 @@ "access": "public", "informative": false, "heading": { - "id": "dictionary-rtcconfiguration-members-new", - "href": "https://www.w3.org/TR/webrtc/#dictionary-rtcconfiguration-members-new", + "id": "dictionary-rtcconfiguration-members-0-dedup-2", + "href": "https://www.w3.org/TR/webrtc/#dictionary-rtcconfiguration-members-0-dedup-2", "title": "Dictionary RTCConfiguration Members" }, "definedIn": "dt" }, + { + "id": "dom-rtcicecredentialtype", + "href": "https://www.w3.org/TR/webrtc/#dom-rtcicecredentialtype", + "linkingText": [ + "RTCIceCredentialType" + ], + "localLinkingText": [], + "type": "enum", + "for": [], + "access": "public", + "informative": false, + "heading": { + "id": "rtcicecredentialtype-enum-dedup-4", + "href": "https://www.w3.org/TR/webrtc/#rtcicecredentialtype-enum-dedup-4", + "title": "RTCIceCredentialType Enum", + "number": "4.2.2" + }, + "definedIn": "heading" + }, + { + "id": "dom-rtcicecredentialtype-password", + "href": "https://www.w3.org/TR/webrtc/#dom-rtcicecredentialtype-password", + "linkingText": [ + "password" + ], + "localLinkingText": [], + "type": "enum-value", + "for": [ + "RTCIceCredentialType" + ], + "access": "public", + "informative": false, + "heading": { + "id": "rtcicecredentialtype-enum-dedup-4", + "href": "https://www.w3.org/TR/webrtc/#rtcicecredentialtype-enum-dedup-4", + "title": "RTCIceCredentialType Enum", + "number": "4.2.2" + }, + "definedIn": "table" + }, { "id": "dom-rtciceserver", "href": "https://www.w3.org/TR/webrtc/#dom-rtciceserver", @@ -314,10 +354,10 @@ "access": "public", "informative": false, "heading": { - "id": "rtciceserver-dictionary-new", - "href": "https://www.w3.org/TR/webrtc/#rtciceserver-dictionary-new", + "id": "rtciceserver-dictionary", + "href": "https://www.w3.org/TR/webrtc/#rtciceserver-dictionary", "title": "RTCIceServer Dictionary", - "number": "4.2.2" + "number": "4.2.3" }, "definedIn": "heading" }, @@ -335,8 +375,8 @@ "access": "public", "informative": false, "heading": { - "id": "dictionary-rtciceserver-members-dedup-1", - "href": "https://www.w3.org/TR/webrtc/#dictionary-rtciceserver-members-dedup-1", + "id": "dictionary-rtciceserver-members-dedup-7", + "href": "https://www.w3.org/TR/webrtc/#dictionary-rtciceserver-members-dedup-7", "title": "Dictionary RTCIceServer Members" }, "definedIn": "dt" @@ -355,8 +395,8 @@ "access": "public", "informative": false, "heading": { - "id": "dictionary-rtciceserver-members-dedup-1", - "href": "https://www.w3.org/TR/webrtc/#dictionary-rtciceserver-members-dedup-1", + "id": "dictionary-rtciceserver-members-dedup-7", + "href": "https://www.w3.org/TR/webrtc/#dictionary-rtciceserver-members-dedup-7", "title": "Dictionary RTCIceServer Members" }, "definedIn": "dt" @@ -375,8 +415,28 @@ "access": "public", "informative": false, "heading": { - "id": "dictionary-rtciceserver-members-dedup-1", - "href": "https://www.w3.org/TR/webrtc/#dictionary-rtciceserver-members-dedup-1", + "id": "dictionary-rtciceserver-members-dedup-7", + "href": "https://www.w3.org/TR/webrtc/#dictionary-rtciceserver-members-dedup-7", + "title": "Dictionary RTCIceServer Members" + }, + "definedIn": "dt" + }, + { + "id": "dom-rtciceserver-credentialtype", + "href": "https://www.w3.org/TR/webrtc/#dom-rtciceserver-credentialtype", + "linkingText": [ + "credentialType" + ], + "localLinkingText": [], + "type": "dict-member", + "for": [ + "RTCIceServer" + ], + "access": "public", + "informative": false, + "heading": { + "id": "dictionary-rtciceserver-members-dedup-7", + "href": "https://www.w3.org/TR/webrtc/#dictionary-rtciceserver-members-dedup-7", "title": "Dictionary RTCIceServer Members" }, "definedIn": "dt" @@ -993,6 +1053,27 @@ { "id": "dom-rtcpeerconnectionstate-connected", "href": "https://www.w3.org/TR/webrtc/#dom-rtcpeerconnectionstate-connected", + "linkingText": [ + "" + ], + "localLinkingText": [], + "type": "enum-value", + "for": [ + "RTCPeerConnectionState" + ], + "access": "public", + "informative": false, + "heading": { + "id": "rtcpeerconnectionstate-enum", + "href": "https://www.w3.org/TR/webrtc/#rtcpeerconnectionstate-enum", + "title": "RTCPeerConnectionState Enum", + "number": "4.3.3" + }, + "definedIn": "table" + }, + { + "id": "dom-rtcpeerconnectionstate-connected-dedup-17", + "href": "https://www.w3.org/TR/webrtc/#dom-rtcpeerconnectionstate-connected-dedup-17", "linkingText": [ "connected" ], @@ -1177,82 +1258,6 @@ }, "definedIn": "table" }, - { - "id": "dfn-signaling-state", - "href": "https://www.w3.org/TR/webrtc/#dfn-signaling-state", - "linkingText": [ - "signaling state" - ], - "localLinkingText": [], - "type": "dfn", - "for": [], - "access": "private", - "informative": false, - "heading": { - "id": "operation", - "href": "https://www.w3.org/TR/webrtc/#operation", - "title": "Operation", - "number": "4.4.1" - }, - "definedIn": "prose" - }, - { - "id": "dfn-connection-state", - "href": "https://www.w3.org/TR/webrtc/#dfn-connection-state", - "linkingText": [ - "connection state" - ], - "localLinkingText": [], - "type": "dfn", - "for": [], - "access": "private", - "informative": false, - "heading": { - "id": "operation", - "href": "https://www.w3.org/TR/webrtc/#operation", - "title": "Operation", - "number": "4.4.1" - }, - "definedIn": "prose" - }, - { - "id": "dfn-ice-gathering-state", - "href": "https://www.w3.org/TR/webrtc/#dfn-ice-gathering-state", - "linkingText": [ - "ICE gathering state" - ], - "localLinkingText": [], - "type": "dfn", - "for": [], - "access": "private", - "informative": false, - "heading": { - "id": "operation", - "href": "https://www.w3.org/TR/webrtc/#operation", - "title": "Operation", - "number": "4.4.1" - }, - "definedIn": "prose" - }, - { - "id": "dfn-ice-connection-state", - "href": "https://www.w3.org/TR/webrtc/#dfn-ice-connection-state", - "linkingText": [ - "ICE connection state" - ], - "localLinkingText": [], - "type": "dfn", - "for": [], - "access": "private", - "informative": false, - "heading": { - "id": "operation", - "href": "https://www.w3.org/TR/webrtc/#operation", - "title": "Operation", - "number": "4.4.1" - }, - "definedIn": "prose" - }, { "id": "dfn-ice-agent", "href": "https://www.w3.org/TR/webrtc/#dfn-ice-agent", @@ -1403,6 +1408,27 @@ }, "definedIn": "prose" }, + { + "id": "dfn-datachannels", + "href": "https://www.w3.org/TR/webrtc/#dfn-datachannels", + "linkingText": [ + "[[DataChannels]]" + ], + "localLinkingText": [], + "type": "attribute", + "for": [ + "RTCPeerConnection" + ], + "access": "private", + "informative": false, + "heading": { + "id": "constructor", + "href": "https://www.w3.org/TR/webrtc/#constructor", + "title": "Constructor", + "number": "4.4.1.1" + }, + "definedIn": "prose" + }, { "id": "dfn-operations", "href": "https://www.w3.org/TR/webrtc/#dfn-operations", @@ -1508,6 +1534,90 @@ }, "definedIn": "prose" }, + { + "id": "dfn-signalingstate", + "href": "https://www.w3.org/TR/webrtc/#dfn-signalingstate", + "linkingText": [ + "[[SignalingState]]" + ], + "localLinkingText": [], + "type": "attribute", + "for": [ + "RTCPeerConnection" + ], + "access": "private", + "informative": false, + "heading": { + "id": "constructor", + "href": "https://www.w3.org/TR/webrtc/#constructor", + "title": "Constructor", + "number": "4.4.1.1" + }, + "definedIn": "prose" + }, + { + "id": "dfn-iceconnectionstate", + "href": "https://www.w3.org/TR/webrtc/#dfn-iceconnectionstate", + "linkingText": [ + "[[IceConnectionState]]" + ], + "localLinkingText": [], + "type": "attribute", + "for": [ + "RTCPeerConnection" + ], + "access": "private", + "informative": false, + "heading": { + "id": "constructor", + "href": "https://www.w3.org/TR/webrtc/#constructor", + "title": "Constructor", + "number": "4.4.1.1" + }, + "definedIn": "prose" + }, + { + "id": "dfn-icegatheringstate", + "href": "https://www.w3.org/TR/webrtc/#dfn-icegatheringstate", + "linkingText": [ + "[[IceGatheringState]]" + ], + "localLinkingText": [], + "type": "attribute", + "for": [ + "RTCPeerConnection" + ], + "access": "private", + "informative": false, + "heading": { + "id": "constructor", + "href": "https://www.w3.org/TR/webrtc/#constructor", + "title": "Constructor", + "number": "4.4.1.1" + }, + "definedIn": "prose" + }, + { + "id": "dfn-connectionstate", + "href": "https://www.w3.org/TR/webrtc/#dfn-connectionstate", + "linkingText": [ + "[[ConnectionState]]" + ], + "localLinkingText": [], + "type": "attribute", + "for": [ + "RTCPeerConnection" + ], + "access": "private", + "informative": false, + "heading": { + "id": "constructor", + "href": "https://www.w3.org/TR/webrtc/#constructor", + "title": "Constructor", + "number": "4.4.1.1" + }, + "definedIn": "prose" + }, { "id": "dfn-pendinglocaldescription", "href": "https://www.w3.org/TR/webrtc/#dfn-pendinglocaldescription", @@ -1641,9 +1751,9 @@ "chain an operation" ], "localLinkingText": [], - "type": "dfn", + "type": "abstract-op", "for": [], - "access": "private", + "access": "public", "informative": false, "heading": { "id": "chain-an-asynchronous-operation", @@ -1653,25 +1763,6 @@ }, "definedIn": "prose" }, - { - "id": "update-ice-gathering-state", - "href": "https://www.w3.org/TR/webrtc/#update-ice-gathering-state", - "linkingText": [ - "update the ICE gathering state" - ], - "localLinkingText": [], - "type": "dfn", - "for": [], - "access": "private", - "informative": false, - "heading": { - "id": "update-the-ice-gathering-state", - "href": "https://www.w3.org/TR/webrtc/#update-the-ice-gathering-state", - "title": "Update the ICE gathering state", - "number": "4.4.1.4" - }, - "definedIn": "prose" - }, { "id": "set-local-description", "href": "https://www.w3.org/TR/webrtc/#set-local-description", @@ -1689,7 +1780,7 @@ "id": "set-the-session-description", "href": "https://www.w3.org/TR/webrtc/#set-the-session-description", "title": "Set the session description", - "number": "4.4.1.5" + "number": "4.4.1.4" }, "definedIn": "prose" }, @@ -1710,7 +1801,7 @@ "id": "set-the-session-description", "href": "https://www.w3.org/TR/webrtc/#set-the-session-description", "title": "Set the session description", - "number": "4.4.1.5" + "number": "4.4.1.4" }, "definedIn": "prose" }, @@ -1723,15 +1814,15 @@ "set a session description" ], "localLinkingText": [], - "type": "dfn", + "type": "abstract-op", "for": [], - "access": "private", + "access": "public", "informative": false, "heading": { "id": "set-the-session-description", "href": "https://www.w3.org/TR/webrtc/#set-the-session-description", "title": "Set the session description", - "number": "4.4.1.5" + "number": "4.4.1.4" }, "definedIn": "prose" }, @@ -1743,15 +1834,15 @@ "set a configuration" ], "localLinkingText": [], - "type": "dfn", + "type": "abstract-op", "for": [], - "access": "private", + "access": "public", "informative": false, "heading": { - "id": "set-the-configuration-new", - "href": "https://www.w3.org/TR/webrtc/#set-the-configuration-new", + "id": "set-the-configuration", + "href": "https://www.w3.org/TR/webrtc/#set-the-configuration", "title": "Set the configuration", - "number": "4.4.1.6" + "number": "4.4.1.5" }, "definedIn": "prose" }, @@ -1767,10 +1858,10 @@ "access": "private", "informative": false, "heading": { - "id": "set-the-configuration-new", - "href": "https://www.w3.org/TR/webrtc/#set-the-configuration-new", + "id": "set-the-configuration", + "href": "https://www.w3.org/TR/webrtc/#set-the-configuration", "title": "Set the configuration", - "number": "4.4.1.6" + "number": "4.4.1.5" }, "definedIn": "prose" }, @@ -1786,10 +1877,10 @@ "access": "private", "informative": false, "heading": { - "id": "set-the-configuration-new", - "href": "https://www.w3.org/TR/webrtc/#set-the-configuration-new", + "id": "set-the-configuration", + "href": "https://www.w3.org/TR/webrtc/#set-the-configuration", "title": "Set the configuration", - "number": "4.4.1.6" + "number": "4.4.1.5" }, "definedIn": "prose" }, @@ -1805,28 +1896,47 @@ "access": "private", "informative": false, "heading": { - "id": "set-the-configuration-new", - "href": "https://www.w3.org/TR/webrtc/#set-the-configuration-new", + "id": "set-the-configuration", + "href": "https://www.w3.org/TR/webrtc/#set-the-configuration", "title": "Set the configuration", - "number": "4.4.1.6" + "number": "4.4.1.5" }, "definedIn": "prose" }, { - "id": "dom-rtcpeerconnection", - "href": "https://www.w3.org/TR/webrtc/#dom-rtcpeerconnection", + "id": "dfn-validate-an-ice-server-url", + "href": "https://www.w3.org/TR/webrtc/#dfn-validate-an-ice-server-url", "linkingText": [ - "RTCPeerConnection" + "validate an ICE server URL" ], "localLinkingText": [], - "type": "interface", + "type": "abstract-op", "for": [], "access": "public", "informative": false, "heading": { - "id": "interface-definition", - "href": "https://www.w3.org/TR/webrtc/#interface-definition", - "title": "Interface Definition", + "id": "set-the-configuration", + "href": "https://www.w3.org/TR/webrtc/#set-the-configuration", + "title": "Set the configuration", + "number": "4.4.1.5" + }, + "definedIn": "prose" + }, + { + "id": "dom-rtcpeerconnection", + "href": "https://www.w3.org/TR/webrtc/#dom-rtcpeerconnection", + "linkingText": [ + "RTCPeerConnection" + ], + "localLinkingText": [], + "type": "interface", + "for": [], + "access": "public", + "informative": false, + "heading": { + "id": "interface-definition", + "href": "https://www.w3.org/TR/webrtc/#interface-definition", + "title": "Interface Definition", "number": "4.4.2" }, "definedIn": "prose" @@ -2260,9 +2370,9 @@ "create an offer" ], "localLinkingText": [], - "type": "dfn", + "type": "abstract-op", "for": [], - "access": "private", + "access": "public", "informative": false, "heading": { "id": "methods", @@ -2278,9 +2388,9 @@ "in-parallel steps to create an offer" ], "localLinkingText": [], - "type": "dfn", + "type": "abstract-op", "for": [], - "access": "private", + "access": "public", "informative": false, "heading": { "id": "methods", @@ -2314,9 +2424,9 @@ "final steps to create an offer" ], "localLinkingText": [], - "type": "dfn", + "type": "abstract-op", "for": [], - "access": "private", + "access": "public", "informative": false, "heading": { "id": "methods", @@ -2358,9 +2468,9 @@ "create an answer" ], "localLinkingText": [], - "type": "dfn", + "type": "abstract-op", "for": [], - "access": "private", + "access": "public", "informative": false, "heading": { "id": "methods", @@ -2376,9 +2486,9 @@ "in-parallel steps to create an answer" ], "localLinkingText": [], - "type": "dfn", + "type": "abstract-op", "for": [], - "access": "private", + "access": "public", "informative": false, "heading": { "id": "methods", @@ -2412,9 +2522,9 @@ "final steps to create an answer" ], "localLinkingText": [], - "type": "dfn", + "type": "abstract-op", "for": [], - "access": "private", + "access": "public", "informative": false, "heading": { "id": "methods", @@ -2620,9 +2730,9 @@ "close the connection" ], "localLinkingText": [], - "type": "dfn", + "type": "abstract-op", "for": [], - "access": "private", + "access": "public", "informative": false, "heading": { "id": "methods", @@ -3190,9 +3300,9 @@ "update the negotiation-needed flag" ], "localLinkingText": [], - "type": "dfn", + "type": "abstract-op", "for": [], - "access": "private", + "access": "public", "informative": false, "heading": { "id": "updating-the-negotiation-needed-flag", @@ -3228,9 +3338,9 @@ "check if negotiation is needed" ], "localLinkingText": [], - "type": "dfn", + "type": "abstract-op", "for": [], - "access": "private", + "access": "public", "informative": false, "heading": { "id": "updating-the-negotiation-needed-flag", @@ -3310,9 +3420,9 @@ "create an RTCIceCandidate" ], "localLinkingText": [], - "type": "dfn", + "type": "abstract-op", "for": [], - "access": "private", + "access": "public", "informative": false, "heading": { "id": "constructor-0", @@ -4221,8 +4331,8 @@ "access": "public", "informative": false, "heading": { - "id": "rtcpeerconnectioniceevent-attributes", - "href": "https://www.w3.org/TR/webrtc/#rtcpeerconnectioniceevent-attributes", + "id": "attributes-5", + "href": "https://www.w3.org/TR/webrtc/#attributes-5", "title": "Attributes" }, "definedIn": "dt" @@ -4243,8 +4353,8 @@ "access": "public", "informative": false, "heading": { - "id": "rtcpeerconnectioniceevent-attributes", - "href": "https://www.w3.org/TR/webrtc/#rtcpeerconnectioniceevent-attributes", + "id": "attributes-5", + "href": "https://www.w3.org/TR/webrtc/#attributes-5", "title": "Attributes" }, "definedIn": "dt" @@ -4616,8 +4726,8 @@ "access": "public", "informative": false, "heading": { - "id": "rtccertificateexpiration-dictionary-new", - "href": "https://www.w3.org/TR/webrtc/#rtccertificateexpiration-dictionary-new", + "id": "rtccertificateexpiration-dictionary", + "href": "https://www.w3.org/TR/webrtc/#rtccertificateexpiration-dictionary", "title": "RTCCertificateExpiration Dictionary", "number": "4.9.1" }, @@ -4637,8 +4747,8 @@ "access": "public", "informative": false, "heading": { - "id": "rtccertificateexpiration-dictionary-new", - "href": "https://www.w3.org/TR/webrtc/#rtccertificateexpiration-dictionary-new", + "id": "x4-9-1-rtccertificateexpiration-dictionary-dedup-72", + "href": "https://www.w3.org/TR/webrtc/#x4-9-1-rtccertificateexpiration-dictionary-dedup-72", "title": "RTCCertificateExpiration Dictionary", "number": "4.9.1" }, @@ -4656,8 +4766,8 @@ "access": "public", "informative": false, "heading": { - "id": "rtccertificate-interface-new", - "href": "https://www.w3.org/TR/webrtc/#rtccertificate-interface-new", + "id": "rtccertificate-interface", + "href": "https://www.w3.org/TR/webrtc/#rtccertificate-interface", "title": "RTCCertificate Interface", "number": "4.9.2" }, @@ -4677,8 +4787,8 @@ "access": "private", "informative": false, "heading": { - "id": "rtccertificate-interface-new", - "href": "https://www.w3.org/TR/webrtc/#rtccertificate-interface-new", + "id": "x4-9-2-rtccertificate-interface-dedup-74", + "href": "https://www.w3.org/TR/webrtc/#x4-9-2-rtccertificate-interface-dedup-74", "title": "RTCCertificate Interface", "number": "4.9.2" }, @@ -4698,8 +4808,8 @@ "access": "private", "informative": false, "heading": { - "id": "rtccertificate-interface-new", - "href": "https://www.w3.org/TR/webrtc/#rtccertificate-interface-new", + "id": "x4-9-2-rtccertificate-interface-dedup-74", + "href": "https://www.w3.org/TR/webrtc/#x4-9-2-rtccertificate-interface-dedup-74", "title": "RTCCertificate Interface", "number": "4.9.2" }, @@ -4719,8 +4829,8 @@ "access": "private", "informative": false, "heading": { - "id": "rtccertificate-interface-new", - "href": "https://www.w3.org/TR/webrtc/#rtccertificate-interface-new", + "id": "x4-9-2-rtccertificate-interface-dedup-74", + "href": "https://www.w3.org/TR/webrtc/#x4-9-2-rtccertificate-interface-dedup-74", "title": "RTCCertificate Interface", "number": "4.9.2" }, @@ -4742,8 +4852,8 @@ "access": "public", "informative": false, "heading": { - "id": "attributes-7-dedup-5", - "href": "https://www.w3.org/TR/webrtc/#attributes-7-dedup-5", + "id": "attributes-7-dedup-76", + "href": "https://www.w3.org/TR/webrtc/#attributes-7-dedup-76", "title": "Attributes" }, "definedIn": "dt" @@ -4766,8 +4876,8 @@ "access": "public", "informative": false, "heading": { - "id": "methods-4-dedup-6", - "href": "https://www.w3.org/TR/webrtc/#methods-4-dedup-6", + "id": "methods-4-dedup-77", + "href": "https://www.w3.org/TR/webrtc/#methods-4-dedup-77", "title": "Methods" }, "definedIn": "dt" @@ -4801,7 +4911,7 @@ "localLinkingText": [], "type": "dfn", "for": [], - "access": "private", + "access": "public", "informative": false, "heading": { "id": "rtp-media-api", @@ -4864,9 +4974,9 @@ "CollectSenders" ], "localLinkingText": [], - "type": "dfn", + "type": "abstract-op", "for": [], - "access": "private", + "access": "public", "informative": false, "heading": { "id": "methods-5", @@ -4930,9 +5040,9 @@ "CollectTransceivers" ], "localLinkingText": [], - "type": "dfn", + "type": "abstract-op", "for": [], - "access": "private", + "access": "public", "informative": false, "heading": { "id": "methods-5", @@ -5018,6 +5128,26 @@ }, "definedIn": "dt" }, + { + "id": "dfn-addtransceiver-sendencodings-validation-steps", + "href": "https://www.w3.org/TR/webrtc/#dfn-addtransceiver-sendencodings-validation-steps", + "linkingText": [ + "addTransceiver sendEncodings validation steps" + ], + "localLinkingText": [], + "type": "dfn", + "for": [ + "RTCPeerConnection" + ], + "access": "public", + "informative": false, + "heading": { + "id": "methods-5", + "href": "https://www.w3.org/TR/webrtc/#methods-5", + "title": "Methods" + }, + "definedIn": "prose" + }, { "id": "dom-rtcrtptransceiverinit", "href": "https://www.w3.org/TR/webrtc/#dom-rtcrtptransceiverinit", @@ -5227,9 +5357,9 @@ "process remote tracks" ], "localLinkingText": [], - "type": "dfn", + "type": "abstract-op", "for": [], - "access": "private", + "access": "public", "informative": false, "heading": { "id": "processing-remote-mediastreamtracks", @@ -5246,9 +5376,9 @@ "process the addition of a remote track" ], "localLinkingText": [], - "type": "dfn", + "type": "abstract-op", "for": [], - "access": "private", + "access": "public", "informative": false, "heading": { "id": "processing-remote-mediastreamtracks", @@ -5265,9 +5395,9 @@ "process the removal of a remote track" ], "localLinkingText": [], - "type": "dfn", + "type": "abstract-op", "for": [], - "access": "private", + "access": "public", "informative": false, "heading": { "id": "processing-remote-mediastreamtracks", @@ -5284,9 +5414,9 @@ "set the associated remote streams" ], "localLinkingText": [], - "type": "dfn", + "type": "abstract-op", "for": [], - "access": "private", + "access": "public", "informative": false, "heading": { "id": "processing-remote-mediastreamtracks", @@ -5322,9 +5452,9 @@ "create an RTCRtpSender" ], "localLinkingText": [], - "type": "dfn", + "type": "abstract-op", "for": [], - "access": "private", + "access": "public", "informative": false, "heading": { "id": "rtcrtpsender-interface", @@ -5450,7 +5580,7 @@ "for": [ "RTCRtpSender" ], - "access": "private", + "access": "public", "informative": false, "heading": { "id": "rtcrtpsender-interface", @@ -5492,7 +5622,7 @@ "for": [ "RTCRtpSender" ], - "access": "private", + "access": "public", "informative": false, "heading": { "id": "rtcrtpsender-interface", @@ -5592,12 +5722,51 @@ }, "definedIn": "dt" }, + { + "id": "dfn-list-of-implemented-send-codecs", + "href": "https://www.w3.org/TR/webrtc/#dfn-list-of-implemented-send-codecs", + "linkingText": [ + "list of implemented send codecs" + ], + "localLinkingText": [], + "type": "dfn", + "for": [ + "RTCRtpSender" + ], + "access": "public", + "informative": false, + "heading": { + "id": "methods-6", + "href": "https://www.w3.org/TR/webrtc/#methods-6", + "title": "Methods" + }, + "definedIn": "prose" + }, + { + "id": "dfn-list-of-implemented-header-extensions-for-sending", + "href": "https://www.w3.org/TR/webrtc/#dfn-list-of-implemented-header-extensions-for-sending", + "linkingText": [ + "list of implemented header extensions for sending" + ], + "localLinkingText": [], + "type": "dfn", + "for": [], + "access": "private", + "informative": false, + "heading": { + "id": "methods-6", + "href": "https://www.w3.org/TR/webrtc/#methods-6", + "title": "Methods" + }, + "definedIn": "prose" + }, { "id": "dom-rtcrtpsender-setparameters", "href": "https://www.w3.org/TR/webrtc/#dom-rtcrtpsender-setparameters", "linkingText": [ "setParameters()", - "setParameters(parameters)" + "setParameters(parameters)", + "setParameters(parameters, setParameterOptions)" ], "localLinkingText": [ "RTCRtpSender.setParameters", @@ -5617,6 +5786,26 @@ }, "definedIn": "dt" }, + { + "id": "dfn-setparameters-validation-steps", + "href": "https://www.w3.org/TR/webrtc/#dfn-setparameters-validation-steps", + "linkingText": [ + "setParameters validation steps" + ], + "localLinkingText": [], + "type": "dfn", + "for": [ + "RTCRtpSender" + ], + "access": "public", + "informative": false, + "heading": { + "id": "methods-6", + "href": "https://www.w3.org/TR/webrtc/#methods-6", + "title": "Methods" + }, + "definedIn": "prose" + }, { "id": "dfn-read-only-parameter", "href": "https://www.w3.org/TR/webrtc/#dfn-read-only-parameter", @@ -5929,6 +6118,25 @@ }, "definedIn": "dt" }, + { + "id": "dom-rtcrtpdecodingparameters", + "href": "https://www.w3.org/TR/webrtc/#dom-rtcrtpdecodingparameters", + "linkingText": [ + "RTCRtpDecodingParameters" + ], + "localLinkingText": [], + "type": "dictionary", + "for": [], + "access": "public", + "informative": false, + "heading": { + "id": "rtcrtpdecodingparameters-dedup-95", + "href": "https://www.w3.org/TR/webrtc/#rtcrtpdecodingparameters-dedup-95", + "title": "RTCRtpDecodingParameters Dictionary", + "number": "5.2.5" + }, + "definedIn": "heading" + }, { "id": "dom-rtcrtpencodingparameters", "href": "https://www.w3.org/TR/webrtc/#dom-rtcrtpencodingparameters", @@ -5968,6 +6176,26 @@ }, "definedIn": "dt" }, + { + "id": "dom-rtcrtpencodingparameters-codec", + "href": "https://www.w3.org/TR/webrtc/#dom-rtcrtpencodingparameters-codec", + "linkingText": [ + "codec" + ], + "localLinkingText": [], + "type": "dict-member", + "for": [ + "RTCRtpEncodingParameters" + ], + "access": "public", + "informative": false, + "heading": { + "id": "dictionary-rtcrtpencodingparameters-members", + "href": "https://www.w3.org/TR/webrtc/#dictionary-rtcrtpencodingparameters-members", + "title": "Dictionary RTCRtpEncodingParameters Members" + }, + "definedIn": "dt" + }, { "id": "dom-rtcrtpencodingparameters-maxbitrate", "href": "https://www.w3.org/TR/webrtc/#dom-rtcrtpencodingparameters-maxbitrate", @@ -6167,10 +6395,10 @@ "definedIn": "dt" }, { - "id": "dom-rtcrtpcodecparameters", - "href": "https://www.w3.org/TR/webrtc/#dom-rtcrtpcodecparameters", + "id": "dom-rtcrtpcodec", + "href": "https://www.w3.org/TR/webrtc/#dom-rtcrtpcodec", "linkingText": [ - "RTCRtpCodecParameters" + "RTCRtpCodec" ], "localLinkingText": [], "type": "dictionary", @@ -6178,118 +6406,98 @@ "access": "public", "informative": false, "heading": { - "id": "rtcrtpcodecparameters", - "href": "https://www.w3.org/TR/webrtc/#rtcrtpcodecparameters", - "title": "RTCRtpCodecParameters Dictionary", + "id": "rtcrtpcodec", + "href": "https://www.w3.org/TR/webrtc/#rtcrtpcodec", + "title": "RTCRtpCodec Dictionary", "number": "5.2.8" }, "definedIn": "heading" }, { - "id": "dom-rtcrtpcodecparameters-payloadtype", - "href": "https://www.w3.org/TR/webrtc/#dom-rtcrtpcodecparameters-payloadtype", - "linkingText": [ - "payloadType" - ], - "localLinkingText": [], - "type": "dict-member", - "for": [ - "RTCRtpCodecParameters" - ], - "access": "public", - "informative": false, - "heading": { - "id": "dictionary-rtcrtpcodecparameters-members", - "href": "https://www.w3.org/TR/webrtc/#dictionary-rtcrtpcodecparameters-members", - "title": "Dictionary RTCRtpCodecParameters Members" - }, - "definedIn": "dt" - }, - { - "id": "dom-rtcrtpcodecparameters-mimetype", - "href": "https://www.w3.org/TR/webrtc/#dom-rtcrtpcodecparameters-mimetype", + "id": "dom-rtcrtpcodec-mimetype", + "href": "https://www.w3.org/TR/webrtc/#dom-rtcrtpcodec-mimetype", "linkingText": [ "mimeType" ], "localLinkingText": [], "type": "dict-member", "for": [ - "RTCRtpCodecParameters" + "RTCRtpCodec" ], "access": "public", "informative": false, "heading": { - "id": "dictionary-rtcrtpcodecparameters-members", - "href": "https://www.w3.org/TR/webrtc/#dictionary-rtcrtpcodecparameters-members", - "title": "Dictionary RTCRtpCodecParameters Members" + "id": "dictionary-rtcrtpcodec-members", + "href": "https://www.w3.org/TR/webrtc/#dictionary-rtcrtpcodec-members", + "title": "Dictionary RTCRtpCodec Members" }, "definedIn": "dt" }, { - "id": "dom-rtcrtpcodecparameters-clockrate", - "href": "https://www.w3.org/TR/webrtc/#dom-rtcrtpcodecparameters-clockrate", + "id": "dom-rtcrtpcodec-clockrate", + "href": "https://www.w3.org/TR/webrtc/#dom-rtcrtpcodec-clockrate", "linkingText": [ "clockRate" ], "localLinkingText": [], "type": "dict-member", "for": [ - "RTCRtpCodecParameters" + "RTCRtpCodec" ], "access": "public", "informative": false, "heading": { - "id": "dictionary-rtcrtpcodecparameters-members", - "href": "https://www.w3.org/TR/webrtc/#dictionary-rtcrtpcodecparameters-members", - "title": "Dictionary RTCRtpCodecParameters Members" + "id": "dictionary-rtcrtpcodec-members", + "href": "https://www.w3.org/TR/webrtc/#dictionary-rtcrtpcodec-members", + "title": "Dictionary RTCRtpCodec Members" }, "definedIn": "dt" }, { - "id": "dom-rtcrtpcodecparameters-channels", - "href": "https://www.w3.org/TR/webrtc/#dom-rtcrtpcodecparameters-channels", + "id": "dom-rtcrtpcodec-channels", + "href": "https://www.w3.org/TR/webrtc/#dom-rtcrtpcodec-channels", "linkingText": [ "channels" ], "localLinkingText": [], "type": "dict-member", "for": [ - "RTCRtpCodecParameters" + "RTCRtpCodec" ], "access": "public", "informative": false, "heading": { - "id": "dictionary-rtcrtpcodecparameters-members", - "href": "https://www.w3.org/TR/webrtc/#dictionary-rtcrtpcodecparameters-members", - "title": "Dictionary RTCRtpCodecParameters Members" + "id": "dictionary-rtcrtpcodec-members", + "href": "https://www.w3.org/TR/webrtc/#dictionary-rtcrtpcodec-members", + "title": "Dictionary RTCRtpCodec Members" }, "definedIn": "dt" }, { - "id": "dom-rtcrtpcodecparameters-sdpfmtpline", - "href": "https://www.w3.org/TR/webrtc/#dom-rtcrtpcodecparameters-sdpfmtpline", + "id": "dom-rtcrtpcodec-sdpfmtpline", + "href": "https://www.w3.org/TR/webrtc/#dom-rtcrtpcodec-sdpfmtpline", "linkingText": [ "sdpFmtpLine" ], "localLinkingText": [], "type": "dict-member", "for": [ - "RTCRtpCodecParameters" + "RTCRtpCodec" ], "access": "public", "informative": false, "heading": { - "id": "dictionary-rtcrtpcodecparameters-members", - "href": "https://www.w3.org/TR/webrtc/#dictionary-rtcrtpcodecparameters-members", - "title": "Dictionary RTCRtpCodecParameters Members" + "id": "dictionary-rtcrtpcodec-members", + "href": "https://www.w3.org/TR/webrtc/#dictionary-rtcrtpcodec-members", + "title": "Dictionary RTCRtpCodec Members" }, "definedIn": "dt" }, { - "id": "dom-rtcrtpcapabilities", - "href": "https://www.w3.org/TR/webrtc/#dom-rtcrtpcapabilities", + "id": "dom-rtcrtpcodecparameters", + "href": "https://www.w3.org/TR/webrtc/#dom-rtcrtpcodecparameters", "linkingText": [ - "RTCRtpCapabilities" + "RTCRtpCodecParameters" ], "localLinkingText": [], "type": "dictionary", @@ -6297,149 +6505,169 @@ "access": "public", "informative": false, "heading": { - "id": "rtcrtpcapabilities", - "href": "https://www.w3.org/TR/webrtc/#rtcrtpcapabilities", - "title": "RTCRtpCapabilities Dictionary", + "id": "rtcrtpcodecparameters", + "href": "https://www.w3.org/TR/webrtc/#rtcrtpcodecparameters", + "title": "RTCRtpCodecParameters Dictionary", "number": "5.2.9" }, "definedIn": "heading" }, { - "id": "dom-rtcrtpcapabilities-codecs", - "href": "https://www.w3.org/TR/webrtc/#dom-rtcrtpcapabilities-codecs", + "id": "dom-rtcrtpcodecparameters-payloadtype", + "href": "https://www.w3.org/TR/webrtc/#dom-rtcrtpcodecparameters-payloadtype", "linkingText": [ - "codecs" + "payloadType" ], "localLinkingText": [], "type": "dict-member", "for": [ - "RTCRtpCapabilities" + "RTCRtpCodecParameters" ], "access": "public", "informative": false, "heading": { - "id": "dictionary-rtcrtpcapabilities-members", - "href": "https://www.w3.org/TR/webrtc/#dictionary-rtcrtpcapabilities-members", - "title": "Dictionary RTCRtpCapabilities Members" + "id": "dictionary-rtcrtpcodecparameters-members", + "href": "https://www.w3.org/TR/webrtc/#dictionary-rtcrtpcodecparameters-members", + "title": "Dictionary RTCRtpCodecParameters Members" }, "definedIn": "dt" }, { - "id": "dom-rtcrtpcapabilities-headerextensions", - "href": "https://www.w3.org/TR/webrtc/#dom-rtcrtpcapabilities-headerextensions", + "id": "dom-rtcrtpcodecparameters-mimetype", + "href": "https://www.w3.org/TR/webrtc/#dom-rtcrtpcodecparameters-mimetype", "linkingText": [ - "headerExtensions" + "mimeType" ], "localLinkingText": [], "type": "dict-member", "for": [ - "RTCRtpCapabilities" + "RTCRtpCodecParameters" ], "access": "public", "informative": false, "heading": { - "id": "dictionary-rtcrtpcapabilities-members", - "href": "https://www.w3.org/TR/webrtc/#dictionary-rtcrtpcapabilities-members", - "title": "Dictionary RTCRtpCapabilities Members" + "id": "dictionary-rtcrtpcodecparameters-members", + "href": "https://www.w3.org/TR/webrtc/#dictionary-rtcrtpcodecparameters-members", + "title": "Dictionary RTCRtpCodecParameters Members" }, "definedIn": "dt" }, { - "id": "dom-rtcrtpcodeccapability", - "href": "https://www.w3.org/TR/webrtc/#dom-rtcrtpcodeccapability", + "id": "dom-rtcrtpcodecparameters-clockrate", + "href": "https://www.w3.org/TR/webrtc/#dom-rtcrtpcodecparameters-clockrate", "linkingText": [ - "RTCRtpCodecCapability" + "clockRate" ], "localLinkingText": [], - "type": "dictionary", - "for": [], + "type": "dict-member", + "for": [ + "RTCRtpCodecParameters" + ], "access": "public", "informative": false, "heading": { - "id": "rtcrtpcodeccapability", - "href": "https://www.w3.org/TR/webrtc/#rtcrtpcodeccapability", - "title": "RTCRtpCodecCapability Dictionary", - "number": "5.2.10" + "id": "dictionary-rtcrtpcodecparameters-members", + "href": "https://www.w3.org/TR/webrtc/#dictionary-rtcrtpcodecparameters-members", + "title": "Dictionary RTCRtpCodecParameters Members" }, - "definedIn": "heading" + "definedIn": "dt" }, { - "id": "dom-rtcrtpcodeccapability-mimetype", - "href": "https://www.w3.org/TR/webrtc/#dom-rtcrtpcodeccapability-mimetype", + "id": "dom-rtcrtpcodecparameters-channels", + "href": "https://www.w3.org/TR/webrtc/#dom-rtcrtpcodecparameters-channels", "linkingText": [ - "mimeType" + "channels" ], "localLinkingText": [], "type": "dict-member", "for": [ - "RTCRtpCodecCapability" + "RTCRtpCodecParameters" ], "access": "public", "informative": false, "heading": { - "id": "dictionary-rtcrtpcodeccapability-members", - "href": "https://www.w3.org/TR/webrtc/#dictionary-rtcrtpcodeccapability-members", - "title": "Dictionary RTCRtpCodecCapability Members" + "id": "dictionary-rtcrtpcodecparameters-members", + "href": "https://www.w3.org/TR/webrtc/#dictionary-rtcrtpcodecparameters-members", + "title": "Dictionary RTCRtpCodecParameters Members" }, "definedIn": "dt" }, { - "id": "dom-rtcrtpcodeccapability-clockrate", - "href": "https://www.w3.org/TR/webrtc/#dom-rtcrtpcodeccapability-clockrate", + "id": "dom-rtcrtpcodecparameters-sdpfmtpline", + "href": "https://www.w3.org/TR/webrtc/#dom-rtcrtpcodecparameters-sdpfmtpline", "linkingText": [ - "clockRate" + "sdpFmtpLine" ], "localLinkingText": [], "type": "dict-member", "for": [ - "RTCRtpCodecCapability" + "RTCRtpCodecParameters" ], "access": "public", "informative": false, "heading": { - "id": "dictionary-rtcrtpcodeccapability-members", - "href": "https://www.w3.org/TR/webrtc/#dictionary-rtcrtpcodeccapability-members", - "title": "Dictionary RTCRtpCodecCapability Members" + "id": "dictionary-rtcrtpcodecparameters-members", + "href": "https://www.w3.org/TR/webrtc/#dictionary-rtcrtpcodecparameters-members", + "title": "Dictionary RTCRtpCodecParameters Members" + }, + "definedIn": "dt" + }, + { + "id": "dom-rtcrtpcapabilities", + "href": "https://www.w3.org/TR/webrtc/#dom-rtcrtpcapabilities", + "linkingText": [ + "RTCRtpCapabilities" + ], + "localLinkingText": [], + "type": "dictionary", + "for": [], + "access": "public", + "informative": false, + "heading": { + "id": "rtcrtpcapabilities", + "href": "https://www.w3.org/TR/webrtc/#rtcrtpcapabilities", + "title": "RTCRtpCapabilities Dictionary", + "number": "5.2.10" }, - "definedIn": "dt" + "definedIn": "heading" }, { - "id": "dom-rtcrtpcodeccapability-channels", - "href": "https://www.w3.org/TR/webrtc/#dom-rtcrtpcodeccapability-channels", + "id": "dom-rtcrtpcapabilities-codecs", + "href": "https://www.w3.org/TR/webrtc/#dom-rtcrtpcapabilities-codecs", "linkingText": [ - "channels" + "codecs" ], "localLinkingText": [], "type": "dict-member", "for": [ - "RTCRtpCodecCapability" + "RTCRtpCapabilities" ], "access": "public", "informative": false, "heading": { - "id": "dictionary-rtcrtpcodeccapability-members", - "href": "https://www.w3.org/TR/webrtc/#dictionary-rtcrtpcodeccapability-members", - "title": "Dictionary RTCRtpCodecCapability Members" + "id": "dictionary-rtcrtpcapabilities-members", + "href": "https://www.w3.org/TR/webrtc/#dictionary-rtcrtpcapabilities-members", + "title": "Dictionary RTCRtpCapabilities Members" }, "definedIn": "dt" }, { - "id": "dom-rtcrtpcodeccapability-sdpfmtpline", - "href": "https://www.w3.org/TR/webrtc/#dom-rtcrtpcodeccapability-sdpfmtpline", + "id": "dom-rtcrtpcapabilities-headerextensions", + "href": "https://www.w3.org/TR/webrtc/#dom-rtcrtpcapabilities-headerextensions", "linkingText": [ - "sdpFmtpLine" + "headerExtensions" ], "localLinkingText": [], "type": "dict-member", "for": [ - "RTCRtpCodecCapability" + "RTCRtpCapabilities" ], "access": "public", "informative": false, "heading": { - "id": "dictionary-rtcrtpcodeccapability-members", - "href": "https://www.w3.org/TR/webrtc/#dictionary-rtcrtpcodeccapability-members", - "title": "Dictionary RTCRtpCodecCapability Members" + "id": "dictionary-rtcrtpcapabilities-members", + "href": "https://www.w3.org/TR/webrtc/#dictionary-rtcrtpcapabilities-members", + "title": "Dictionary RTCRtpCapabilities Members" }, "definedIn": "dt" }, @@ -6482,6 +6710,25 @@ }, "definedIn": "dt" }, + { + "id": "dom-rtcsetparameteroptions", + "href": "https://www.w3.org/TR/webrtc/#dom-rtcsetparameteroptions", + "linkingText": [ + "RTCSetParameterOptions" + ], + "localLinkingText": [], + "type": "dictionary", + "for": [], + "access": "public", + "informative": false, + "heading": { + "id": "rtcsetparameteroptions-dictionary", + "href": "https://www.w3.org/TR/webrtc/#rtcsetparameteroptions-dictionary", + "title": "RTCSetParameterOptions Dictionary", + "number": "5.2.12" + }, + "definedIn": "heading" + }, { "id": "dom-rtcrtpreceiver", "href": "https://www.w3.org/TR/webrtc/#dom-rtcrtpreceiver", @@ -6508,9 +6755,9 @@ "create an RTCRtpReceiver" ], "localLinkingText": [], - "type": "dfn", + "type": "abstract-op", "for": [], - "access": "private", + "access": "public", "informative": false, "heading": { "id": "rtcrtpreceiver-interface", @@ -6550,7 +6797,7 @@ "for": [ "RTCRtpReceiver" ], - "access": "private", + "access": "public", "informative": false, "heading": { "id": "rtcrtpreceiver-interface", @@ -6686,6 +6933,27 @@ }, "definedIn": "prose" }, + { + "id": "dfn-jitterbuffertarget", + "href": "https://www.w3.org/TR/webrtc/#dfn-jitterbuffertarget", + "linkingText": [ + "[[JitterBufferTarget]]" + ], + "localLinkingText": [], + "type": "attribute", + "for": [ + "RTCRtpReceiver" + ], + "access": "public", + "informative": false, + "heading": { + "id": "rtcrtpreceiver-interface", + "href": "https://www.w3.org/TR/webrtc/#rtcrtpreceiver-interface", + "title": "RTCRtpReceiver Interface", + "number": "5.3" + }, + "definedIn": "prose" + }, { "id": "dom-rtpreceiver-track", "href": "https://www.w3.org/TR/webrtc/#dom-rtpreceiver-track", @@ -6730,6 +6998,64 @@ }, "definedIn": "dt" }, + { + "id": "dom-rtcrtpreceiver-jitterbuffertarget", + "href": "https://www.w3.org/TR/webrtc/#dom-rtcrtpreceiver-jitterbuffertarget", + "linkingText": [ + "jitterBufferTarget" + ], + "localLinkingText": [ + "RTCRtpReceiver.jitterBufferTarget" + ], + "type": "attribute", + "for": [ + "RTCRtpReceiver" + ], + "access": "public", + "informative": false, + "heading": { + "id": "attributes-10", + "href": "https://www.w3.org/TR/webrtc/#attributes-10", + "title": "Attributes" + }, + "definedIn": "dt" + }, + { + "id": "dfn-minimum-allowed-target", + "href": "https://www.w3.org/TR/webrtc/#dfn-minimum-allowed-target", + "linkingText": [ + "minimum allowed target" + ], + "localLinkingText": [], + "type": "dfn", + "for": [], + "access": "private", + "informative": false, + "heading": { + "id": "attributes-10", + "href": "https://www.w3.org/TR/webrtc/#attributes-10", + "title": "Attributes" + }, + "definedIn": "prose" + }, + { + "id": "dfn-maximum-allowed-target", + "href": "https://www.w3.org/TR/webrtc/#dfn-maximum-allowed-target", + "linkingText": [ + "maximum allowed target" + ], + "localLinkingText": [], + "type": "dfn", + "for": [], + "access": "private", + "informative": false, + "heading": { + "id": "attributes-10", + "href": "https://www.w3.org/TR/webrtc/#attributes-10", + "title": "Attributes" + }, + "definedIn": "prose" + }, { "id": "dom-rtcrtpreceiver-getcapabilities", "href": "https://www.w3.org/TR/webrtc/#dom-rtcrtpreceiver-getcapabilities", @@ -6755,6 +7081,42 @@ }, "definedIn": "dt" }, + { + "id": "dfn-list-of-implemented-receive-codecs", + "href": "https://www.w3.org/TR/webrtc/#dfn-list-of-implemented-receive-codecs", + "linkingText": [ + "list of implemented receive codecs" + ], + "localLinkingText": [], + "type": "dfn", + "for": [], + "access": "public", + "informative": false, + "heading": { + "id": "methods-7", + "href": "https://www.w3.org/TR/webrtc/#methods-7", + "title": "Methods" + }, + "definedIn": "prose" + }, + { + "id": "dfn-list-of-implemented-header-extensions-for-receiving", + "href": "https://www.w3.org/TR/webrtc/#dfn-list-of-implemented-header-extensions-for-receiving", + "linkingText": [ + "list of implemented header extensions for receiving" + ], + "localLinkingText": [], + "type": "dfn", + "for": [], + "access": "private", + "informative": false, + "heading": { + "id": "methods-7", + "href": "https://www.w3.org/TR/webrtc/#methods-7", + "title": "Methods" + }, + "definedIn": "prose" + }, { "id": "dom-rtcrtpreceiver-getparameters", "href": "https://www.w3.org/TR/webrtc/#dom-rtcrtpreceiver-getparameters", @@ -7015,8 +7377,10 @@ ], "localLinkingText": [], "type": "dfn", - "for": [], - "access": "private", + "for": [ + "RTCRtpTransceiver" + ], + "access": "public", "informative": false, "heading": { "id": "rtcrtptransceiver-interface", @@ -7033,9 +7397,9 @@ "create an RTCRtpTransceiver" ], "localLinkingText": [], - "type": "dfn", + "type": "abstract-op", "for": [], - "access": "private", + "access": "public", "informative": false, "heading": { "id": "rtcrtptransceiver-interface", @@ -7056,7 +7420,7 @@ "for": [ "RTCRtpTransceiver" ], - "access": "private", + "access": "public", "informative": false, "heading": { "id": "rtcrtptransceiver-interface", @@ -7224,7 +7588,7 @@ "for": [ "RTCRtpTransceiver" ], - "access": "private", + "access": "public", "informative": false, "heading": { "id": "rtcrtptransceiver-interface", @@ -7453,9 +7817,9 @@ "stop sending and receiving" ], "localLinkingText": [], - "type": "dfn", + "type": "abstract-op", "for": [], - "access": "private", + "access": "public", "informative": false, "heading": { "id": "methods-8", @@ -7471,9 +7835,9 @@ "stop the RTCRtpTransceiver" ], "localLinkingText": [], - "type": "dfn", + "type": "abstract-op", "for": [], - "access": "private", + "access": "public", "informative": false, "heading": { "id": "methods-8", @@ -7507,6 +7871,24 @@ }, "definedIn": "dt" }, + { + "id": "dfn-codec-dictionary-match", + "href": "https://www.w3.org/TR/webrtc/#dfn-codec-dictionary-match", + "linkingText": [ + "codec dictionary match" + ], + "localLinkingText": [], + "type": "dfn", + "for": [], + "access": "public", + "informative": false, + "heading": { + "id": "methods-8", + "href": "https://www.w3.org/TR/webrtc/#methods-8", + "title": "Methods" + }, + "definedIn": "prose" + }, { "id": "dfn-simulcast-envelope", "href": "https://www.w3.org/TR/webrtc/#dfn-simulcast-envelope", @@ -7519,8 +7901,8 @@ "access": "private", "informative": false, "heading": { - "id": "simulcast-functionality-new", - "href": "https://www.w3.org/TR/webrtc/#simulcast-functionality-new", + "id": "simulcast-functionality", + "href": "https://www.w3.org/TR/webrtc/#simulcast-functionality", "title": "Simulcast functionality", "number": "5.4.1" }, @@ -7538,8 +7920,8 @@ "access": "private", "informative": false, "heading": { - "id": "simulcast-functionality-new", - "href": "https://www.w3.org/TR/webrtc/#simulcast-functionality-new", + "id": "simulcast-functionality", + "href": "https://www.w3.org/TR/webrtc/#simulcast-functionality", "title": "Simulcast functionality", "number": "5.4.1" }, @@ -7927,9 +8309,9 @@ "release early candidates" ], "localLinkingText": [], - "type": "dfn", + "type": "abstract-op", "for": [], - "access": "private", + "access": "public", "informative": false, "heading": { "id": "rtcicetransport", @@ -7947,9 +8329,30 @@ "surface a candidate" ], "localLinkingText": [], - "type": "dfn", + "type": "abstract-op", "for": [], - "access": "private", + "access": "public", + "informative": false, + "heading": { + "id": "rtcicetransport", + "href": "https://www.w3.org/TR/webrtc/#rtcicetransport", + "title": "RTCIceTransport Interface", + "number": "5.6" + }, + "definedIn": "prose" + }, + { + "id": "dfn-change-the-selected-candidate-pair-and-state", + "href": "https://www.w3.org/TR/webrtc/#dfn-change-the-selected-candidate-pair-and-state", + "linkingText": [ + "change the selected candidate pair and state" + ], + "localLinkingText": [], + "type": "dfn", + "for": [ + "RTCIceTransport" + ], + "access": "public", "informative": false, "heading": { "id": "rtcicetransport", @@ -8395,23 +8798,106 @@ }, "definedIn": "heading" }, + { + "id": "dom-rtcicecandidatepair-dedup-163", + "href": "https://www.w3.org/TR/webrtc/#dom-rtcicecandidatepair-dedup-163", + "linkingText": [ + "RTCIceCandidatePair" + ], + "localLinkingText": [], + "type": "interface", + "for": [], + "access": "public", + "informative": false, + "heading": { + "id": "x5-6-2-rtcicecandidatepair-interface", + "href": "https://www.w3.org/TR/webrtc/#x5-6-2-rtcicecandidatepair-interface", + "title": "RTCIceCandidatePair Interface", + "number": "5.6.2" + }, + "definedIn": "heading" + }, + { + "id": "dfn-creating-an-rtcicecandidatepair", + "href": "https://www.w3.org/TR/webrtc/#dfn-creating-an-rtcicecandidatepair", + "linkingText": [ + "creating an RTCIceCandidatePair", + "create an RTCIceCandidatePair" + ], + "localLinkingText": [], + "type": "abstract-op", + "for": [], + "access": "public", + "informative": false, + "heading": { + "id": "x5-6-2-rtcicecandidatepair-interface", + "href": "https://www.w3.org/TR/webrtc/#x5-6-2-rtcicecandidatepair-interface", + "title": "RTCIceCandidatePair Interface", + "number": "5.6.2" + }, + "definedIn": "prose" + }, + { + "id": "dfn-local", + "href": "https://www.w3.org/TR/webrtc/#dfn-local", + "linkingText": [ + "[[Local]]" + ], + "localLinkingText": [], + "type": "attribute", + "for": [ + "RTCIceCandidatePair" + ], + "access": "private", + "informative": false, + "heading": { + "id": "x5-6-2-rtcicecandidatepair-interface", + "href": "https://www.w3.org/TR/webrtc/#x5-6-2-rtcicecandidatepair-interface", + "title": "RTCIceCandidatePair Interface", + "number": "5.6.2" + }, + "definedIn": "prose" + }, + { + "id": "dfn-remote", + "href": "https://www.w3.org/TR/webrtc/#dfn-remote", + "linkingText": [ + "[[Remote]]" + ], + "localLinkingText": [], + "type": "attribute", + "for": [ + "RTCIceCandidatePair" + ], + "access": "private", + "informative": false, + "heading": { + "id": "x5-6-2-rtcicecandidatepair-interface", + "href": "https://www.w3.org/TR/webrtc/#x5-6-2-rtcicecandidatepair-interface", + "title": "RTCIceCandidatePair Interface", + "number": "5.6.2" + }, + "definedIn": "prose" + }, { "id": "dom-rtcicecandidatepair-local", "href": "https://www.w3.org/TR/webrtc/#dom-rtcicecandidatepair-local", "linkingText": [ "local" ], - "localLinkingText": [], - "type": "dict-member", + "localLinkingText": [ + "RTCIceCandidatePair.local" + ], + "type": "attribute", "for": [ "RTCIceCandidatePair" ], "access": "public", "informative": false, "heading": { - "id": "dictionary-rtcicecandidatepair-members", - "href": "https://www.w3.org/TR/webrtc/#dictionary-rtcicecandidatepair-members", - "title": "Dictionary RTCIceCandidatePair Members" + "id": "attributes-14-dedup-164", + "href": "https://www.w3.org/TR/webrtc/#attributes-14-dedup-164", + "title": "Attributes" }, "definedIn": "dt" }, @@ -8421,17 +8907,19 @@ "linkingText": [ "remote" ], - "localLinkingText": [], - "type": "dict-member", + "localLinkingText": [ + "RTCIceCandidatePair.remote" + ], + "type": "attribute", "for": [ "RTCIceCandidatePair" ], "access": "public", "informative": false, "heading": { - "id": "dictionary-rtcicecandidatepair-members", - "href": "https://www.w3.org/TR/webrtc/#dictionary-rtcicecandidatepair-members", - "title": "Dictionary RTCIceCandidatePair Members" + "id": "attributes-14-dedup-164", + "href": "https://www.w3.org/TR/webrtc/#attributes-14-dedup-164", + "title": "Attributes" }, "definedIn": "dt" }, @@ -8537,10 +9025,10 @@ "definedIn": "heading" }, { - "id": "dom-rtcicetransportstate-new", - "href": "https://www.w3.org/TR/webrtc/#dom-rtcicetransportstate-new", + "id": "dom-rtcicetransportstate-closed", + "href": "https://www.w3.org/TR/webrtc/#dom-rtcicetransportstate-closed", "linkingText": [ - "new" + "closed" ], "localLinkingText": [], "type": "enum-value", @@ -8558,10 +9046,10 @@ "definedIn": "table" }, { - "id": "dom-rtcicetransportstate-checking", - "href": "https://www.w3.org/TR/webrtc/#dom-rtcicetransportstate-checking", + "id": "dom-rtcicetransportstate-failed", + "href": "https://www.w3.org/TR/webrtc/#dom-rtcicetransportstate-failed", "linkingText": [ - "checking" + "failed" ], "localLinkingText": [], "type": "enum-value", @@ -8579,10 +9067,10 @@ "definedIn": "table" }, { - "id": "dom-rtcicetransportstate-connected", - "href": "https://www.w3.org/TR/webrtc/#dom-rtcicetransportstate-connected", + "id": "dom-rtcicetransportstate-disconnected", + "href": "https://www.w3.org/TR/webrtc/#dom-rtcicetransportstate-disconnected", "linkingText": [ - "connected" + "disconnected" ], "localLinkingText": [], "type": "enum-value", @@ -8600,10 +9088,10 @@ "definedIn": "table" }, { - "id": "dom-rtcicetransportstate-completed", - "href": "https://www.w3.org/TR/webrtc/#dom-rtcicetransportstate-completed", + "id": "dom-rtcicetransportstate-new", + "href": "https://www.w3.org/TR/webrtc/#dom-rtcicetransportstate-new", "linkingText": [ - "completed" + "new" ], "localLinkingText": [], "type": "enum-value", @@ -8621,10 +9109,10 @@ "definedIn": "table" }, { - "id": "dom-rtcicetransportstate-disconnected", - "href": "https://www.w3.org/TR/webrtc/#dom-rtcicetransportstate-disconnected", + "id": "dom-rtcicetransportstate-checking", + "href": "https://www.w3.org/TR/webrtc/#dom-rtcicetransportstate-checking", "linkingText": [ - "disconnected" + "checking" ], "localLinkingText": [], "type": "enum-value", @@ -8642,10 +9130,10 @@ "definedIn": "table" }, { - "id": "dom-rtcicetransportstate-failed", - "href": "https://www.w3.org/TR/webrtc/#dom-rtcicetransportstate-failed", + "id": "dom-rtcicetransportstate-completed", + "href": "https://www.w3.org/TR/webrtc/#dom-rtcicetransportstate-completed", "linkingText": [ - "failed" + "completed" ], "localLinkingText": [], "type": "enum-value", @@ -8663,10 +9151,10 @@ "definedIn": "table" }, { - "id": "dom-rtcicetransportstate-closed", - "href": "https://www.w3.org/TR/webrtc/#dom-rtcicetransportstate-closed", + "id": "dom-rtcicetransportstate-connected", + "href": "https://www.w3.org/TR/webrtc/#dom-rtcicetransportstate-connected", "linkingText": [ - "closed" + "connected" ], "localLinkingText": [], "type": "enum-value", @@ -8886,8 +9374,8 @@ "access": "public", "informative": false, "heading": { - "id": "attributes-14", - "href": "https://www.w3.org/TR/webrtc/#attributes-14", + "id": "attributes-15", + "href": "https://www.w3.org/TR/webrtc/#attributes-15", "title": "Attributes" }, "definedIn": "dt" @@ -8908,8 +9396,8 @@ "access": "public", "informative": false, "heading": { - "id": "attributes-14", - "href": "https://www.w3.org/TR/webrtc/#attributes-14", + "id": "attributes-15", + "href": "https://www.w3.org/TR/webrtc/#attributes-15", "title": "Attributes" }, "definedIn": "dt" @@ -8930,8 +9418,8 @@ "access": "public", "informative": false, "heading": { - "id": "attributes-14", - "href": "https://www.w3.org/TR/webrtc/#attributes-14", + "id": "attributes-15", + "href": "https://www.w3.org/TR/webrtc/#attributes-15", "title": "Attributes" }, "definedIn": "dt" @@ -8952,8 +9440,8 @@ "access": "public", "informative": false, "heading": { - "id": "attributes-14", - "href": "https://www.w3.org/TR/webrtc/#attributes-14", + "id": "attributes-15", + "href": "https://www.w3.org/TR/webrtc/#attributes-15", "title": "Attributes" }, "definedIn": "dt" @@ -9072,8 +9560,8 @@ "access": "public", "informative": false, "heading": { - "id": "attributes-15", - "href": "https://www.w3.org/TR/webrtc/#attributes-15", + "id": "attributes-16", + "href": "https://www.w3.org/TR/webrtc/#attributes-16", "title": "Attributes" }, "definedIn": "dt" @@ -9094,8 +9582,8 @@ "access": "public", "informative": false, "heading": { - "id": "attributes-15", - "href": "https://www.w3.org/TR/webrtc/#attributes-15", + "id": "attributes-16", + "href": "https://www.w3.org/TR/webrtc/#attributes-16", "title": "Attributes" }, "definedIn": "dt" @@ -9152,9 +9640,9 @@ "create an RTCSctpTransport" ], "localLinkingText": [], - "type": "dfn", + "type": "abstract-op", "for": [], - "access": "private", + "access": "public", "informative": false, "heading": { "id": "create-an-instance", @@ -9234,9 +9722,9 @@ "update the data max message size" ], "localLinkingText": [], - "type": "dfn", + "type": "abstract-op", "for": [], - "access": "private", + "access": "public", "informative": false, "heading": { "id": "update-max-message-size", @@ -9282,8 +9770,8 @@ "access": "public", "informative": false, "heading": { - "id": "attributes-16", - "href": "https://www.w3.org/TR/webrtc/#attributes-16", + "id": "attributes-17", + "href": "https://www.w3.org/TR/webrtc/#attributes-17", "title": "Attributes" }, "definedIn": "dt" @@ -9304,8 +9792,8 @@ "access": "public", "informative": false, "heading": { - "id": "attributes-16", - "href": "https://www.w3.org/TR/webrtc/#attributes-16", + "id": "attributes-17", + "href": "https://www.w3.org/TR/webrtc/#attributes-17", "title": "Attributes" }, "definedIn": "dt" @@ -9326,8 +9814,8 @@ "access": "public", "informative": false, "heading": { - "id": "attributes-16", - "href": "https://www.w3.org/TR/webrtc/#attributes-16", + "id": "attributes-17", + "href": "https://www.w3.org/TR/webrtc/#attributes-17", "title": "Attributes" }, "definedIn": "dt" @@ -9348,8 +9836,8 @@ "access": "public", "informative": false, "heading": { - "id": "attributes-16", - "href": "https://www.w3.org/TR/webrtc/#attributes-16", + "id": "attributes-17", + "href": "https://www.w3.org/TR/webrtc/#attributes-17", "title": "Attributes" }, "definedIn": "dt" @@ -9370,8 +9858,8 @@ "access": "public", "informative": false, "heading": { - "id": "attributes-16", - "href": "https://www.w3.org/TR/webrtc/#attributes-16", + "id": "attributes-17", + "href": "https://www.w3.org/TR/webrtc/#attributes-17", "title": "Attributes" }, "definedIn": "dt" @@ -9504,9 +9992,9 @@ "create an RTCDataChannel" ], "localLinkingText": [], - "type": "dfn", + "type": "abstract-op", "for": [], - "access": "private", + "access": "public", "informative": false, "heading": { "id": "creating-a-data-channel", @@ -9705,6 +10193,27 @@ }, "definedIn": "prose" }, + { + "id": "dfn-istransferable", + "href": "https://www.w3.org/TR/webrtc/#dfn-istransferable", + "linkingText": [ + "[[IsTransferable]]" + ], + "localLinkingText": [], + "type": "attribute", + "for": [ + "RTCDataChannel" + ], + "access": "private", + "informative": false, + "heading": { + "id": "creating-a-data-channel", + "href": "https://www.w3.org/TR/webrtc/#creating-a-data-channel", + "title": "Creating a data channel", + "number": "6.2.1" + }, + "definedIn": "prose" + }, { "id": "announce-datachannel-open", "href": "https://www.w3.org/TR/webrtc/#announce-datachannel-open", @@ -9713,9 +10222,9 @@ "announce an RTCDataChannel as open" ], "localLinkingText": [], - "type": "dfn", + "type": "abstract-op", "for": [], - "access": "private", + "access": "public", "informative": false, "heading": { "id": "announcing-a-data-channel-as-open", @@ -9732,18 +10241,37 @@ "closing procedure" ], "localLinkingText": [], - "type": "dfn", + "type": "abstract-op", "for": [], - "access": "private", + "access": "public", "informative": false, "heading": { - "id": "closing-procedure", - "href": "https://www.w3.org/TR/webrtc/#closing-procedure", + "id": "x6-2-4-closing-procedure-dedup-167", + "href": "https://www.w3.org/TR/webrtc/#x6-2-4-closing-procedure-dedup-167", "title": "Closing procedure", "number": "6.2.4" }, "definedIn": "prose" }, + { + "id": "dfn-announcing-a-data-channel-as-closed", + "href": "https://www.w3.org/TR/webrtc/#dfn-announcing-a-data-channel-as-closed", + "linkingText": [ + "Announcing a data channel as closed" + ], + "localLinkingText": [], + "type": "abstract-op", + "for": [], + "access": "public", + "informative": false, + "heading": { + "id": "announcing-a-data-channel-as-closed", + "href": "https://www.w3.org/TR/webrtc/#announcing-a-data-channel-as-closed", + "title": "Announcing a data channel as closed", + "number": "6.2.5" + }, + "definedIn": "heading" + }, { "id": "data-transport-closed", "href": "https://www.w3.org/TR/webrtc/#data-transport-closed", @@ -9780,10 +10308,29 @@ "id": "error-on-creating-data-channels", "href": "https://www.w3.org/TR/webrtc/#error-on-creating-data-channels", "title": "Error on creating data channels", - "number": "6.2.6" + "number": "6.2.7" }, "definedIn": "prose" }, + { + "id": "dfn-receiving-messages-on-a-data-channel", + "href": "https://www.w3.org/TR/webrtc/#dfn-receiving-messages-on-a-data-channel", + "linkingText": [ + "Receiving messages on a data channel" + ], + "localLinkingText": [], + "type": "abstract-op", + "for": [], + "access": "public", + "informative": false, + "heading": { + "id": "receiving-messages-on-a-data-channel", + "href": "https://www.w3.org/TR/webrtc/#receiving-messages-on-a-data-channel", + "title": "Receiving messages on a data channel", + "number": "6.2.8" + }, + "definedIn": "heading" + }, { "id": "dom-datachannel-label", "href": "https://www.w3.org/TR/webrtc/#dom-datachannel-label", @@ -9800,8 +10347,8 @@ "access": "public", "informative": false, "heading": { - "id": "attributes-17", - "href": "https://www.w3.org/TR/webrtc/#attributes-17", + "id": "attributes-18", + "href": "https://www.w3.org/TR/webrtc/#attributes-18", "title": "Attributes" }, "definedIn": "dt" @@ -9822,8 +10369,8 @@ "access": "public", "informative": false, "heading": { - "id": "attributes-17", - "href": "https://www.w3.org/TR/webrtc/#attributes-17", + "id": "attributes-18", + "href": "https://www.w3.org/TR/webrtc/#attributes-18", "title": "Attributes" }, "definedIn": "dt" @@ -9844,8 +10391,8 @@ "access": "public", "informative": false, "heading": { - "id": "attributes-17", - "href": "https://www.w3.org/TR/webrtc/#attributes-17", + "id": "attributes-18", + "href": "https://www.w3.org/TR/webrtc/#attributes-18", "title": "Attributes" }, "definedIn": "dt" @@ -9866,8 +10413,8 @@ "access": "public", "informative": false, "heading": { - "id": "attributes-17", - "href": "https://www.w3.org/TR/webrtc/#attributes-17", + "id": "attributes-18", + "href": "https://www.w3.org/TR/webrtc/#attributes-18", "title": "Attributes" }, "definedIn": "dt" @@ -9888,8 +10435,8 @@ "access": "public", "informative": false, "heading": { - "id": "attributes-17", - "href": "https://www.w3.org/TR/webrtc/#attributes-17", + "id": "attributes-18", + "href": "https://www.w3.org/TR/webrtc/#attributes-18", "title": "Attributes" }, "definedIn": "dt" @@ -9910,8 +10457,8 @@ "access": "public", "informative": false, "heading": { - "id": "attributes-17", - "href": "https://www.w3.org/TR/webrtc/#attributes-17", + "id": "attributes-18", + "href": "https://www.w3.org/TR/webrtc/#attributes-18", "title": "Attributes" }, "definedIn": "dt" @@ -9932,8 +10479,8 @@ "access": "public", "informative": false, "heading": { - "id": "attributes-17", - "href": "https://www.w3.org/TR/webrtc/#attributes-17", + "id": "attributes-18", + "href": "https://www.w3.org/TR/webrtc/#attributes-18", "title": "Attributes" }, "definedIn": "dt" @@ -9954,8 +10501,8 @@ "access": "public", "informative": false, "heading": { - "id": "attributes-17", - "href": "https://www.w3.org/TR/webrtc/#attributes-17", + "id": "attributes-18", + "href": "https://www.w3.org/TR/webrtc/#attributes-18", "title": "Attributes" }, "definedIn": "dt" @@ -9976,8 +10523,8 @@ "access": "public", "informative": false, "heading": { - "id": "attributes-17", - "href": "https://www.w3.org/TR/webrtc/#attributes-17", + "id": "attributes-18", + "href": "https://www.w3.org/TR/webrtc/#attributes-18", "title": "Attributes" }, "definedIn": "dt" @@ -9998,8 +10545,8 @@ "access": "public", "informative": false, "heading": { - "id": "attributes-17", - "href": "https://www.w3.org/TR/webrtc/#attributes-17", + "id": "attributes-18", + "href": "https://www.w3.org/TR/webrtc/#attributes-18", "title": "Attributes" }, "definedIn": "dt" @@ -10020,8 +10567,8 @@ "access": "public", "informative": false, "heading": { - "id": "attributes-17", - "href": "https://www.w3.org/TR/webrtc/#attributes-17", + "id": "attributes-18", + "href": "https://www.w3.org/TR/webrtc/#attributes-18", "title": "Attributes" }, "definedIn": "dt" @@ -10042,8 +10589,8 @@ "access": "public", "informative": false, "heading": { - "id": "attributes-17", - "href": "https://www.w3.org/TR/webrtc/#attributes-17", + "id": "attributes-18", + "href": "https://www.w3.org/TR/webrtc/#attributes-18", "title": "Attributes" }, "definedIn": "dt" @@ -10064,8 +10611,8 @@ "access": "public", "informative": false, "heading": { - "id": "attributes-17", - "href": "https://www.w3.org/TR/webrtc/#attributes-17", + "id": "attributes-18", + "href": "https://www.w3.org/TR/webrtc/#attributes-18", "title": "Attributes" }, "definedIn": "dt" @@ -10086,8 +10633,8 @@ "access": "public", "informative": false, "heading": { - "id": "attributes-17", - "href": "https://www.w3.org/TR/webrtc/#attributes-17", + "id": "attributes-18", + "href": "https://www.w3.org/TR/webrtc/#attributes-18", "title": "Attributes" }, "definedIn": "dt" @@ -10108,8 +10655,8 @@ "access": "public", "informative": false, "heading": { - "id": "attributes-17", - "href": "https://www.w3.org/TR/webrtc/#attributes-17", + "id": "attributes-18", + "href": "https://www.w3.org/TR/webrtc/#attributes-18", "title": "Attributes" }, "definedIn": "dt" @@ -10130,8 +10677,8 @@ "access": "public", "informative": false, "heading": { - "id": "attributes-17", - "href": "https://www.w3.org/TR/webrtc/#attributes-17", + "id": "attributes-18", + "href": "https://www.w3.org/TR/webrtc/#attributes-18", "title": "Attributes" }, "definedIn": "dt" @@ -10152,8 +10699,8 @@ "access": "public", "informative": false, "heading": { - "id": "attributes-17", - "href": "https://www.w3.org/TR/webrtc/#attributes-17", + "id": "attributes-18", + "href": "https://www.w3.org/TR/webrtc/#attributes-18", "title": "Attributes" }, "definedIn": "dt" @@ -10289,9 +10836,9 @@ "send() algorithm" ], "localLinkingText": [], - "type": "dfn", + "type": "abstract-op", "for": [], - "access": "private", + "access": "public", "informative": false, "heading": { "id": "methods-12", @@ -10601,8 +11148,8 @@ "access": "public", "informative": false, "heading": { - "id": "attributes-18", - "href": "https://www.w3.org/TR/webrtc/#attributes-18", + "id": "attributes-19", + "href": "https://www.w3.org/TR/webrtc/#attributes-19", "title": "Attributes" }, "definedIn": "dt" @@ -10661,8 +11208,8 @@ "access": "public", "informative": false, "heading": { - "id": "attributes-19", - "href": "https://www.w3.org/TR/webrtc/#attributes-19", + "id": "attributes-20", + "href": "https://www.w3.org/TR/webrtc/#attributes-20", "title": "Attributes" }, "definedIn": "dt" @@ -10693,9 +11240,9 @@ "create an RTCDTMFSender" ], "localLinkingText": [], - "type": "dfn", + "type": "abstract-op", "for": [], - "access": "private", + "access": "public", "informative": false, "heading": { "id": "rtcdtmfsender", @@ -10784,8 +11331,8 @@ "access": "public", "informative": false, "heading": { - "id": "attributes-20", - "href": "https://www.w3.org/TR/webrtc/#attributes-20", + "id": "attributes-21", + "href": "https://www.w3.org/TR/webrtc/#attributes-21", "title": "Attributes" }, "definedIn": "dt" @@ -10806,8 +11353,8 @@ "access": "public", "informative": false, "heading": { - "id": "attributes-20", - "href": "https://www.w3.org/TR/webrtc/#attributes-20", + "id": "attributes-21", + "href": "https://www.w3.org/TR/webrtc/#attributes-21", "title": "Attributes" }, "definedIn": "dt" @@ -10828,8 +11375,8 @@ "access": "public", "informative": false, "heading": { - "id": "attributes-20", - "href": "https://www.w3.org/TR/webrtc/#attributes-20", + "id": "attributes-21", + "href": "https://www.w3.org/TR/webrtc/#attributes-21", "title": "Attributes" }, "definedIn": "dt" @@ -10879,6 +11426,24 @@ }, "definedIn": "prose" }, + { + "id": "dfn-dtmf-playout-task-steps", + "href": "https://www.w3.org/TR/webrtc/#dfn-dtmf-playout-task-steps", + "linkingText": [ + "DTMF playout task steps" + ], + "localLinkingText": [], + "type": "dfn", + "for": [], + "access": "private", + "informative": false, + "heading": { + "id": "methods-13", + "href": "https://www.w3.org/TR/webrtc/#methods-13", + "title": "Methods" + }, + "definedIn": "prose" + }, { "id": "dfn-determine-if-dtmf-can-be-sent", "href": "https://www.w3.org/TR/webrtc/#dfn-determine-if-dtmf-can-be-sent", @@ -10886,9 +11451,9 @@ "determine if DTMF can be sent" ], "localLinkingText": [], - "type": "dfn", + "type": "abstract-op", "for": [], - "access": "private", + "access": "public", "informative": false, "heading": { "id": "caninsertdtmf-algorithm", @@ -10959,8 +11524,8 @@ "access": "public", "informative": false, "heading": { - "id": "attributes-21", - "href": "https://www.w3.org/TR/webrtc/#attributes-21", + "id": "attributes-22", + "href": "https://www.w3.org/TR/webrtc/#attributes-22", "title": "Attributes" }, "definedIn": "dt" @@ -11152,9 +11717,9 @@ "stats selection algorithm" ], "localLinkingText": [], - "type": "dfn", + "type": "abstract-op", "for": [], - "access": "private", + "access": "public", "informative": false, "heading": { "id": "the-stats-selection-algorithm", diff --git a/tr/headings/webrtc.json b/tr/headings/webrtc.json index 0f0c73f0adcc..9e01e6ad9591 100644 --- a/tr/headings/webrtc.json +++ b/tr/headings/webrtc.json @@ -65,6 +65,13 @@ "title": "RTCConfiguration Dictionary", "number": "4.2.1" }, + { + "id": "x4-2-1-rtcconfiguration-dictionary-dedup-0", + "href": "https://www.w3.org/TR/webrtc/#x4-2-1-rtcconfiguration-dictionary-dedup-0", + "level": 4, + "title": "RTCConfiguration Dictionary", + "number": "4.2.1" + }, { "id": "dictionary-rtcconfiguration-members", "href": "https://www.w3.org/TR/webrtc/#dictionary-rtcconfiguration-members", @@ -72,14 +79,14 @@ "title": "Dictionary RTCConfiguration Members" }, { - "id": "dictionary-rtcconfiguration-members-new", - "href": "https://www.w3.org/TR/webrtc/#dictionary-rtcconfiguration-members-new", + "id": "dictionary-rtcconfiguration-members-0-dedup-2", + "href": "https://www.w3.org/TR/webrtc/#dictionary-rtcconfiguration-members-0-dedup-2", "level": 5, "title": "Dictionary RTCConfiguration Members" }, { - "id": "rtcicecredentialtype-enum", - "href": "https://www.w3.org/TR/webrtc/#rtcicecredentialtype-enum", + "id": "rtcicecredentialtype-enum-dedup-4", + "href": "https://www.w3.org/TR/webrtc/#rtcicecredentialtype-enum-dedup-4", "level": 4, "title": "RTCIceCredentialType Enum", "number": "4.2.2" @@ -91,6 +98,13 @@ "title": "RTCIceServer Dictionary", "number": "4.2.3" }, + { + "id": "x4-2-2-rtciceserver-dictionary", + "href": "https://www.w3.org/TR/webrtc/#x4-2-2-rtciceserver-dictionary", + "level": 4, + "title": "RTCIceServer Dictionary", + "number": "4.2.2" + }, { "id": "dictionary-rtciceserver-members", "href": "https://www.w3.org/TR/webrtc/#dictionary-rtciceserver-members", @@ -98,15 +112,8 @@ "title": "Dictionary RTCIceServer Members" }, { - "id": "rtciceserver-dictionary-new", - "href": "https://www.w3.org/TR/webrtc/#rtciceserver-dictionary-new", - "level": 4, - "title": "RTCIceServer Dictionary", - "number": "4.2.2" - }, - { - "id": "dictionary-rtciceserver-members-dedup-1", - "href": "https://www.w3.org/TR/webrtc/#dictionary-rtciceserver-members-dedup-1", + "id": "dictionary-rtciceserver-members-dedup-7", + "href": "https://www.w3.org/TR/webrtc/#dictionary-rtciceserver-members-dedup-7", "level": 5, "title": "Dictionary RTCIceServer Members" }, @@ -220,33 +227,19 @@ "title": "Update the connection state", "number": "4.4.1.3" }, - { - "id": "update-the-ice-gathering-state", - "href": "https://www.w3.org/TR/webrtc/#update-the-ice-gathering-state", - "level": 5, - "title": "Update the ICE gathering state", - "number": "4.4.1.4" - }, { "id": "set-the-session-description", "href": "https://www.w3.org/TR/webrtc/#set-the-session-description", "level": 5, "title": "Set the session description", - "number": "4.4.1.5" + "number": "4.4.1.4" }, { "id": "set-the-configuration", "href": "https://www.w3.org/TR/webrtc/#set-the-configuration", "level": 5, "title": "Set the configuration", - "number": "4.4.1.6" - }, - { - "id": "set-the-configuration-new", - "href": "https://www.w3.org/TR/webrtc/#set-the-configuration-new", - "level": 5, - "title": "Set the configuration", - "number": "4.4.1.6" + "number": "4.4.1.5" }, { "id": "interface-definition", @@ -522,12 +515,6 @@ "level": 5, "title": "Attributes" }, - { - "id": "rtcpeerconnectioniceevent-attributes", - "href": "https://www.w3.org/TR/webrtc/#rtcpeerconnectioniceevent-attributes", - "level": 5, - "title": "Attributes" - }, { "id": "dictionary-rtcpeerconnectioniceeventinit-members", "href": "https://www.w3.org/TR/webrtc/#dictionary-rtcpeerconnectioniceeventinit-members", @@ -580,8 +567,8 @@ "number": "4.9.1" }, { - "id": "rtccertificateexpiration-dictionary-new", - "href": "https://www.w3.org/TR/webrtc/#rtccertificateexpiration-dictionary-new", + "id": "x4-9-1-rtccertificateexpiration-dictionary-dedup-72", + "href": "https://www.w3.org/TR/webrtc/#x4-9-1-rtccertificateexpiration-dictionary-dedup-72", "level": 4, "title": "RTCCertificateExpiration Dictionary", "number": "4.9.1" @@ -593,6 +580,13 @@ "title": "RTCCertificate Interface", "number": "4.9.2" }, + { + "id": "x4-9-2-rtccertificate-interface-dedup-74", + "href": "https://www.w3.org/TR/webrtc/#x4-9-2-rtccertificate-interface-dedup-74", + "level": 4, + "title": "RTCCertificate Interface", + "number": "4.9.2" + }, { "id": "attributes-7", "href": "https://www.w3.org/TR/webrtc/#attributes-7", @@ -600,27 +594,20 @@ "title": "Attributes" }, { - "id": "methods-4", - "href": "https://www.w3.org/TR/webrtc/#methods-4", + "id": "attributes-7-dedup-76", + "href": "https://www.w3.org/TR/webrtc/#attributes-7-dedup-76", "level": 5, - "title": "Methods" - }, - { - "id": "rtccertificate-interface-new", - "href": "https://www.w3.org/TR/webrtc/#rtccertificate-interface-new", - "level": 4, - "title": "RTCCertificate Interface", - "number": "4.9.2" + "title": "Attributes" }, { - "id": "attributes-7-dedup-5", - "href": "https://www.w3.org/TR/webrtc/#attributes-7-dedup-5", + "id": "methods-4", + "href": "https://www.w3.org/TR/webrtc/#methods-4", "level": 5, - "title": "Attributes" + "title": "Methods" }, { - "id": "methods-4-dedup-6", - "href": "https://www.w3.org/TR/webrtc/#methods-4-dedup-6", + "id": "methods-4-dedup-77", + "href": "https://www.w3.org/TR/webrtc/#methods-4-dedup-77", "level": 5, "title": "Methods" }, @@ -729,8 +716,8 @@ "title": "Dictionary RTCRtpCodingParameters Members" }, { - "id": "rtcrtpdecodingparameters", - "href": "https://www.w3.org/TR/webrtc/#rtcrtpdecodingparameters", + "id": "rtcrtpdecodingparameters-dedup-95", + "href": "https://www.w3.org/TR/webrtc/#rtcrtpdecodingparameters-dedup-95", "level": 4, "title": "RTCRtpDecodingParameters Dictionary", "number": "5.2.5" @@ -774,12 +761,25 @@ "level": 5, "title": "Dictionary RTCRtpHeaderExtensionParameters Members" }, + { + "id": "rtcrtpcodec", + "href": "https://www.w3.org/TR/webrtc/#rtcrtpcodec", + "level": 4, + "title": "RTCRtpCodec Dictionary", + "number": "5.2.8" + }, + { + "id": "dictionary-rtcrtpcodec-members", + "href": "https://www.w3.org/TR/webrtc/#dictionary-rtcrtpcodec-members", + "level": 5, + "title": "Dictionary RTCRtpCodec Members" + }, { "id": "rtcrtpcodecparameters", "href": "https://www.w3.org/TR/webrtc/#rtcrtpcodecparameters", "level": 4, "title": "RTCRtpCodecParameters Dictionary", - "number": "5.2.8" + "number": "5.2.9" }, { "id": "dictionary-rtcrtpcodecparameters-members", @@ -788,30 +788,30 @@ "title": "Dictionary RTCRtpCodecParameters Members" }, { - "id": "rtcrtpcapabilities", - "href": "https://www.w3.org/TR/webrtc/#rtcrtpcapabilities", + "id": "x5-2-9-rtcrtpcodecparameters-dictionary-dedup-97", + "href": "https://www.w3.org/TR/webrtc/#x5-2-9-rtcrtpcodecparameters-dictionary-dedup-97", "level": 4, - "title": "RTCRtpCapabilities Dictionary", + "title": "RTCRtpCodecParameters Dictionary", "number": "5.2.9" }, { - "id": "dictionary-rtcrtpcapabilities-members", - "href": "https://www.w3.org/TR/webrtc/#dictionary-rtcrtpcapabilities-members", + "id": "dictionary-rtcrtpcodecparameters-members-dedup-99", + "href": "https://www.w3.org/TR/webrtc/#dictionary-rtcrtpcodecparameters-members-dedup-99", "level": 5, - "title": "Dictionary RTCRtpCapabilities Members" + "title": "Dictionary RTCRtpCodecParameters Members" }, { - "id": "rtcrtpcodeccapability", - "href": "https://www.w3.org/TR/webrtc/#rtcrtpcodeccapability", + "id": "rtcrtpcapabilities", + "href": "https://www.w3.org/TR/webrtc/#rtcrtpcapabilities", "level": 4, - "title": "RTCRtpCodecCapability Dictionary", + "title": "RTCRtpCapabilities Dictionary", "number": "5.2.10" }, { - "id": "dictionary-rtcrtpcodeccapability-members", - "href": "https://www.w3.org/TR/webrtc/#dictionary-rtcrtpcodeccapability-members", + "id": "dictionary-rtcrtpcapabilities-members", + "href": "https://www.w3.org/TR/webrtc/#dictionary-rtcrtpcapabilities-members", "level": 5, - "title": "Dictionary RTCRtpCodecCapability Members" + "title": "Dictionary RTCRtpCapabilities Members" }, { "id": "rtcrtpheaderextensioncapability", @@ -826,6 +826,19 @@ "level": 5, "title": "Dictionary RTCRtpHeaderExtensionCapability Members" }, + { + "id": "rtcsetparameteroptions-dictionary", + "href": "https://www.w3.org/TR/webrtc/#rtcsetparameteroptions-dictionary", + "level": 4, + "title": "RTCSetParameterOptions Dictionary", + "number": "5.2.12" + }, + { + "id": "dictionary-rtcsetparameteroptions-members", + "href": "https://www.w3.org/TR/webrtc/#dictionary-rtcsetparameteroptions-members", + "level": 5, + "title": "Dictionary RTCSetParameterOptions Members" + }, { "id": "rtcrtpreceiver-interface", "href": "https://www.w3.org/TR/webrtc/#rtcrtpreceiver-interface", @@ -877,20 +890,6 @@ "title": "Simulcast functionality", "number": "5.4.1" }, - { - "id": "x5-4-1-1-encoding-parameter-examples", - "href": "https://www.w3.org/TR/webrtc/#x5-4-1-1-encoding-parameter-examples", - "level": 5, - "title": "Encoding Parameter Examples", - "number": "5.4.1.1" - }, - { - "id": "simulcast-functionality-new", - "href": "https://www.w3.org/TR/webrtc/#simulcast-functionality-new", - "level": 4, - "title": "Simulcast functionality", - "number": "5.4.1" - }, { "id": "rtcrtpencodingspatialsim-example*", "href": "https://www.w3.org/TR/webrtc/#rtcrtpencodingspatialsim-example*", @@ -983,12 +982,31 @@ "title": "RTCIceCandidatePair Dictionary", "number": "5.6.2" }, + { + "id": "x5-6-2-rtcicecandidatepair-interface", + "href": "https://www.w3.org/TR/webrtc/#x5-6-2-rtcicecandidatepair-interface", + "level": 4, + "title": "RTCIceCandidatePair Interface", + "number": "5.6.2" + }, { "id": "dictionary-rtcicecandidatepair-members", "href": "https://www.w3.org/TR/webrtc/#dictionary-rtcicecandidatepair-members", "level": 5, "title": "Dictionary RTCIceCandidatePair Members" }, + { + "id": "attributes-14", + "href": "https://www.w3.org/TR/webrtc/#attributes-14", + "level": 5, + "title": "" + }, + { + "id": "attributes-14-dedup-164", + "href": "https://www.w3.org/TR/webrtc/#attributes-14-dedup-164", + "level": 5, + "title": "Attributes" + }, { "id": "rtcicegathererstate", "href": "https://www.w3.org/TR/webrtc/#rtcicegathererstate", @@ -1031,8 +1049,8 @@ "title": "Constructors" }, { - "id": "attributes-14", - "href": "https://www.w3.org/TR/webrtc/#attributes-14", + "id": "attributes-15", + "href": "https://www.w3.org/TR/webrtc/#attributes-15", "level": 4, "title": "Attributes" }, @@ -1057,8 +1075,8 @@ "number": "6.1" }, { - "id": "attributes-15", - "href": "https://www.w3.org/TR/webrtc/#attributes-15", + "id": "attributes-16", + "href": "https://www.w3.org/TR/webrtc/#attributes-16", "level": 4, "title": "Attributes" }, @@ -1097,8 +1115,8 @@ "number": "6.1.1.3" }, { - "id": "attributes-16", - "href": "https://www.w3.org/TR/webrtc/#attributes-16", + "id": "attributes-17", + "href": "https://www.w3.org/TR/webrtc/#attributes-17", "level": 5, "title": "Attributes" }, @@ -1144,6 +1162,13 @@ "title": "Closing procedure", "number": "6.2.4" }, + { + "id": "x6-2-4-closing-procedure-dedup-167", + "href": "https://www.w3.org/TR/webrtc/#x6-2-4-closing-procedure-dedup-167", + "level": 4, + "title": "Closing procedure", + "number": "6.2.4" + }, { "id": "announcing-a-data-channel-as-closed", "href": "https://www.w3.org/TR/webrtc/#announcing-a-data-channel-as-closed", @@ -1151,23 +1176,30 @@ "title": "Announcing a data channel as closed", "number": "6.2.5" }, + { + "id": "transfering-a-data-channel", + "href": "https://www.w3.org/TR/webrtc/#transfering-a-data-channel", + "level": 4, + "title": "Transfering data channel", + "number": "6.2.6" + }, { "id": "error-on-creating-data-channels", "href": "https://www.w3.org/TR/webrtc/#error-on-creating-data-channels", "level": 4, "title": "Error on creating data channels", - "number": "6.2.6" + "number": "6.2.7" }, { "id": "receiving-messages-on-a-data-channel", "href": "https://www.w3.org/TR/webrtc/#receiving-messages-on-a-data-channel", "level": 4, "title": "Receiving messages on a data channel", - "number": "6.2.7" + "number": "6.2.8" }, { - "id": "attributes-17", - "href": "https://www.w3.org/TR/webrtc/#attributes-17", + "id": "attributes-18", + "href": "https://www.w3.org/TR/webrtc/#attributes-18", "level": 4, "title": "Attributes" }, @@ -1197,8 +1229,8 @@ "title": "Constructors" }, { - "id": "attributes-18", - "href": "https://www.w3.org/TR/webrtc/#attributes-18", + "id": "attributes-19", + "href": "https://www.w3.org/TR/webrtc/#attributes-19", "level": 4, "title": "Attributes" }, @@ -1230,8 +1262,8 @@ "number": "7.1" }, { - "id": "attributes-19", - "href": "https://www.w3.org/TR/webrtc/#attributes-19", + "id": "attributes-20", + "href": "https://www.w3.org/TR/webrtc/#attributes-20", "level": 4, "title": "Attributes" }, @@ -1243,8 +1275,8 @@ "number": "7.2" }, { - "id": "attributes-20", - "href": "https://www.w3.org/TR/webrtc/#attributes-20", + "id": "attributes-21", + "href": "https://www.w3.org/TR/webrtc/#attributes-21", "level": 4, "title": "Attributes" }, @@ -1275,8 +1307,8 @@ "title": "Constructors" }, { - "id": "attributes-21", - "href": "https://www.w3.org/TR/webrtc/#attributes-21", + "id": "attributes-22", + "href": "https://www.w3.org/TR/webrtc/#attributes-22", "level": 4, "title": "Attributes" }, @@ -1588,39 +1620,53 @@ "title": "14. Accessibility Considerations" }, { - "id": "changes", - "href": "https://www.w3.org/TR/webrtc/#changes", + "id": "proposed-amendments", + "href": "https://www.w3.org/TR/webrtc/#proposed-amendments", "level": 2, - "title": "Candidate Amendments", + "title": "Proposed Amendments", "number": "A" }, + { + "id": "candidate-amendments", + "href": "https://www.w3.org/TR/webrtc/#candidate-amendments", + "level": 2, + "title": "Candidate Amendments", + "number": "B" + }, { "id": "acknowledgements", "href": "https://www.w3.org/TR/webrtc/#acknowledgements", "level": 2, "title": "Acknowledgements", - "number": "B" + "number": "C" }, { "id": "references", "href": "https://www.w3.org/TR/webrtc/#references", "level": 2, "title": "References", - "number": "C" + "number": "D" }, { "id": "normative-references", "href": "https://www.w3.org/TR/webrtc/#normative-references", "level": 3, "title": "Normative references", - "number": "C.1" + "number": "B.1" + }, + { + "id": "d-1-normative-references", + "href": "https://www.w3.org/TR/webrtc/#d-1-normative-references", + "level": 3, + "title": "Normative references", + "number": "D.1" }, { "id": "informative-references", "href": "https://www.w3.org/TR/webrtc/#informative-references", "level": 3, "title": "Informative references", - "number": "C.2" + "number": "D.2" } ] } \ No newline at end of file diff --git a/tr/idl/webrtc.idl b/tr/idl/webrtc.idl index 82f11a71f7e5..e14299e42259 100644 --- a/tr/idl/webrtc.idl +++ b/tr/idl/webrtc.idl @@ -4,11 +4,11 @@ // Source: WebRTC: Real-Time Communication in Browsers (https://www.w3.org/TR/webrtc/) dictionary RTCConfiguration { - sequence iceServers = []; - RTCIceTransportPolicy iceTransportPolicy = "all"; - RTCBundlePolicy bundlePolicy = "balanced"; - RTCRtcpMuxPolicy rtcpMuxPolicy = "require"; - sequence certificates = []; + sequence iceServersiceServers = []; + RTCIceTransportPolicy iceTransportPolicyiceTransportPolicy = "all"; + RTCBundlePolicy bundlePolicybundlePolicy = "balanced"; + RTCRtcpMuxPolicy rtcpMuxPolicyrtcpMuxPolicy = "require"; + sequence certificatescertificates = []; [EnforceRange] octet iceCandidatePoolSize = 0; }; @@ -23,12 +23,6 @@ dictionary RTCIceServer { RTCIceCredentialType credentialType = "password"; }; -dictionary RTCIceServer { - required (DOMString or sequence) urls; - DOMString username; - DOMString credential; -}; - enum RTCIceTransportPolicy { "relay", "all" @@ -62,29 +56,29 @@ enum RTCSignalingState { }; enum RTCIceGatheringState { -"new", -"gathering", -"complete" - }; + "new", + "gathering", + "complete" +}; enum RTCPeerConnectionState { -"closed", -"failed", -"disconnected", -"new", -"connecting", -"connected" - }; + "closed", + "failed", + "disconnected", + "new", + "connecting", + "connected" +}; enum RTCIceConnectionState { -"closed", -"failed", -"disconnected", -"new", -"checking", -"completed", -"connected" - }; + "closed", + "failed", + "disconnected", + "new", + "checking", + "completed", + "connected" +}; [Exposed=Window] interface RTCPeerConnection : EventTarget { @@ -159,7 +153,7 @@ interface RTCSessionDescription { constructor(RTCSessionDescriptionInit descriptionInitDict); readonly attribute RTCSdpType type; readonly attribute DOMString sdp; - [Default] object toJSON(); + [Default] RTCSessionDescriptionInit toJSON(); }; dictionary RTCSessionDescriptionInit { @@ -261,22 +255,12 @@ partial interface RTCPeerConnection { }; dictionary RTCCertificateExpiration { - [EnforceRange] DOMTimeStamp expires; -}; - -dictionary RTCCertificateExpiration { - [EnforceRange] unsigned long long expires; + [EnforceRange] DOMTimeStamp unsigned long long expires; }; [Exposed=Window, Serializable] interface RTCCertificate { - readonly attribute DOMTimeStamp expires; - sequence getFingerprints(); -}; - -[Exposed=Window, Serializable] -interface RTCCertificate { - readonly attribute EpochTimeStamp expires; + readonly attribute DOMTimeStamp EpochTimeStamp expires; sequence getFingerprints(); }; @@ -310,7 +294,8 @@ interface RTCRtpSender { readonly attribute MediaStreamTrack? track; readonly attribute RTCDtlsTransport? transport; static RTCRtpCapabilities? getCapabilities(DOMString kind); - Promise setParameters(RTCRtpSendParameters parameters); + Promise setParameters(RTCRtpSendParameters parameters, + optional RTCSetParameterOptions setParameterOptions = {}); RTCRtpSendParameters getParameters(); Promise replaceTrack(MediaStreamTrack? withTrack); undefined setStreams(MediaStream... streams); @@ -339,6 +324,7 @@ dictionary RTCRtpDecodingParameters : RTCRtpCodingParameters {}; dictionary RTCRtpEncodingParameters : RTCRtpCodingParameters { boolean active = true; + RTCRtpCodec codec; unsigned long maxBitrate; double maxFramerate; double scaleResolutionDownBy; @@ -355,6 +341,13 @@ dictionary RTCRtpHeaderExtensionParameters { boolean encrypted = false; }; +dictionary RTCRtpCodec { + required DOMString mimeType; + required unsigned long clockRate; + unsigned short channels; + DOMString sdpFmtpLine; +}; + dictionary RTCRtpCodecParameters { required octet payloadType; required DOMString mimeType; @@ -363,20 +356,20 @@ dictionary RTCRtpCodecParameters { DOMString sdpFmtpLine; }; +dictionary RTCRtpCodecParameters : RTCRtpCodec { + required octet payloadType; +}; + dictionary RTCRtpCapabilities { - required sequence codecs; + required sequence codecs; required sequence headerExtensions; }; -dictionary RTCRtpCodecCapability { - required DOMString mimeType; - required unsigned long clockRate; - unsigned short channels; - DOMString sdpFmtpLine; +dictionary RTCRtpHeaderExtensionCapability { + required DOMString uri; }; -dictionary RTCRtpHeaderExtensionCapability { - DOMString uri; +dictionary RTCSetParameterOptions { }; [Exposed=Window] @@ -388,6 +381,7 @@ interface RTCRtpReceiver { sequence getContributingSources(); sequence getSynchronizationSources(); Promise getStats(); + attribute DOMHighResTimeStamp? jitterBufferTarget; }; dictionary RTCRtpContributingSource { @@ -407,7 +401,7 @@ interface RTCRtpTransceiver { attribute RTCRtpTransceiverDirection direction; readonly attribute RTCRtpTransceiverDirection? currentDirection; undefined stop(); - undefined setCodecPreferences(sequence codecs); + undefined setCodecPreferences(sequence codecs); }; [Exposed=Window] @@ -453,9 +447,10 @@ dictionary RTCIceParameters { DOMString password; }; -dictionary RTCIceCandidatePair { - RTCIceCandidate local; - RTCIceCandidate remote; +dictionary [Exposed=Window] +interface RTCIceCandidatePair { + [SameObject] readonly attribute RTCIceCandidate local; + [SameObject] readonly attribute RTCIceCandidate remote; }; enum RTCIceGathererState { @@ -465,13 +460,13 @@ enum RTCIceGathererState { }; enum RTCIceTransportState { + "closed", + "failed", + "disconnected", "new", "checking", - "connected", "completed", - "disconnected", - "failed", - "closed" + "connected" }; enum RTCIceRole { @@ -523,7 +518,7 @@ enum RTCSctpTransportState { "closed" }; -[Exposed=Window] +[Exposed=WindowExposed=(Window,DedicatedWorker), Transferable] interface RTCDataChannel : EventTarget { readonly attribute USVString label; readonly attribute boolean ordered; diff --git a/tr/ids/accelerometer.json b/tr/ids/accelerometer.json index b1f044202ea8..e51410cfdb0a 100644 --- a/tr/ids/accelerometer.json +++ b/tr/ids/accelerometer.json @@ -42,6 +42,7 @@ "https://www.w3.org/TR/accelerometer/#ref-for-mitigation-strategies", "https://www.w3.org/TR/accelerometer/#permissions-policy-integration", "https://www.w3.org/TR/accelerometer/#ref-for-policy-controlled-feature", + "https://www.w3.org/TR/accelerometer/#ref-for-permissiondef-accelerometer", "https://www.w3.org/TR/accelerometer/#model", "https://www.w3.org/TR/accelerometer/#accelerometer-model", "https://www.w3.org/TR/accelerometer/#accelerometer-sensor-type", @@ -53,11 +54,12 @@ "https://www.w3.org/TR/accelerometer/#ref-for-extension-sensor-interface", "https://www.w3.org/TR/accelerometer/#ref-for-accelerometer%E2%91%A1", "https://www.w3.org/TR/accelerometer/#ref-for-sensor-permission-names", - "https://www.w3.org/TR/accelerometer/#ref-for-permissiondef-accelerometer", + "https://www.w3.org/TR/accelerometer/#ref-for-permissiondef-accelerometer%E2%91%A0", "https://www.w3.org/TR/accelerometer/#ref-for-sensor-feature-names", + "https://www.w3.org/TR/accelerometer/#ref-for-permissiondef-accelerometer%E2%91%A1", "https://www.w3.org/TR/accelerometer/#ref-for-dfn-permission-revocation-algorithm", "https://www.w3.org/TR/accelerometer/#ref-for-generic-sensor-permission-revocation-algorithm", - "https://www.w3.org/TR/accelerometer/#ref-for-permissiondef-accelerometer%E2%91%A0", + "https://www.w3.org/TR/accelerometer/#ref-for-permissiondef-accelerometer%E2%91%A2", "https://www.w3.org/TR/accelerometer/#ref-for-default-sensor", "https://www.w3.org/TR/accelerometer/#ref-for-virtual-sensor-type", "https://www.w3.org/TR/accelerometer/#ref-for-accelerometer-virtual-sensor-type", @@ -88,11 +90,12 @@ "https://www.w3.org/TR/accelerometer/#ref-for-extension-sensor-interface%E2%91%A0", "https://www.w3.org/TR/accelerometer/#ref-for-linearaccelerationsensor%E2%91%A1", "https://www.w3.org/TR/accelerometer/#ref-for-sensor-permission-names%E2%91%A0", - "https://www.w3.org/TR/accelerometer/#ref-for-permissiondef-accelerometer%E2%91%A1", + "https://www.w3.org/TR/accelerometer/#ref-for-permissiondef-accelerometer%E2%91%A3", "https://www.w3.org/TR/accelerometer/#ref-for-sensor-feature-names%E2%91%A0", + "https://www.w3.org/TR/accelerometer/#ref-for-permissiondef-accelerometer%E2%91%A4", "https://www.w3.org/TR/accelerometer/#ref-for-dfn-permission-revocation-algorithm%E2%91%A0", "https://www.w3.org/TR/accelerometer/#ref-for-generic-sensor-permission-revocation-algorithm%E2%91%A0", - "https://www.w3.org/TR/accelerometer/#ref-for-permissiondef-accelerometer%E2%91%A2", + "https://www.w3.org/TR/accelerometer/#ref-for-permissiondef-accelerometer%E2%91%A5", "https://www.w3.org/TR/accelerometer/#ref-for-virtual-sensor-type%E2%91%A0", "https://www.w3.org/TR/accelerometer/#ref-for-linear-acceleration-virtual-sensor-type", "https://www.w3.org/TR/accelerometer/#ref-for-latest-reading%E2%91%A0", @@ -122,11 +125,12 @@ "https://www.w3.org/TR/accelerometer/#ref-for-extension-sensor-interface%E2%91%A1", "https://www.w3.org/TR/accelerometer/#ref-for-gravitysensor%E2%91%A1", "https://www.w3.org/TR/accelerometer/#ref-for-sensor-permission-names%E2%91%A1", - "https://www.w3.org/TR/accelerometer/#ref-for-permissiondef-accelerometer%E2%91%A3", + "https://www.w3.org/TR/accelerometer/#ref-for-permissiondef-accelerometer%E2%91%A6", "https://www.w3.org/TR/accelerometer/#ref-for-sensor-feature-names%E2%91%A1", + "https://www.w3.org/TR/accelerometer/#ref-for-permissiondef-accelerometer%E2%91%A7", "https://www.w3.org/TR/accelerometer/#ref-for-dfn-permission-revocation-algorithm%E2%91%A1", "https://www.w3.org/TR/accelerometer/#ref-for-generic-sensor-permission-revocation-algorithm%E2%91%A1", - "https://www.w3.org/TR/accelerometer/#ref-for-permissiondef-accelerometer%E2%91%A4", + "https://www.w3.org/TR/accelerometer/#ref-for-permissiondef-accelerometer%E2%91%A8", "https://www.w3.org/TR/accelerometer/#ref-for-virtual-sensor-type%E2%91%A1", "https://www.w3.org/TR/accelerometer/#gravity-virtual-sensor-type", "https://www.w3.org/TR/accelerometer/#infopanel-for-gravity-virtual-sensor-type", diff --git a/tr/ids/gyroscope.json b/tr/ids/gyroscope.json index 3700e627da68..e9037d8ed540 100644 --- a/tr/ids/gyroscope.json +++ b/tr/ids/gyroscope.json @@ -29,7 +29,7 @@ "https://www.w3.org/TR/gyroscope/#ref-for-mitigation-strategies", "https://www.w3.org/TR/gyroscope/#permissions-policy-integration", "https://www.w3.org/TR/gyroscope/#ref-for-policy-controlled-feature", - "https://www.w3.org/TR/gyroscope/#ref-for-gyroscope-feature", + "https://www.w3.org/TR/gyroscope/#ref-for-permissiondef-gyroscope", "https://www.w3.org/TR/gyroscope/#model", "https://www.w3.org/TR/gyroscope/#gyroscope-sensor-type", "https://www.w3.org/TR/gyroscope/#infopanel-for-gyroscope-sensor-type", @@ -40,12 +40,12 @@ "https://www.w3.org/TR/gyroscope/#ref-for-extension-sensor-interface", "https://www.w3.org/TR/gyroscope/#ref-for-gyroscope", "https://www.w3.org/TR/gyroscope/#ref-for-sensor-permission-names", - "https://www.w3.org/TR/gyroscope/#ref-for-permissiondef-gyroscope", + "https://www.w3.org/TR/gyroscope/#ref-for-permissiondef-gyroscope%E2%91%A0", "https://www.w3.org/TR/gyroscope/#ref-for-sensor-feature-names", - "https://www.w3.org/TR/gyroscope/#ref-for-gyroscope-feature%E2%91%A0", + "https://www.w3.org/TR/gyroscope/#ref-for-permissiondef-gyroscope%E2%91%A1", "https://www.w3.org/TR/gyroscope/#ref-for-dfn-permission-revocation-algorithm", "https://www.w3.org/TR/gyroscope/#ref-for-generic-sensor-permission-revocation-algorithm", - "https://www.w3.org/TR/gyroscope/#ref-for-permissiondef-gyroscope%E2%91%A0", + "https://www.w3.org/TR/gyroscope/#ref-for-permissiondef-gyroscope%E2%91%A2", "https://www.w3.org/TR/gyroscope/#ref-for-default-sensor", "https://www.w3.org/TR/gyroscope/#ref-for-virtual-sensor-type", "https://www.w3.org/TR/gyroscope/#ref-for-gyroscope-virtual-sensor-type", @@ -186,21 +186,16 @@ "https://www.w3.org/TR/gyroscope/#infopaneltitle-for-9d689cca", "https://www.w3.org/TR/gyroscope/#infopanel-for-9d689cca", "https://www.w3.org/TR/gyroscope/#infopaneltitle-for-9d689cca", - "https://www.w3.org/TR/gyroscope/#18030dd0", - "https://www.w3.org/TR/gyroscope/#infopanel-for-18030dd0", - "https://www.w3.org/TR/gyroscope/#infopaneltitle-for-18030dd0", - "https://www.w3.org/TR/gyroscope/#infopanel-for-18030dd0", - "https://www.w3.org/TR/gyroscope/#infopaneltitle-for-18030dd0", + "https://www.w3.org/TR/gyroscope/#7ebc4788", + "https://www.w3.org/TR/gyroscope/#infopanel-for-7ebc4788", + "https://www.w3.org/TR/gyroscope/#infopaneltitle-for-7ebc4788", + "https://www.w3.org/TR/gyroscope/#infopanel-for-7ebc4788", + "https://www.w3.org/TR/gyroscope/#infopaneltitle-for-7ebc4788", "https://www.w3.org/TR/gyroscope/#951d1250", "https://www.w3.org/TR/gyroscope/#infopanel-for-951d1250", "https://www.w3.org/TR/gyroscope/#infopaneltitle-for-951d1250", "https://www.w3.org/TR/gyroscope/#infopanel-for-951d1250", "https://www.w3.org/TR/gyroscope/#infopaneltitle-for-951d1250", - "https://www.w3.org/TR/gyroscope/#4113b1d4", - "https://www.w3.org/TR/gyroscope/#infopanel-for-4113b1d4", - "https://www.w3.org/TR/gyroscope/#infopaneltitle-for-4113b1d4", - "https://www.w3.org/TR/gyroscope/#infopanel-for-4113b1d4", - "https://www.w3.org/TR/gyroscope/#infopaneltitle-for-4113b1d4", "https://www.w3.org/TR/gyroscope/#1b956603", "https://www.w3.org/TR/gyroscope/#infopanel-for-1b956603", "https://www.w3.org/TR/gyroscope/#infopaneltitle-for-1b956603", diff --git a/tr/ids/magnetometer.json b/tr/ids/magnetometer.json index 4202fc424f4d..7d0f0483f0fa 100644 --- a/tr/ids/magnetometer.json +++ b/tr/ids/magnetometer.json @@ -62,6 +62,7 @@ "https://www.w3.org/TR/magnetometer/#ref-for-mitigation-strategies", "https://www.w3.org/TR/magnetometer/#permissions-policy-integration", "https://www.w3.org/TR/magnetometer/#ref-for-policy-controlled-feature", + "https://www.w3.org/TR/magnetometer/#ref-for-permissiondef-magnetometer", "https://www.w3.org/TR/magnetometer/#model", "https://www.w3.org/TR/magnetometer/#magnetometer-sensor-type", "https://www.w3.org/TR/magnetometer/#infopanel-for-magnetometer-sensor-type", @@ -72,11 +73,12 @@ "https://www.w3.org/TR/magnetometer/#ref-for-extension-sensor-interface", "https://www.w3.org/TR/magnetometer/#ref-for-magnetometer%E2%91%A0", "https://www.w3.org/TR/magnetometer/#ref-for-sensor-permission-names", - "https://www.w3.org/TR/magnetometer/#ref-for-permissiondef-magnetometer", + "https://www.w3.org/TR/magnetometer/#ref-for-permissiondef-magnetometer%E2%91%A0", "https://www.w3.org/TR/magnetometer/#ref-for-sensor-feature-names", + "https://www.w3.org/TR/magnetometer/#ref-for-permissiondef-magnetometer%E2%91%A1", "https://www.w3.org/TR/magnetometer/#ref-for-dfn-permission-revocation-algorithm", "https://www.w3.org/TR/magnetometer/#ref-for-generic-sensor-permission-revocation-algorithm", - "https://www.w3.org/TR/magnetometer/#ref-for-permissiondef-magnetometer%E2%91%A0", + "https://www.w3.org/TR/magnetometer/#ref-for-permissiondef-magnetometer%E2%91%A2", "https://www.w3.org/TR/magnetometer/#ref-for-virtual-sensor-type", "https://www.w3.org/TR/magnetometer/#ref-for-latest-reading", "https://www.w3.org/TR/magnetometer/#ref-for-sensor", @@ -95,11 +97,12 @@ "https://www.w3.org/TR/magnetometer/#ref-for-extension-sensor-interface%E2%91%A0", "https://www.w3.org/TR/magnetometer/#ref-for-uncalibratedmagnetometer%E2%91%A0", "https://www.w3.org/TR/magnetometer/#ref-for-sensor-permission-names%E2%91%A0", - "https://www.w3.org/TR/magnetometer/#ref-for-permissiondef-magnetometer%E2%91%A1", + "https://www.w3.org/TR/magnetometer/#ref-for-permissiondef-magnetometer%E2%91%A3", "https://www.w3.org/TR/magnetometer/#ref-for-sensor-feature-names%E2%91%A0", + "https://www.w3.org/TR/magnetometer/#ref-for-permissiondef-magnetometer%E2%91%A4", "https://www.w3.org/TR/magnetometer/#ref-for-dfn-permission-revocation-algorithm%E2%91%A0", "https://www.w3.org/TR/magnetometer/#ref-for-generic-sensor-permission-revocation-algorithm%E2%91%A0", - "https://www.w3.org/TR/magnetometer/#ref-for-permissiondef-magnetometer%E2%91%A2", + "https://www.w3.org/TR/magnetometer/#ref-for-permissiondef-magnetometer%E2%91%A5", "https://www.w3.org/TR/magnetometer/#ref-for-virtual-sensor-type%E2%91%A0", "https://www.w3.org/TR/magnetometer/#uncalibrated-magnetometer-virtual-sensor-type", "https://www.w3.org/TR/magnetometer/#infopanel-for-uncalibrated-magnetometer-virtual-sensor-type", diff --git a/tr/ids/presentation-api.json b/tr/ids/presentation-api.json index 8e92012a0220..d88dc7a6593e 100644 --- a/tr/ids/presentation-api.json +++ b/tr/ids/presentation-api.json @@ -230,8 +230,15 @@ "https://www.w3.org/TR/presentation-api/#dfn-default-presentation-request", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-presentation-connection-9", "https://www.w3.org/TR/presentation-api/#ref-for-index-term-task-source-1", + "https://www.w3.org/TR/presentation-api/#dfn-presentation-task-source", + "https://www.w3.org/TR/presentation-api/#dfn-queue-a-presentation-api-task", + "https://www.w3.org/TR/presentation-api/#ref-for-dfn-user-agent-2", + "https://www.w3.org/TR/presentation-api/#ref-for-index-term-queue-a-global-task-1", + "https://www.w3.org/TR/presentation-api/#ref-for-dfn-presentation-task-source-1", + "https://www.w3.org/TR/presentation-api/#ref-for-index-term-global-object-1", "https://www.w3.org/TR/presentation-api/#ref-for-index-term-javascript-realm-4", "https://www.w3.org/TR/presentation-api/#ref-for-index-term-javascript-realm-5", + "https://www.w3.org/TR/presentation-api/#ref-for-index-term-javascript-realm-6", "https://www.w3.org/TR/presentation-api/#interface-presentation", "https://www.w3.org/TR/presentation-api/#x6-2-interface-presentation", "https://www.w3.org/TR/presentation-api/#dom-presentation", @@ -360,7 +367,7 @@ "https://www.w3.org/TR/presentation-api/#selecting-a-presentation-display", "https://www.w3.org/TR/presentation-api/#x6-3-2-selecting-a-presentation-display", "https://www.w3.org/TR/presentation-api/#dom-presentationrequest-start", - "https://www.w3.org/TR/presentation-api/#ref-for-dfn-user-agent-2", + "https://www.w3.org/TR/presentation-api/#ref-for-dfn-user-agent-3", "https://www.w3.org/TR/presentation-api/#dfn-select-a-presentation-display", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationrequest-17", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationrequest-start-6", @@ -379,7 +386,7 @@ "https://www.w3.org/TR/presentation-api/#ref-for-index-term-operationerror-exception-1", "https://www.w3.org/TR/presentation-api/#ref-for-index-term-promise-interface-10", "https://www.w3.org/TR/presentation-api/#ref-for-index-term-in-parallel-1", - "https://www.w3.org/TR/presentation-api/#ref-for-dfn-user-agent-3", + "https://www.w3.org/TR/presentation-api/#ref-for-dfn-user-agent-4", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-monitor-the-list-of-available-presentation-displays-1", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-monitor-the-list-of-available-presentation-displays-2", "https://www.w3.org/TR/presentation-api/#ref-for-index-term-in-parallel-2", @@ -388,8 +395,10 @@ "https://www.w3.org/TR/presentation-api/#ref-for-dfn-list-of-available-presentation-displays-1", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-list-of-available-presentation-displays-2", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-available-presentation-display-1", + "https://www.w3.org/TR/presentation-api/#ref-for-dfn-queue-a-presentation-api-task-1", "https://www.w3.org/TR/presentation-api/#ref-for-index-term-rejected-2", "https://www.w3.org/TR/presentation-api/#ref-for-index-term-notfounderror-exception-1", + "https://www.w3.org/TR/presentation-api/#ref-for-dfn-queue-a-presentation-api-task-2", "https://www.w3.org/TR/presentation-api/#ref-for-index-term-notallowederror-exception-1", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-start-a-presentation-connection-1", "https://www.w3.org/TR/presentation-api/#issue-container-generatedID-1", @@ -402,6 +411,7 @@ "https://www.w3.org/TR/presentation-api/#ref-for-dfn-default-presentation-request-6", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentation-defaultrequest-4", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-presentation-display-11", + "https://www.w3.org/TR/presentation-api/#ref-for-index-term-in-parallel-3", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-presentation-request-url-4", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-presentation-request-url-5", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-available-presentation-display-2", @@ -413,12 +423,14 @@ "https://www.w3.org/TR/presentation-api/#ref-for-dfn-presentation-display-12", "https://www.w3.org/TR/presentation-api/#starting-a-presentation-connection", "https://www.w3.org/TR/presentation-api/#x6-3-4-starting-a-presentation-connection", - "https://www.w3.org/TR/presentation-api/#ref-for-dfn-user-agent-4", + "https://www.w3.org/TR/presentation-api/#ref-for-dfn-user-agent-5", "https://www.w3.org/TR/presentation-api/#dfn-start-a-presentation-connection", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationrequest-18", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-presentation-display-13", "https://www.w3.org/TR/presentation-api/#ref-for-index-term-promise-interface-11", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-presentation-connection-10", + "https://www.w3.org/TR/presentation-api/#ref-for-index-term-assert-1", + "https://www.w3.org/TR/presentation-api/#ref-for-index-term-in-parallel-4", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-valid-presentation-identifier-1", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-presentation-identifier-4", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-presentation-connection-11", @@ -433,8 +445,9 @@ "https://www.w3.org/TR/presentation-api/#ref-for-dfn-presentation-connection-state-1", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationconnectionstate-connecting-1", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-set-of-controlled-presentations-3", + "https://www.w3.org/TR/presentation-api/#ref-for-dfn-queue-a-presentation-api-task-3", "https://www.w3.org/TR/presentation-api/#ref-for-index-term-resolved-2", - "https://www.w3.org/TR/presentation-api/#ref-for-index-term-queue-a-task-1", + "https://www.w3.org/TR/presentation-api/#ref-for-dfn-queue-a-presentation-api-task-4", "https://www.w3.org/TR/presentation-api/#ref-for-index-term-fire-an-event-1", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-connectionavailable-3", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationconnectionavailableevent-3", @@ -448,12 +461,13 @@ "https://www.w3.org/TR/presentation-api/#reconnecting-to-a-presentation", "https://www.w3.org/TR/presentation-api/#x6-3-5-reconnecting-to-a-presentation", "https://www.w3.org/TR/presentation-api/#dom-presentationrequest-reconnect", - "https://www.w3.org/TR/presentation-api/#ref-for-dfn-user-agent-5", + "https://www.w3.org/TR/presentation-api/#ref-for-dfn-user-agent-6", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationrequest-19", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationrequest-reconnect-3", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-presentation-identifier-7", "https://www.w3.org/TR/presentation-api/#ref-for-index-term-promise-interface-12", "https://www.w3.org/TR/presentation-api/#ref-for-index-term-promise-interface-13", + "https://www.w3.org/TR/presentation-api/#ref-for-index-term-in-parallel-5", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-set-of-controlled-presentations-4", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationconnection-16", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-controlling-browsing-context-17", @@ -465,6 +479,7 @@ "https://www.w3.org/TR/presentation-api/#ref-for-dfn-presentation-identifier-8", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationconnection-17", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationconnection-18", + "https://www.w3.org/TR/presentation-api/#ref-for-dfn-queue-a-presentation-api-task-5", "https://www.w3.org/TR/presentation-api/#ref-for-index-term-resolved-3", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-presentation-connection-state-3", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationconnectionstate-connecting-2", @@ -490,13 +505,15 @@ "https://www.w3.org/TR/presentation-api/#ref-for-dfn-presentation-connection-state-6", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationconnectionstate-connecting-4", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-set-of-controlled-presentations-6", + "https://www.w3.org/TR/presentation-api/#ref-for-dfn-queue-a-presentation-api-task-6", "https://www.w3.org/TR/presentation-api/#ref-for-index-term-resolved-4", - "https://www.w3.org/TR/presentation-api/#ref-for-index-term-queue-a-task-2", + "https://www.w3.org/TR/presentation-api/#ref-for-dfn-queue-a-presentation-api-task-7", "https://www.w3.org/TR/presentation-api/#ref-for-index-term-fire-an-event-2", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-connectionavailable-4", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationconnectionavailableevent-4", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationconnectionavailableevent-connection-2", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-establish-a-presentation-connection-3", + "https://www.w3.org/TR/presentation-api/#ref-for-dfn-queue-a-presentation-api-task-8", "https://www.w3.org/TR/presentation-api/#ref-for-index-term-rejected-3", "https://www.w3.org/TR/presentation-api/#ref-for-index-term-notfounderror-exception-2", "https://www.w3.org/TR/presentation-api/#event-handlers", @@ -540,7 +557,7 @@ "https://www.w3.org/TR/presentation-api/#dfn-change", "https://www.w3.org/TR/presentation-api/#the-set-of-presentation-availability-objects", "https://www.w3.org/TR/presentation-api/#x6-4-1-the-set-of-presentation-availability-objects", - "https://www.w3.org/TR/presentation-api/#ref-for-dfn-user-agent-6", + "https://www.w3.org/TR/presentation-api/#ref-for-dfn-user-agent-7", "https://www.w3.org/TR/presentation-api/#dfn-set-of-presentation-availability-objects", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationrequest-getavailability-3", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-set-of-presentation-availability-objects-1", @@ -550,18 +567,18 @@ "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationrequest-getavailability-4", "https://www.w3.org/TR/presentation-api/#the-list-of-available-presentation-displays", "https://www.w3.org/TR/presentation-api/#x6-4-2-the-list-of-available-presentation-displays", - "https://www.w3.org/TR/presentation-api/#ref-for-dfn-user-agent-7", + "https://www.w3.org/TR/presentation-api/#ref-for-dfn-user-agent-8", "https://www.w3.org/TR/presentation-api/#dfn-list-of-available-presentation-displays", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-list-of-available-presentation-displays-4", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-available-presentation-display-4", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-presentation-display-14", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-monitor-the-list-of-available-presentation-displays-5", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-set-of-presentation-availability-objects-2", - "https://www.w3.org/TR/presentation-api/#ref-for-dfn-user-agent-8", + "https://www.w3.org/TR/presentation-api/#ref-for-dfn-user-agent-9", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-monitor-the-list-of-available-presentation-displays-6", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationavailability-value-2", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationavailability-9", - "https://www.w3.org/TR/presentation-api/#ref-for-dfn-user-agent-9", + "https://www.w3.org/TR/presentation-api/#ref-for-dfn-user-agent-10", "https://www.w3.org/TR/presentation-api/#ref-for-index-term-promise-interface-14", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationrequest-getavailability-5", "https://www.w3.org/TR/presentation-api/#ref-for-index-term-rejected-4", @@ -569,7 +586,7 @@ "https://www.w3.org/TR/presentation-api/#ref-for-dfn-select-a-presentation-display-1", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-set-of-presentation-availability-objects-3", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-monitor-the-list-of-available-presentation-displays-8", - "https://www.w3.org/TR/presentation-api/#ref-for-dfn-user-agent-10", + "https://www.w3.org/TR/presentation-api/#ref-for-dfn-user-agent-11", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationavailability-10", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-presentation-display-15", "https://www.w3.org/TR/presentation-api/#getting-the-presentation-displays-availability-information", @@ -580,32 +597,34 @@ "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationrequest-getavailability-6", "https://www.w3.org/TR/presentation-api/#ref-for-index-term-promise-interface-15", "https://www.w3.org/TR/presentation-api/#ref-for-index-term-promise-interface-16", - "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationrequest-getavailability-7", - "https://www.w3.org/TR/presentation-api/#ref-for-index-term-promise-interface-17", - "https://www.w3.org/TR/presentation-api/#ref-for-index-term-promise-interface-18", - "https://www.w3.org/TR/presentation-api/#ref-for-index-term-javascript-realm-6", - "https://www.w3.org/TR/presentation-api/#ref-for-index-term-in-parallel-3", + "https://www.w3.org/TR/presentation-api/#ref-for-index-term-javascript-realm-7", + "https://www.w3.org/TR/presentation-api/#ref-for-index-term-in-parallel-6", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-monitor-the-list-of-available-presentation-displays-9", + "https://www.w3.org/TR/presentation-api/#ref-for-dfn-queue-a-presentation-api-task-9", "https://www.w3.org/TR/presentation-api/#ref-for-index-term-rejected-5", "https://www.w3.org/TR/presentation-api/#ref-for-index-term-notsupportederror-exception-3", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-presentation-display-availability-3", + "https://www.w3.org/TR/presentation-api/#ref-for-dfn-queue-a-presentation-api-task-10", "https://www.w3.org/TR/presentation-api/#ref-for-index-term-resolved-5", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-presentation-display-availability-4", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-presentation-display-availability-5", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationavailability-11", - "https://www.w3.org/TR/presentation-api/#ref-for-index-term-javascript-realm-7", + "https://www.w3.org/TR/presentation-api/#ref-for-index-term-javascript-realm-8", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-set-of-presentation-availability-objects-4", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-monitor-the-list-of-available-presentation-displays-10", "https://www.w3.org/TR/presentation-api/#issue-container-generatedID-5", "https://www.w3.org/TR/presentation-api/#h-note-5", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-set-of-presentation-availability-objects-5", + "https://www.w3.org/TR/presentation-api/#ref-for-dfn-queue-a-presentation-api-task-11", "https://www.w3.org/TR/presentation-api/#ref-for-index-term-resolved-6", "https://www.w3.org/TR/presentation-api/#monitoring-the-list-of-available-presentation-displays", "https://www.w3.org/TR/presentation-api/#x6-4-4-monitoring-the-list-of-available-presentation-displays", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-set-of-presentation-availability-objects-6", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationrequest-start-9", - "https://www.w3.org/TR/presentation-api/#ref-for-dfn-user-agent-11", + "https://www.w3.org/TR/presentation-api/#ref-for-dfn-user-agent-12", "https://www.w3.org/TR/presentation-api/#dfn-monitor-the-list-of-available-presentation-displays", + "https://www.w3.org/TR/presentation-api/#ref-for-index-term-assert-2", + "https://www.w3.org/TR/presentation-api/#ref-for-index-term-in-parallel-7", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-set-of-presentation-availability-objects-7", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationrequest-start-10", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationrequest-24", @@ -614,7 +633,7 @@ "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationavailability-12", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationrequest-26", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-presentation-request-url-11", - "https://www.w3.org/TR/presentation-api/#ref-for-dfn-user-agent-12", + "https://www.w3.org/TR/presentation-api/#ref-for-dfn-user-agent-13", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-presentation-display-17", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-presentation-display-18", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-list-of-available-presentation-displays-5", @@ -623,7 +642,7 @@ "https://www.w3.org/TR/presentation-api/#ref-for-dfn-list-of-available-presentation-displays-6", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationavailability-value-4", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationavailability-value-5", - "https://www.w3.org/TR/presentation-api/#ref-for-index-term-queue-a-task-3", + "https://www.w3.org/TR/presentation-api/#ref-for-dfn-queue-a-presentation-api-task-12", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationavailability-value-6", "https://www.w3.org/TR/presentation-api/#ref-for-index-term-fire-an-event-3", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-change-2", @@ -632,10 +651,10 @@ "https://www.w3.org/TR/presentation-api/#ref-for-dfn-controlling-user-agent-15", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-monitor-the-list-of-available-presentation-displays-11", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationrequest-start-11", - "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationrequest-getavailability-8", + "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationrequest-getavailability-7", "https://www.w3.org/TR/presentation-api/#ref-for-index-term-browsing-context-7", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-presentation-display-availability-7", - "https://www.w3.org/TR/presentation-api/#ref-for-dfn-user-agent-13", + "https://www.w3.org/TR/presentation-api/#ref-for-dfn-user-agent-14", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationavailability-13", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-set-of-presentation-availability-objects-8", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-set-of-presentation-availability-objects-9", @@ -695,7 +714,7 @@ "https://www.w3.org/TR/presentation-api/#dom-presentationconnectionavailableevent-connection", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationconnection-27", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationconnectionavailableevent-8", - "https://www.w3.org/TR/presentation-api/#ref-for-dfn-user-agent-14", + "https://www.w3.org/TR/presentation-api/#ref-for-dfn-user-agent-15", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationconnectionavailableevent-9", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationconnectionavailableevent-connection-6", "https://www.w3.org/TR/presentation-api/#dom-presentationconnectionavailableeventinit-connection", @@ -793,18 +812,18 @@ "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationconnectionstate-connected-4", "https://www.w3.org/TR/presentation-api/#dom-presentationconnection-close", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationconnection-32", - "https://www.w3.org/TR/presentation-api/#ref-for-dfn-user-agent-15", + "https://www.w3.org/TR/presentation-api/#ref-for-dfn-user-agent-16", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-start-closing-the-presentation-connection-1", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationconnectionclosereason-closed-1", "https://www.w3.org/TR/presentation-api/#dom-presentationconnection-terminate", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationconnection-33", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-controlling-browsing-context-22", - "https://www.w3.org/TR/presentation-api/#ref-for-dfn-user-agent-16", + "https://www.w3.org/TR/presentation-api/#ref-for-dfn-user-agent-17", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-terminate-algorithm-controlling-1", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationconnection-terminate-2", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationconnection-34", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-receiving-browsing-context-22", - "https://www.w3.org/TR/presentation-api/#ref-for-dfn-user-agent-17", + "https://www.w3.org/TR/presentation-api/#ref-for-dfn-user-agent-18", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-terminate-algorithm-receiving-1", "https://www.w3.org/TR/presentation-api/#dom-presentationconnection-binarytype", "https://www.w3.org/TR/presentation-api/#ref-for-index-term-binarytype-enum-2", @@ -817,16 +836,16 @@ "https://www.w3.org/TR/presentation-api/#ref-for-index-term-arraybuffer-interface-2", "https://www.w3.org/TR/presentation-api/#dom-presentationconnection-send", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationconnection-36", - "https://www.w3.org/TR/presentation-api/#ref-for-dfn-user-agent-18", + "https://www.w3.org/TR/presentation-api/#ref-for-dfn-user-agent-19", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-send-algorithm-1", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationconnection-37", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-presentation-connection-state-7", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationconnectionstate-connecting-6", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationconnectionstate-connected-5", - "https://www.w3.org/TR/presentation-api/#ref-for-dfn-user-agent-19", + "https://www.w3.org/TR/presentation-api/#ref-for-dfn-user-agent-20", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-start-closing-the-presentation-connection-2", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationconnectionclosereason-wentaway-1", - "https://www.w3.org/TR/presentation-api/#ref-for-dfn-user-agent-20", + "https://www.w3.org/TR/presentation-api/#ref-for-dfn-user-agent-21", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-destination-browsing-context-2", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationconnection-38", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-close-the-presentation-connection-2", @@ -834,15 +853,17 @@ "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationconnectionclosereason-wentaway-2", "https://www.w3.org/TR/presentation-api/#establishing-a-presentation-connection", "https://www.w3.org/TR/presentation-api/#x6-5-1-establishing-a-presentation-connection", - "https://www.w3.org/TR/presentation-api/#ref-for-dfn-user-agent-21", + "https://www.w3.org/TR/presentation-api/#ref-for-dfn-user-agent-22", "https://www.w3.org/TR/presentation-api/#dfn-establish-a-presentation-connection", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-presentation-connection-19", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationconnection-39", + "https://www.w3.org/TR/presentation-api/#ref-for-index-term-assert-3", + "https://www.w3.org/TR/presentation-api/#ref-for-index-term-in-parallel-8", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-presentation-connection-state-8", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationconnectionstate-connecting-7", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-receiving-browsing-context-23", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-presentation-identifier-12", - "https://www.w3.org/TR/presentation-api/#ref-for-index-term-queue-a-task-4", + "https://www.w3.org/TR/presentation-api/#ref-for-dfn-queue-a-presentation-api-task-13", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-presentation-connection-state-9", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationconnectionstate-connected-6", "https://www.w3.org/TR/presentation-api/#ref-for-index-term-fire-an-event-6", @@ -865,7 +886,7 @@ "https://www.w3.org/TR/presentation-api/#ref-for-index-term-rtcdatachannel-interface-1", "https://www.w3.org/TR/presentation-api/#dfn-presentation-message-data", "https://www.w3.org/TR/presentation-api/#dfn-presentation-message-type", - "https://www.w3.org/TR/presentation-api/#ref-for-dfn-user-agent-22", + "https://www.w3.org/TR/presentation-api/#ref-for-dfn-user-agent-23", "https://www.w3.org/TR/presentation-api/#dfn-send-algorithm", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-presentation-connection-20", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-presentation-connection-21", @@ -896,7 +917,7 @@ "https://www.w3.org/TR/presentation-api/#receiving-a-message-through-presentationconnection", "https://www.w3.org/TR/presentation-api/#x6-5-3-receiving-a-message-through-presentationconnection", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationconnection-41", - "https://www.w3.org/TR/presentation-api/#ref-for-dfn-user-agent-23", + "https://www.w3.org/TR/presentation-api/#ref-for-dfn-user-agent-24", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-presentation-message-data-3", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-presentation-message-type-3", "https://www.w3.org/TR/presentation-api/#dfn-receive-algorithm", @@ -904,6 +925,8 @@ "https://www.w3.org/TR/presentation-api/#ref-for-dfn-presentation-connection-24", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-presentation-message-type-4", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-presentation-message-data-4", + "https://www.w3.org/TR/presentation-api/#ref-for-index-term-assert-4", + "https://www.w3.org/TR/presentation-api/#ref-for-index-term-in-parallel-9", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationconnection-state-3", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationconnectionstate-connected-8", "https://www.w3.org/TR/presentation-api/#ref-for-index-term-creating-an-event-1", @@ -912,9 +935,9 @@ "https://www.w3.org/TR/presentation-api/#ref-for-index-term-blob-interface-5", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationconnection-binarytype-5", "https://www.w3.org/TR/presentation-api/#ref-for-index-term-arraybuffer-interface-5", - "https://www.w3.org/TR/presentation-api/#ref-for-index-term-queue-a-task-5", + "https://www.w3.org/TR/presentation-api/#ref-for-dfn-queue-a-presentation-api-task-14", "https://www.w3.org/TR/presentation-api/#ref-for-index-term-fire-an-event-7", - "https://www.w3.org/TR/presentation-api/#ref-for-dfn-user-agent-24", + "https://www.w3.org/TR/presentation-api/#ref-for-dfn-user-agent-25", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-receive-algorithm-2", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-close-the-presentation-connection-5", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationconnectionclosereason-error-4", @@ -967,7 +990,7 @@ "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationconnectionclosereason-error-6", "https://www.w3.org/TR/presentation-api/#dom-presentationconnectioncloseevent-message", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationconnectioncloseevent-5", - "https://www.w3.org/TR/presentation-api/#ref-for-dfn-user-agent-25", + "https://www.w3.org/TR/presentation-api/#ref-for-dfn-user-agent-26", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationconnectioncloseevent-6", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationconnectioncloseevent-reason-3", "https://www.w3.org/TR/presentation-api/#dom-presentationconnectioncloseeventinit-reason", @@ -978,7 +1001,7 @@ "https://www.w3.org/TR/presentation-api/#closing-a-presentationconnection", "https://www.w3.org/TR/presentation-api/#x6-5-5-closing-a-presentationconnection", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationconnection-44", - "https://www.w3.org/TR/presentation-api/#ref-for-dfn-user-agent-26", + "https://www.w3.org/TR/presentation-api/#ref-for-dfn-user-agent-27", "https://www.w3.org/TR/presentation-api/#dfn-start-closing-the-presentation-connection", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-presentation-connection-26", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationconnectionclosereason-4", @@ -992,13 +1015,13 @@ "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationconnection-46", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationconnectionclosereason-wentaway-4", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-close-the-presentation-connection-6", - "https://www.w3.org/TR/presentation-api/#ref-for-dfn-user-agent-27", + "https://www.w3.org/TR/presentation-api/#ref-for-dfn-user-agent-28", "https://www.w3.org/TR/presentation-api/#dfn-close-the-presentation-connection", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-presentation-connection-27", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationconnectionclosereason-5", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-close-the-presentation-connection-7", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-close-the-presentation-connection-8", - "https://www.w3.org/TR/presentation-api/#ref-for-index-term-queue-a-task-6", + "https://www.w3.org/TR/presentation-api/#ref-for-dfn-queue-a-presentation-api-task-15", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-presentation-connection-state-12", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationconnectionstate-connecting-9", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationconnectionstate-connected-10", @@ -1028,10 +1051,13 @@ "https://www.w3.org/TR/presentation-api/#ref-for-dfn-presentation-connection-state-15", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationconnectionstate-connected-12", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationconnectionstate-connecting-11", - "https://www.w3.org/TR/presentation-api/#ref-for-index-term-queue-a-task-7", + "https://www.w3.org/TR/presentation-api/#ref-for-index-term-queue-a-global-task-2", + "https://www.w3.org/TR/presentation-api/#ref-for-dfn-presentation-task-source-2", + "https://www.w3.org/TR/presentation-api/#ref-for-index-term-relevant-global-object-1", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-presentation-connection-state-16", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationconnectionstate-terminated-4", "https://www.w3.org/TR/presentation-api/#ref-for-index-term-fire-an-event-9", + "https://www.w3.org/TR/presentation-api/#ref-for-index-term-in-parallel-10", "https://www.w3.org/TR/presentation-api/#dfn-send-a-termination-request", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-receiving-user-agent-9", "https://www.w3.org/TR/presentation-api/#terminating-a-presentation-in-a-receiving-browsing-context", @@ -1061,7 +1087,6 @@ "https://www.w3.org/TR/presentation-api/#ref-for-dfn-unload-a-document-2", "https://www.w3.org/TR/presentation-api/#ref-for-index-term-browsing-context-8", "https://www.w3.org/TR/presentation-api/#ref-for-index-term-browsing-context-9", - "https://www.w3.org/TR/presentation-api/#ref-for-index-term-queue-a-task-8", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-controlling-user-agent-22", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-destination-browsing-context-5", "https://www.w3.org/TR/presentation-api/#issue-container-generatedID-15", @@ -1073,7 +1098,9 @@ "https://www.w3.org/TR/presentation-api/#ref-for-dfn-controlling-user-agent-24", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-controlling-user-agent-25", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-set-of-controlled-presentations-8", - "https://www.w3.org/TR/presentation-api/#ref-for-index-term-queue-a-task-9", + "https://www.w3.org/TR/presentation-api/#ref-for-index-term-queue-a-global-task-3", + "https://www.w3.org/TR/presentation-api/#ref-for-dfn-presentation-task-source-3", + "https://www.w3.org/TR/presentation-api/#ref-for-index-term-relevant-global-object-2", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-presentation-connection-state-19", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationconnectionstate-connected-14", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationconnectionstate-connecting-12", @@ -1097,7 +1124,7 @@ "https://www.w3.org/TR/presentation-api/#ref-for-index-term-exposed-extended-attribute-7", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationreceiver-5", "https://www.w3.org/TR/presentation-api/#idl-def-presentationreceiver-connectionlist", - "https://www.w3.org/TR/presentation-api/#ref-for-index-term-promise-interface-19", + "https://www.w3.org/TR/presentation-api/#ref-for-index-term-promise-interface-17", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationconnectionlist-3", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationreceiver-connectionlist-2", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationreceiver-6", @@ -1110,8 +1137,8 @@ "https://www.w3.org/TR/presentation-api/#ref-for-dfn-presentation-controllers-promise-2", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-presentation-controllers-promise-3", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-presentation-controllers-promise-4", - "https://www.w3.org/TR/presentation-api/#ref-for-index-term-promise-interface-20", - "https://www.w3.org/TR/presentation-api/#ref-for-index-term-javascript-realm-8", + "https://www.w3.org/TR/presentation-api/#ref-for-index-term-promise-interface-18", + "https://www.w3.org/TR/presentation-api/#ref-for-index-term-javascript-realm-9", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationreceiver-8", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-presentation-controllers-promise-5", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-presentation-controllers-monitor-6", @@ -1120,7 +1147,7 @@ "https://www.w3.org/TR/presentation-api/#ref-for-dfn-presentation-controllers-monitor-7", "https://www.w3.org/TR/presentation-api/#creating-a-receiving-browsing-context", "https://www.w3.org/TR/presentation-api/#x6-6-1-creating-a-receiving-browsing-context", - "https://www.w3.org/TR/presentation-api/#ref-for-dfn-user-agent-28", + "https://www.w3.org/TR/presentation-api/#ref-for-dfn-user-agent-29", "https://www.w3.org/TR/presentation-api/#dfn-create-a-receiving-browsing-context", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-presentation-display-21", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-presentation-request-url-12", @@ -1241,6 +1268,8 @@ "https://www.w3.org/TR/presentation-api/#ref-for-dfn-create-a-receiving-browsing-context-4", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-presentation-request-url-13", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-create-a-receiving-browsing-context-5", + "https://www.w3.org/TR/presentation-api/#ref-for-index-term-assert-5", + "https://www.w3.org/TR/presentation-api/#ref-for-index-term-in-parallel-11", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationconnection-50", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-presentation-identifier-17", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-presentation-url-12", @@ -1251,22 +1280,23 @@ "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationconnectionstate-closed-7", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-set-of-presentation-controllers-7", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-presentation-controllers-monitor-8", - "https://www.w3.org/TR/presentation-api/#ref-for-index-term-in-parallel-4", + "https://www.w3.org/TR/presentation-api/#ref-for-index-term-in-parallel-12", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-presentation-controllers-monitor-9", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationconnectionlist-5", - "https://www.w3.org/TR/presentation-api/#ref-for-index-term-javascript-realm-9", + "https://www.w3.org/TR/presentation-api/#ref-for-index-term-javascript-realm-10", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationreceiver-9", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-receiving-browsing-context-40", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-presentation-controllers-monitor-10", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-set-of-presentation-controllers-8", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-presentation-controllers-promise-7", + "https://www.w3.org/TR/presentation-api/#ref-for-dfn-queue-a-presentation-api-task-16", "https://www.w3.org/TR/presentation-api/#ref-for-index-term-resolved-8", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-presentation-controllers-promise-8", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-presentation-controllers-monitor-11", - "https://www.w3.org/TR/presentation-api/#ref-for-index-term-in-parallel-5", + "https://www.w3.org/TR/presentation-api/#ref-for-index-term-in-parallel-13", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-presentation-controllers-monitor-12", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-set-of-presentation-controllers-9", - "https://www.w3.org/TR/presentation-api/#ref-for-index-term-queue-a-task-10", + "https://www.w3.org/TR/presentation-api/#ref-for-dfn-queue-a-presentation-api-task-17", "https://www.w3.org/TR/presentation-api/#ref-for-index-term-fire-an-event-11", "https://www.w3.org/TR/presentation-api/#ref-for-dfn-connectionavailable-7", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationconnectionavailableevent-10", @@ -1357,16 +1387,16 @@ "https://www.w3.org/TR/presentation-api/#ref-for-index-term-usvstring-interface-6", "https://www.w3.org/TR/presentation-api/#ref-for-index-term-sequence-2", "https://www.w3.org/TR/presentation-api/#ref-for-index-term-usvstring-interface-7", - "https://www.w3.org/TR/presentation-api/#ref-for-index-term-promise-interface-21", + "https://www.w3.org/TR/presentation-api/#ref-for-index-term-promise-interface-19", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationconnection-51", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationrequest-start-14", - "https://www.w3.org/TR/presentation-api/#ref-for-index-term-promise-interface-22", + "https://www.w3.org/TR/presentation-api/#ref-for-index-term-promise-interface-20", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationconnection-52", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationrequest-reconnect-7", "https://www.w3.org/TR/presentation-api/#ref-for-index-term-usvstring-interface-8", - "https://www.w3.org/TR/presentation-api/#ref-for-index-term-promise-interface-23", + "https://www.w3.org/TR/presentation-api/#ref-for-index-term-promise-interface-21", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationavailability-15", - "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationrequest-getavailability-9", + "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationrequest-getavailability-8", "https://www.w3.org/TR/presentation-api/#ref-for-index-term-eventhandler-8", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationrequest-onconnectionavailable-2", "https://www.w3.org/TR/presentation-api/#ref-for-index-term-securecontext-extended-attribute-13", @@ -1454,7 +1484,7 @@ "https://www.w3.org/TR/presentation-api/#ref-for-index-term-securecontext-extended-attribute-17", "https://www.w3.org/TR/presentation-api/#ref-for-index-term-exposed-extended-attribute-15", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationreceiver-11", - "https://www.w3.org/TR/presentation-api/#ref-for-index-term-promise-interface-24", + "https://www.w3.org/TR/presentation-api/#ref-for-index-term-promise-interface-22", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationconnectionlist-7", "https://www.w3.org/TR/presentation-api/#ref-for-dom-presentationreceiver-connectionlist-3", "https://www.w3.org/TR/presentation-api/#ref-for-index-term-securecontext-extended-attribute-18", @@ -1491,12 +1521,14 @@ "https://www.w3.org/TR/presentation-api/#index-term-event-handler", "https://www.w3.org/TR/presentation-api/#index-term-event-handler-event-type", "https://www.w3.org/TR/presentation-api/#index-term-eventhandler", + "https://www.w3.org/TR/presentation-api/#index-term-global-object", "https://www.w3.org/TR/presentation-api/#index-term-in-parallel", "https://www.w3.org/TR/presentation-api/#index-term-localstorage-attribute-for-windowlocalstorage", "https://www.w3.org/TR/presentation-api/#index-term-messageevent-interface", "https://www.w3.org/TR/presentation-api/#index-term-navigate", "https://www.w3.org/TR/presentation-api/#index-term-navigator-interface", - "https://www.w3.org/TR/presentation-api/#index-term-queue-a-task", + "https://www.w3.org/TR/presentation-api/#index-term-queue-a-global-task", + "https://www.w3.org/TR/presentation-api/#index-term-relevant-global-object", "https://www.w3.org/TR/presentation-api/#index-term-reload-for-location", "https://www.w3.org/TR/presentation-api/#index-term-sandboxed-auxiliary-navigation-browsing-context-flag", "https://www.w3.org/TR/presentation-api/#index-term-sandboxed-modals-flag", @@ -1506,6 +1538,7 @@ "https://www.w3.org/TR/presentation-api/#index-term-task-source", "https://www.w3.org/TR/presentation-api/#index-term-top-level-browsing-context", "https://www.w3.org/TR/presentation-api/#index-term-transient-activation", + "https://www.w3.org/TR/presentation-api/#index-term-assert", "https://www.w3.org/TR/presentation-api/#index-term-permission-descriptor-types-for-powerful-feature", "https://www.w3.org/TR/presentation-api/#index-term-permission-state", "https://www.w3.org/TR/presentation-api/#index-term-uuid", @@ -1570,6 +1603,7 @@ "https://www.w3.org/TR/presentation-api/#bib-fileapi", "https://www.w3.org/TR/presentation-api/#bib-html", "https://www.w3.org/TR/presentation-api/#bib-indexeddb", + "https://www.w3.org/TR/presentation-api/#bib-infra", "https://www.w3.org/TR/presentation-api/#bib-permissions", "https://www.w3.org/TR/presentation-api/#bib-rfc2119", "https://www.w3.org/TR/presentation-api/#bib-rfc4122", diff --git a/tr/ids/webcodecs.json b/tr/ids/webcodecs.json index b157a973d44c..6433c50937cf 100644 --- a/tr/ids/webcodecs.json +++ b/tr/ids/webcodecs.json @@ -4118,13 +4118,9 @@ "https://www.w3.org/TR/webcodecs/#ref-for-inactive-codec", "https://www.w3.org/TR/webcodecs/#ref-for-background-codec", "https://www.w3.org/TR/webcodecs/#active-codec", - "https://www.w3.org/TR/webcodecs/#ref-for-videoencoder%E2%91%A4", - "https://www.w3.org/TR/webcodecs/#ref-for-active-codec%E2%91%A0", - "https://www.w3.org/TR/webcodecs/#ref-for-videoframe%E2%91%A6%E2%91%A2", - "https://www.w3.org/TR/webcodecs/#ref-for-videoframe%E2%91%A6%E2%91%A3", - "https://www.w3.org/TR/webcodecs/#ref-for-videoencoder%E2%91%A5", + "https://www.w3.org/TR/webcodecs/#ref-for-codec-work-queue%E2%91%A6", "https://www.w3.org/TR/webcodecs/#inactive-codec", - "https://www.w3.org/TR/webcodecs/#ref-for-active-codec%E2%91%A1", + "https://www.w3.org/TR/webcodecs/#ref-for-active-codec%E2%91%A0", "https://www.w3.org/TR/webcodecs/#background-codec", "https://www.w3.org/TR/webcodecs/#ref-for-dom-node-ownerdocument", "https://www.w3.org/TR/webcodecs/#ref-for-concept-WorkerGlobalScope-owner-set", @@ -4133,17 +4129,17 @@ "https://www.w3.org/TR/webcodecs/#ref-for-reclaim-a-codec", "https://www.w3.org/TR/webcodecs/#ref-for-inactive-codec%E2%91%A0", "https://www.w3.org/TR/webcodecs/#ref-for-background-codec%E2%91%A0", - "https://www.w3.org/TR/webcodecs/#ref-for-active-codec%E2%91%A2", + "https://www.w3.org/TR/webcodecs/#ref-for-active-codec%E2%91%A1", "https://www.w3.org/TR/webcodecs/#ref-for-background-codec%E2%91%A1", - "https://www.w3.org/TR/webcodecs/#ref-for-active-codec%E2%91%A3", + "https://www.w3.org/TR/webcodecs/#ref-for-active-codec%E2%91%A2", "https://www.w3.org/TR/webcodecs/#ref-for-background-codec%E2%91%A2", "https://www.w3.org/TR/webcodecs/#ref-for-audioencoder%E2%91%A3", - "https://www.w3.org/TR/webcodecs/#ref-for-videoencoder%E2%91%A6", + "https://www.w3.org/TR/webcodecs/#ref-for-videoencoder%E2%91%A4", "https://www.w3.org/TR/webcodecs/#ref-for-audiodecoder%E2%91%A4", "https://www.w3.org/TR/webcodecs/#ref-for-videodecoder%E2%91%A6", - "https://www.w3.org/TR/webcodecs/#ref-for-active-codec%E2%91%A4", + "https://www.w3.org/TR/webcodecs/#ref-for-active-codec%E2%91%A3", "https://www.w3.org/TR/webcodecs/#ref-for-audioencoder%E2%91%A4", - "https://www.w3.org/TR/webcodecs/#ref-for-videoencoder%E2%91%A7", + "https://www.w3.org/TR/webcodecs/#ref-for-videoencoder%E2%91%A5", "https://www.w3.org/TR/webcodecs/#ref-for-global-object", "https://www.w3.org/TR/webcodecs/#ref-for-audiodecoder%E2%91%A5", "https://www.w3.org/TR/webcodecs/#security-considerations", @@ -4157,7 +4153,7 @@ "https://www.w3.org/TR/webcodecs/#ref-for-dom-rtcrtpsender-getcapabilities", "https://www.w3.org/TR/webcodecs/#ref-for-widl-RTCPeerConnection-getStats-Promise-RTCStatsReport--MediaStreamTrack-selector", "https://www.w3.org/TR/webcodecs/#best-practices-developers", - "https://www.w3.org/TR/webcodecs/#ref-for-videoframe%E2%91%A6%E2%91%A4", + "https://www.w3.org/TR/webcodecs/#ref-for-videoframe%E2%91%A6%E2%91%A2", "https://www.w3.org/TR/webcodecs/#acknowledgements", "https://www.w3.org/TR/webcodecs/#w3c-conformance", "https://www.w3.org/TR/webcodecs/#w3c-conventions", diff --git a/tr/ids/webrtc.json b/tr/ids/webrtc.json index 83f4449ca133..73d556ae508c 100644 --- a/tr/ids/webrtc.json +++ b/tr/ids/webrtc.json @@ -43,37 +43,20 @@ "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-2", "https://www.w3.org/TR/webrtc/#configuration", "https://www.w3.org/TR/webrtc/#x4-2-configuration", + "https://www.w3.org/TR/webrtc/#rtcconfiguration-dictionary-change-wrapper", "https://www.w3.org/TR/webrtc/#rtcconfiguration-dictionary", "https://www.w3.org/TR/webrtc/#x4-2-1-rtcconfiguration-dictionary", "https://www.w3.org/TR/webrtc/#dom-rtcconfiguration", + "https://www.w3.org/TR/webrtc/#x4-2-1-rtcconfiguration-dictionary-dedup-0", + "https://www.w3.org/TR/webrtc/#dom-rtcconfiguration-dedup-1", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcconfiguration-1", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-3", "https://www.w3.org/TR/webrtc/#webidl-196911378", - "https://www.w3.org/TR/webrtc/#idl-def-rtcconfiguration", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcconfiguration-2", - "https://www.w3.org/TR/webrtc/#idl-def-rtcconfiguration-iceservers", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtciceserver-1", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcconfiguration-iceservers-1", - "https://www.w3.org/TR/webrtc/#idl-def-rtcconfiguration-icetransportpolicy", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportpolicy-1", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcconfiguration-icetransportpolicy-1", - "https://www.w3.org/TR/webrtc/#idl-def-rtcconfiguration-bundlepolicy", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcbundlepolicy-1", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcconfiguration-bundlepolicy-1", - "https://www.w3.org/TR/webrtc/#idl-def-rtcconfiguration-rtcpmuxpolicy", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtcpmuxpolicy-1", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcconfiguration-rtcpmuxpolicy-1", - "https://www.w3.org/TR/webrtc/#idl-def-rtcconfiguration-certificates", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtccertificate-1", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcconfiguration-certificates-1", - "https://www.w3.org/TR/webrtc/#idl-def-rtcconfiguration-icecandidatepoolsize", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcconfiguration-icecandidatepoolsize-1", - "https://www.w3.org/TR/webrtc/#dictionary-rtcconfiguration-members-change-wrapper", "https://www.w3.org/TR/webrtc/#dictionary-rtcconfiguration-members", "https://www.w3.org/TR/webrtc/#dictionary-rtcconfiguration-members-0", - "https://www.w3.org/TR/webrtc/#dictionary-rtcconfiguration-members-new", - "https://www.w3.org/TR/webrtc/#dictionary-rtcconfiguration-members-0-dedup-0", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcconfiguration-3", + "https://www.w3.org/TR/webrtc/#dictionary-rtcconfiguration-members-0-dedup-2", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcconfiguration-3-dedup-3", "https://www.w3.org/TR/webrtc/#dom-rtcconfiguration-iceservers", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtciceserver-2", "https://www.w3.org/TR/webrtc/#dom-rtcconfiguration-icetransportpolicy", @@ -97,35 +80,45 @@ "https://www.w3.org/TR/webrtc/#dom-rtcconfiguration-icecandidatepoolsize", "https://www.w3.org/TR/webrtc/#rtcicecredentialtype-enum-change-wrapper", "https://www.w3.org/TR/webrtc/#rtcicecredentialtype-enum", + "https://www.w3.org/TR/webrtc/#rtcicecredentialtype-enum-dedup-4", "https://www.w3.org/TR/webrtc/#x4-2-2-rtcicecredentialtype-enum", - "https://www.w3.org/TR/webrtc/#rtcicecredentialtype-enum-new", + "https://www.w3.org/TR/webrtc/#dom-rtcicecredentialtype", + "https://www.w3.org/TR/webrtc/#webidl-1341584494", + "https://www.w3.org/TR/webrtc/#dom-rtcicecredentialtype-password", + "https://www.w3.org/TR/webrtc/#rtcicecredentialtype-enum-dedup-5", "https://www.w3.org/TR/webrtc/#rtciceserver-dictionary-change-wrapper", "https://www.w3.org/TR/webrtc/#rtciceserver-dictionary", "https://www.w3.org/TR/webrtc/#x4-2-3-rtciceserver-dictionary", - "https://www.w3.org/TR/webrtc/#dictionary-rtciceserver-members", - "https://www.w3.org/TR/webrtc/#rtciceserver-dictionary-new", - "https://www.w3.org/TR/webrtc/#x4-2-2-rtciceserver-dictionary", "https://www.w3.org/TR/webrtc/#dom-rtciceserver", + "https://www.w3.org/TR/webrtc/#x4-2-2-rtciceserver-dictionary", + "https://www.w3.org/TR/webrtc/#dom-rtciceserver-dedup-6", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtciceserver-3", "https://www.w3.org/TR/webrtc/#ref-for-dfn-ice-agent-2", "https://www.w3.org/TR/webrtc/#webidl-238081018", - "https://www.w3.org/TR/webrtc/#idl-def-rtciceserver", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtciceserver-4", - "https://www.w3.org/TR/webrtc/#idl-def-rtciceserver-urls", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtciceserver-urls-1", - "https://www.w3.org/TR/webrtc/#idl-def-rtciceserver-username", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtciceserver-username-1", - "https://www.w3.org/TR/webrtc/#idl-def-rtciceserver-credential", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtciceserver-credential-1", - "https://www.w3.org/TR/webrtc/#dictionary-rtciceserver-members-dedup-1", + "https://www.w3.org/TR/webrtc/#dictionary-rtciceserver-members", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtciceserver-5", + "https://www.w3.org/TR/webrtc/#dictionary-rtciceserver-members-dedup-7", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtciceserver-5-dedup-8", "https://www.w3.org/TR/webrtc/#dom-rtciceserver-urls", "https://www.w3.org/TR/webrtc/#dom-rtciceserver-username", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtciceserver-6", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtciceserver-credentialtype-2", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecredentialtype-password-2", "https://www.w3.org/TR/webrtc/#dom-rtciceserver-credential", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtciceserver-7", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtciceserver-credentialtype-3", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtciceserver-credential-2", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecredentialtype-password-3", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtciceserver-credential-2-dedup-9", + "https://www.w3.org/TR/webrtc/#issue-container-generatedID-1", + "https://www.w3.org/TR/webrtc/#h-note-1", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtciceserver-credentialtype-4", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtciceserver-credential-3", + "https://www.w3.org/TR/webrtc/#dom-rtciceserver-credentialtype", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecredentialtype-3", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecredentialtype-password-4", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtciceserver-8", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtciceserver-8-dedup-10", "https://www.w3.org/TR/webrtc/#example-1", "https://www.w3.org/TR/webrtc/#rtcicetransportpolicy-enum", "https://www.w3.org/TR/webrtc/#x4-2-3-rtcicetransportpolicy-enum", @@ -140,8 +133,8 @@ "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportpolicy-4", "https://www.w3.org/TR/webrtc/#dom-rtcicetransportpolicy-relay", "https://www.w3.org/TR/webrtc/#ref-for-dfn-ice-agent-3", - "https://www.w3.org/TR/webrtc/#issue-container-generatedID-1", - "https://www.w3.org/TR/webrtc/#h-note-1", + "https://www.w3.org/TR/webrtc/#issue-container-generatedID-1-dedup-11", + "https://www.w3.org/TR/webrtc/#h-note-1-dedup-12", "https://www.w3.org/TR/webrtc/#dom-rtcicetransportpolicy-all", "https://www.w3.org/TR/webrtc/#ref-for-dfn-ice-agent-4", "https://www.w3.org/TR/webrtc/#issue-container-generatedID-2", @@ -255,9 +248,7 @@ "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicegatheringstate-new-1", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicegatheringstate-gathering-1", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicegatheringstate-complete-1", - "https://www.w3.org/TR/webrtc/#rtcicegatheringstate-description-change-wrapper", "https://www.w3.org/TR/webrtc/#rtcicegatheringstate-description", - "https://www.w3.org/TR/webrtc/#rtcicegatheringstate-description-new", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicegatheringstate-2", "https://www.w3.org/TR/webrtc/#dom-rtcicegatheringstate-new", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-1", @@ -270,7 +261,11 @@ "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-3", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-4", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicegathererstate-complete-1", + "https://www.w3.org/TR/webrtc/#rtcicegatheringstate-transports-change-wrapper", + "https://www.w3.org/TR/webrtc/#rtcicegatheringstate-transports", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-10", "https://www.w3.org/TR/webrtc/#ref-for-transceivers-set-1", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-11", "https://www.w3.org/TR/webrtc/#ref-for-dfn-sctptransport-1", "https://www.w3.org/TR/webrtc/#rtcpeerconnectionstate-enum", "https://www.w3.org/TR/webrtc/#x4-3-3-rtcpeerconnectionstate-enum", @@ -286,42 +281,64 @@ "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnectionstate-connected-1", "https://www.w3.org/TR/webrtc/#rtcpeerconnectionstate-description-change-wrapper", "https://www.w3.org/TR/webrtc/#rtcpeerconnectionstate-description", - "https://www.w3.org/TR/webrtc/#rtcpeerconnectionstate-description-new", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnectionstate-2", "https://www.w3.org/TR/webrtc/#dom-rtcpeerconnectionstate-closed", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-10", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-10-dedup-13", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-iceconnectionstate-1", "https://www.w3.org/TR/webrtc/#ref-for-dfn-isclosed-2", + "https://www.w3.org/TR/webrtc/#dom-rtcpeerconnectionstate-closed-dedup-14", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-iceconnectionstate-1-dedup-15", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtciceconnectionstate-closed-1", "https://www.w3.org/TR/webrtc/#dom-rtcpeerconnectionstate-failed", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-5", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-failed-1", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-iceconnectionstate-2", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtciceconnectionstate-failed-2", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtciceconnectionstate-failed-2-dedup-16", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransport-1", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransportstate-failed-1", "https://www.w3.org/TR/webrtc/#dom-rtcpeerconnectionstate-disconnected", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-6", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-disconnected-1", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-iceconnectionstate-3", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtciceconnectionstate-disconnected-2", "https://www.w3.org/TR/webrtc/#dom-rtcpeerconnectionstate-new", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-7", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-new-1", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-iceconnectionstate-4", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtciceconnectionstate-new-1", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-closed-1", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransport-2", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransportstate-new-1", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransportstate-closed-1", "https://www.w3.org/TR/webrtc/#dom-rtcpeerconnectionstate-connecting", + "https://www.w3.org/TR/webrtc/#dom-rtcpeerconnectionstate-connected", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-8", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-new-2", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-checking-1", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransportstate-connected-1", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransport-3", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransportstate-new-2", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransportstate-connecting-1", - "https://www.w3.org/TR/webrtc/#dom-rtcpeerconnectionstate-connected", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransportstate-closed-2", + "https://www.w3.org/TR/webrtc/#dom-rtcpeerconnectionstate-connected-dedup-17", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-9", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-connected-1", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-iceconnectionstate-5", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-completed-1", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtciceconnectionstate-connected-1", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-closed-2", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransport-3-dedup-18", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransportstate-connected-1-dedup-19", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransportstate-closed-2-dedup-20", + "https://www.w3.org/TR/webrtc/#dom-rtcpeerconnectionstate-connecting-dedup-21", + "https://www.w3.org/TR/webrtc/#issue-container-generatedID-4", + "https://www.w3.org/TR/webrtc/#h-note-4", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnectionstate-connecting-2", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-5-dedup-22", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-new-1", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-checking-1-dedup-23", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransport-4", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransportstate-connected-1", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransportstate-closed-2", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransportstate-new-2", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransportstate-connecting-1-dedup-24", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-12", "https://www.w3.org/TR/webrtc/#ref-for-transceivers-set-2", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-13", "https://www.w3.org/TR/webrtc/#ref-for-dfn-sctptransport-2", "https://www.w3.org/TR/webrtc/#rtciceconnectionstate-enum", "https://www.w3.org/TR/webrtc/#x4-3-4-rtciceconnectionstate-enum", @@ -329,63 +346,65 @@ "https://www.w3.org/TR/webrtc/#webidl-478990735", "https://www.w3.org/TR/webrtc/#idl-def-rtciceconnectionstate", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtciceconnectionstate-1", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtciceconnectionstate-closed-1", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtciceconnectionstate-failed-2", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtciceconnectionstate-disconnected-2", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtciceconnectionstate-new-1", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtciceconnectionstate-closed-2", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtciceconnectionstate-failed-3", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtciceconnectionstate-disconnected-3", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtciceconnectionstate-new-2", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtciceconnectionstate-checking-1", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtciceconnectionstate-completed-1", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtciceconnectionstate-connected-1", - "https://www.w3.org/TR/webrtc/#rtciceconnectionstate-description-change-wrapper", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtciceconnectionstate-connected-2", "https://www.w3.org/TR/webrtc/#rtciceconnectionstate-description", - "https://www.w3.org/TR/webrtc/#rtciceconnectionstate-description-new", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtciceconnectionstate-2", "https://www.w3.org/TR/webrtc/#dom-rtciceconnectionstate-closed", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-11", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-isclosed-3", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-14", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-isclosed-2-dedup-25", "https://www.w3.org/TR/webrtc/#dom-rtciceconnectionstate-failed", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-10", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-failed-2", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-6-dedup-26", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-failed-1", "https://www.w3.org/TR/webrtc/#dom-rtciceconnectionstate-disconnected", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-11", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-disconnected-2", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-7-dedup-27", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-disconnected-1", "https://www.w3.org/TR/webrtc/#dom-rtciceconnectionstate-new", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-12", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-new-3", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-closed-3", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-8-dedup-28", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-new-2", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-closed-1-dedup-29", "https://www.w3.org/TR/webrtc/#dom-rtciceconnectionstate-checking", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-13", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-new-4", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-9-dedup-30", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-new-3", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-checking-2", "https://www.w3.org/TR/webrtc/#dom-rtciceconnectionstate-completed", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-14", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-completed-2", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-closed-4", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-10", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-completed-1-dedup-31", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-closed-2-dedup-32", "https://www.w3.org/TR/webrtc/#dom-rtciceconnectionstate-connected", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-15", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-connected-2", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-completed-3", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-closed-5", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-11", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-connected-1-dedup-33", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-completed-2", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-closed-3", + "https://www.w3.org/TR/webrtc/#rtciceconnectionstate-transports-change-wrapper", + "https://www.w3.org/TR/webrtc/#rtciceconnectionstate-transports", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-15", "https://www.w3.org/TR/webrtc/#ref-for-transceivers-set-3", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-16", "https://www.w3.org/TR/webrtc/#ref-for-dfn-sctptransport-3", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-16", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-12", "https://www.w3.org/TR/webrtc/#ref-for-dfn-media-description-1", "https://www.w3.org/TR/webrtc/#rtcpeerconnection-interface", "https://www.w3.org/TR/webrtc/#x4-4-rtcpeerconnection-interface", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-12", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-17", "https://www.w3.org/TR/webrtc/#operation", "https://www.w3.org/TR/webrtc/#x4-4-1-operation", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-13", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-14", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-18", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-19", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcconfiguration-iceservers-2", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-15", - "https://www.w3.org/TR/webrtc/#dfn-signaling-state", - "https://www.w3.org/TR/webrtc/#dfn-connection-state", - "https://www.w3.org/TR/webrtc/#dfn-ice-gathering-state", - "https://www.w3.org/TR/webrtc/#dfn-ice-connection-state", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-16", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-20", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-signalingstate-1", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-connectionstate-1", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-icegatheringstate-1", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-iceconnectionstate-6", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-21", "https://www.w3.org/TR/webrtc/#dfn-ice-agent", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-17", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-22", "https://www.w3.org/TR/webrtc/#ref-for-dfn-ice-agent-5", "https://www.w3.org/TR/webrtc/#ref-for-dom-peerconnection-addicecandidate-1", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-setconfiguration-1", @@ -393,10 +412,10 @@ "https://www.w3.org/TR/webrtc/#ref-for-dom-peerconnection-setremotedescription-1", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-close-1", "https://www.w3.org/TR/webrtc/#ref-for-dfn-ice-agent-6", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-17", - "https://www.w3.org/TR/webrtc/#issue-container-generatedID-4", - "https://www.w3.org/TR/webrtc/#h-note-4", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-signaling-state-1", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-13", + "https://www.w3.org/TR/webrtc/#issue-container-generatedID-5", + "https://www.w3.org/TR/webrtc/#h-note-5", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-signalingstate-2", "https://www.w3.org/TR/webrtc/#ref-for-dfn-currentlocaldescription-1", "https://www.w3.org/TR/webrtc/#ref-for-dfn-currentremotedescription-1", "https://www.w3.org/TR/webrtc/#ref-for-dfn-pendinglocaldescription-1", @@ -405,12 +424,12 @@ "https://www.w3.org/TR/webrtc/#ref-for-dom-peerconnection-setremotedescription-2", "https://www.w3.org/TR/webrtc/#ref-for-dom-peerconnection-addicecandidate-2", "https://www.w3.org/TR/webrtc/#ref-for-dfn-surface-the-candidate-1", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-18", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-23", "https://www.w3.org/TR/webrtc/#ref-for-dfn-close-the-connection-1", "https://www.w3.org/TR/webrtc/#constructor", "https://www.w3.org/TR/webrtc/#x4-4-1-1-constructor", "https://www.w3.org/TR/webrtc/#dom-peerconnection", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-19", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-24", "https://www.w3.org/TR/webrtc/#dfn-documentorigin", "https://www.w3.org/TR/webrtc/#certificate-validation", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcconfiguration-certificates-2", @@ -418,28 +437,32 @@ "https://www.w3.org/TR/webrtc/#ref-for-dfn-origin-1", "https://www.w3.org/TR/webrtc/#ref-for-dfn-documentorigin-1", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtccertificate-4", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-20", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-25", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcconfiguration-certificates-3", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcconfiguration-iceservers-3", "https://www.w3.org/TR/webrtc/#ref-for-dfn-ice-agent-7", "https://www.w3.org/TR/webrtc/#dfn-configuration", "https://www.w3.org/TR/webrtc/#ref-for-set-pc-configuration-1", "https://www.w3.org/TR/webrtc/#dfn-isclosed", "https://www.w3.org/TR/webrtc/#dfn-negotiationneeded", "https://www.w3.org/TR/webrtc/#dfn-sctptransport", + "https://www.w3.org/TR/webrtc/#dfn-datachannels", "https://www.w3.org/TR/webrtc/#dfn-operations", "https://www.w3.org/TR/webrtc/#ref-for-dfn-operations-chain-1", "https://www.w3.org/TR/webrtc/#dfn-updatenegotiationneededflagonemptychain", "https://www.w3.org/TR/webrtc/#dfn-lastcreatedoffer", "https://www.w3.org/TR/webrtc/#dfn-lastcreatedanswer", "https://www.w3.org/TR/webrtc/#dfn-earlycandidates", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-signaling-state-2", + "https://www.w3.org/TR/webrtc/#pc-ss-init", + "https://www.w3.org/TR/webrtc/#dfn-signalingstate", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsignalingstate-stable-6", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-ice-connection-state-1", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtciceconnectionstate-new-2", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-ice-gathering-state-1", + "https://www.w3.org/TR/webrtc/#pc-ics-init", + "https://www.w3.org/TR/webrtc/#dfn-iceconnectionstate", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtciceconnectionstate-new-3", + "https://www.w3.org/TR/webrtc/#pc-igs-init", + "https://www.w3.org/TR/webrtc/#dfn-icegatheringstate", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicegatheringstate-new-2", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-connection-state-1", + "https://www.w3.org/TR/webrtc/#pc-cs-init", + "https://www.w3.org/TR/webrtc/#dfn-connectionstate", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnectionstate-new-2", "https://www.w3.org/TR/webrtc/#dfn-pendinglocaldescription", "https://www.w3.org/TR/webrtc/#dfn-currentlocaldescription", @@ -448,29 +471,29 @@ "https://www.w3.org/TR/webrtc/#dfn-localicecredentialstoreplace", "https://www.w3.org/TR/webrtc/#chain-an-asynchronous-operation", "https://www.w3.org/TR/webrtc/#x4-4-1-2-chain-an-asynchronous-operation", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-21", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-26", "https://www.w3.org/TR/webrtc/#dfn-operations-chain", "https://www.w3.org/TR/webrtc/#ref-for-dfn-operations-1", "https://www.w3.org/TR/webrtc/#ref-for-dfn-settled-1", "https://www.w3.org/TR/webrtc/#ref-for-dfn-settled-2", "https://www.w3.org/TR/webrtc/#dfn-chain", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-22", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-27", "https://www.w3.org/TR/webrtc/#ref-for-dfn-operations-chain-2", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-23", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-isclosed-4", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-28", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-isclosed-3", "https://www.w3.org/TR/webrtc/#ref-for-dfn-reject-1", "https://www.w3.org/TR/webrtc/#ref-for-dfn-operations-2", "https://www.w3.org/TR/webrtc/#ref-for-dfn-operations-3", "https://www.w3.org/TR/webrtc/#ref-for-dfn-fulfill-1", "https://www.w3.org/TR/webrtc/#ref-for-dfn-reject-2", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-isclosed-5", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-isclosed-4", "https://www.w3.org/TR/webrtc/#ref-for-dfn-fulfill-2", "https://www.w3.org/TR/webrtc/#ref-for-dfn-fulfill-3", "https://www.w3.org/TR/webrtc/#ref-for-dfn-reject-3", "https://www.w3.org/TR/webrtc/#ref-for-dfn-reject-4", "https://www.w3.org/TR/webrtc/#ref-for-dfn-fulfill-4", "https://www.w3.org/TR/webrtc/#ref-for-dfn-reject-5", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-isclosed-6", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-isclosed-5", "https://www.w3.org/TR/webrtc/#ref-for-dfn-operations-4", "https://www.w3.org/TR/webrtc/#ref-for-dfn-operations-5", "https://www.w3.org/TR/webrtc/#ref-for-dfn-operations-6", @@ -479,65 +502,52 @@ "https://www.w3.org/TR/webrtc/#ref-for-dfn-update-the-negotiation-needed-flag-1", "https://www.w3.org/TR/webrtc/#update-the-connection-state", "https://www.w3.org/TR/webrtc/#x4-4-1-3-update-the-connection-state", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-24", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-connection-state-2", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-29", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-connectionstate-2", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransport-5", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-isclosed-7", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-25", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-30", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransport-6", + "https://www.w3.org/TR/webrtc/#connectionstate-closed", + "https://www.w3.org/TR/webrtc/#connectionstate-closed-change-wrapper", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-isclosed-6", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnectionstate-3", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-connection-state-3", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-connection-state-4", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-connectionstate-3", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-connectionstate-4", "https://www.w3.org/TR/webrtc/#ref-for-event-connectionstatechange-1", - "https://www.w3.org/TR/webrtc/#update-the-ice-gathering-state", - "https://www.w3.org/TR/webrtc/#x4-4-1-4-update-the-ice-gathering-state", - "https://www.w3.org/TR/webrtc/#update-ice-gathering-state", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-ice-gathering-state-2", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-26", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-isclosed-8", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicegatheringstate-3", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-ice-gathering-state-3", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-ice-gathering-state-4", - "https://www.w3.org/TR/webrtc/#ref-for-event-icegatheringstatechange-1", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicegatheringstate-complete-2", - "https://www.w3.org/TR/webrtc/#ref-for-event-icecandidate-1", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnectioniceevent-1", - "https://www.w3.org/TR/webrtc/#issue-container-generatedID-5", - "https://www.w3.org/TR/webrtc/#h-note-5", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-18", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-27", "https://www.w3.org/TR/webrtc/#set-the-session-description", - "https://www.w3.org/TR/webrtc/#x4-4-1-5-set-the-session-description", + "https://www.w3.org/TR/webrtc/#x4-4-1-4-set-the-session-description", "https://www.w3.org/TR/webrtc/#set-local-description", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-28", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-31", "https://www.w3.org/TR/webrtc/#ref-for-set-description-1", "https://www.w3.org/TR/webrtc/#set-remote-description", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-29", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-32", "https://www.w3.org/TR/webrtc/#ref-for-set-description-2", "https://www.w3.org/TR/webrtc/#set-description", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-30", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-33", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsessiondescriptioninit-type-1", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsdptype-rollback-1", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-signaling-state-3", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-signalingstate-3", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsignalingstate-stable-7", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsignalingstate-have-local-pranswer-3", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsignalingstate-have-remote-pranswer-3", "https://www.w3.org/TR/webrtc/#ref-for-dfn-reject-6", "https://www.w3.org/TR/webrtc/#ref-for-transceivers-set-4", - "https://www.w3.org/TR/webrtc/#apply-description-restrictions", "https://www.w3.org/TR/webrtc/#ref-for-dfn-jsepmid-1", - "https://www.w3.org/TR/webrtc/#apply-description-restrictions-change-wrapper", - "https://www.w3.org/TR/webrtc/#apply-description-restrictions-new-0", + "https://www.w3.org/TR/webrtc/#apply-prohibited-gathering-1", + "https://www.w3.org/TR/webrtc/#apply-prohibited-gathering-1-change-wrapper", "https://www.w3.org/TR/webrtc/#ref-for-dfn-ice-agent-8", "https://www.w3.org/TR/webrtc/#ref-for-dfn-administratively-prohibited-1", - "https://www.w3.org/TR/webrtc/#apply-description-restrictions-new-1", + "https://www.w3.org/TR/webrtc/#apply-prohibited-gathering-2", + "https://www.w3.org/TR/webrtc/#apply-prohibited-gathering-2-change-wrapper", "https://www.w3.org/TR/webrtc/#ref-for-dfn-ice-agent-9", "https://www.w3.org/TR/webrtc/#ref-for-dfn-administratively-prohibited-2", "https://www.w3.org/TR/webrtc/#remote-rid-reneg-change-wrapper", "https://www.w3.org/TR/webrtc/#remote-rid-reneg", - "https://www.w3.org/TR/webrtc/#remote-rid-reneg-new", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-isclosed-9", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-sender-1", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-sendencodings-1", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-isclosed-7", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsessiondescriptioninit-type-2", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-signaling-state-4", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-signalingstate-4", "https://www.w3.org/TR/webrtc/#ref-for-dfn-reject-7", "https://www.w3.org/TR/webrtc/#ref-for-dfn-reject-8", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcerror-1", @@ -550,25 +560,24 @@ "https://www.w3.org/TR/webrtc/#ref-for-dfn-reject-10", "https://www.w3.org/TR/webrtc/#ref-for-dfn-reject-11", "https://www.w3.org/TR/webrtc/#ref-for-dfn-reject-12", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-isclosed-10", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-isclosed-8", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsdptype-offer-5", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-addtrack-1", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-setparameters-1", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-1", "https://www.w3.org/TR/webrtc/#ref-for-dfn-settled-3", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsdptype-offer-6", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-signaling-state-5", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-signalingstate-5", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsignalingstate-stable-8", "https://www.w3.org/TR/webrtc/#ref-for-transceivers-set-5", - "https://www.w3.org/TR/webrtc/#set-last-stable-offer-properties-change-wrapper", - "https://www.w3.org/TR/webrtc/#set-last-stable-offer-properties", - "https://www.w3.org/TR/webrtc/#set-last-stable-offer-properties-new", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-sender-1", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-sender-1-dedup-34", "https://www.w3.org/TR/webrtc/#ref-for-dfn-laststablestatesendertransport-1", "https://www.w3.org/TR/webrtc/#ref-for-dfn-sender-2", "https://www.w3.org/TR/webrtc/#ref-for-dfn-sendertransport-1", + "https://www.w3.org/TR/webrtc/#rollback-ridless", + "https://www.w3.org/TR/webrtc/#rollback-ridless-change-wrapper", "https://www.w3.org/TR/webrtc/#ref-for-dfn-sender-3", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-sendencodings-1", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-sendencodings-1-dedup-35", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcodingparameters-rid-1", "https://www.w3.org/TR/webrtc/#ref-for-dfn-sender-4", "https://www.w3.org/TR/webrtc/#ref-for-dfn-laststableridlesssendencodings-1", @@ -591,7 +600,7 @@ "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsdptype-offer-7", "https://www.w3.org/TR/webrtc/#ref-for-dfn-pendinglocaldescription-2", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsessiondescription-1", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-signaling-state-6", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-signalingstate-6", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsignalingstate-have-local-offer-3", "https://www.w3.org/TR/webrtc/#ref-for-dfn-release-early-candidates-1", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsdptype-answer-2", @@ -603,7 +612,7 @@ "https://www.w3.org/TR/webrtc/#ref-for-dfn-pendinglocaldescription-3", "https://www.w3.org/TR/webrtc/#ref-for-dfn-lastcreatedoffer-1", "https://www.w3.org/TR/webrtc/#ref-for-dfn-lastcreatedanswer-1", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-signaling-state-7", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-signalingstate-7", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsignalingstate-stable-9", "https://www.w3.org/TR/webrtc/#ref-for-dfn-release-early-candidates-2", "https://www.w3.org/TR/webrtc/#ref-for-dfn-localicecredentialstoreplace-3", @@ -611,13 +620,13 @@ "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsdptype-pranswer-3", "https://www.w3.org/TR/webrtc/#ref-for-dfn-pendinglocaldescription-4", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsessiondescription-3", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-signaling-state-8", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-signalingstate-8", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsignalingstate-have-local-pranswer-4", "https://www.w3.org/TR/webrtc/#ref-for-dfn-release-early-candidates-3", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsdptype-offer-8", "https://www.w3.org/TR/webrtc/#ref-for-dfn-pendingremotedescription-4", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsessiondescription-4", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-signaling-state-9", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-signalingstate-9", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsignalingstate-have-remote-offer-3", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsdptype-answer-3", "https://www.w3.org/TR/webrtc/#ref-for-dfn-currentremotedescription-3", @@ -628,7 +637,7 @@ "https://www.w3.org/TR/webrtc/#ref-for-dfn-pendinglocaldescription-6", "https://www.w3.org/TR/webrtc/#ref-for-dfn-lastcreatedoffer-2", "https://www.w3.org/TR/webrtc/#ref-for-dfn-lastcreatedanswer-2", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-signaling-state-10", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-signalingstate-10", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsignalingstate-stable-10", "https://www.w3.org/TR/webrtc/#ref-for-dfn-localicecredentialstoreplace-5", "https://www.w3.org/TR/webrtc/#ref-for-dfn-currentlocaldescription-4", @@ -636,7 +645,7 @@ "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsdptype-pranswer-4", "https://www.w3.org/TR/webrtc/#ref-for-dfn-pendingremotedescription-6", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsessiondescription-6", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-signaling-state-11", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-signalingstate-11", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsignalingstate-have-remote-pranswer-4", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsdptype-answer-4", "https://www.w3.org/TR/webrtc/#ref-for-dfn-sctptransport-4", @@ -655,7 +664,6 @@ "https://www.w3.org/TR/webrtc/#ref-for-dfn-media-description-2", "https://www.w3.org/TR/webrtc/#apply-local-description-change-wrapper", "https://www.w3.org/TR/webrtc/#apply-local-description", - "https://www.w3.org/TR/webrtc/#apply-local-description-new", "https://www.w3.org/TR/webrtc/#ref-for-dfn-media-description-3", "https://www.w3.org/TR/webrtc/#ref-for-dfn-associated-1", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-1", @@ -666,9 +674,10 @@ "https://www.w3.org/TR/webrtc/#ref-for-dfn-stopped-0-1", "https://www.w3.org/TR/webrtc/#ref-for-dfn-media-description-5", "https://www.w3.org/TR/webrtc/#ref-for-dfn-media-transport-1", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransport-6", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransport-7", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-19", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransport-7-dedup-36", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransport-8", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-14", "https://www.w3.org/TR/webrtc/#ref-for-dfn-sender-7", "https://www.w3.org/TR/webrtc/#ref-for-dfn-sendertransport-2", "https://www.w3.org/TR/webrtc/#ref-for-dfn-receiver-7", @@ -714,22 +723,26 @@ "https://www.w3.org/TR/webrtc/#ref-for-dfn-media-description-9", "https://www.w3.org/TR/webrtc/#apply-remote-description-change-wrapper", "https://www.w3.org/TR/webrtc/#apply-remote-description", - "https://www.w3.org/TR/webrtc/#apply-remote-description-new", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsdptype-offer-9", "https://www.w3.org/TR/webrtc/#ref-for-dfn-media-description-10", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpencodingparameters-1", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcodingparameters-rid-2", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcodingparameters-rid-2-dedup-37", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcodingparameters-rid-3", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpencodingparameters-scaleresolutiondownby-1", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-4", "https://www.w3.org/TR/webrtc/#ref-for-dfn-media-description-11", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-sender-7-dedup-38", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-sendencodings-2-dedup-39", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-sender-8-dedup-40", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-lastreturnedparameters-2", "https://www.w3.org/TR/webrtc/#ref-for-dfn-sender-13", "https://www.w3.org/TR/webrtc/#ref-for-dfn-sendencodings-6", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcodingparameters-rid-4", "https://www.w3.org/TR/webrtc/#ref-for-dfn-sender-14", "https://www.w3.org/TR/webrtc/#ref-for-dfn-sendencodings-7", "https://www.w3.org/TR/webrtc/#ref-for-dfn-sender-15", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-lastreturnedparameters-2", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-lastreturnedparameters-2-dedup-41", "https://www.w3.org/TR/webrtc/#ref-for-dfn-create-an-rtcrtpsender-1", "https://www.w3.org/TR/webrtc/#ref-for-dfn-media-description-12", "https://www.w3.org/TR/webrtc/#ref-for-dfn-create-an-rtcrtpreceiver-1", @@ -746,6 +759,9 @@ "https://www.w3.org/TR/webrtc/#ref-for-dfn-sendencodings-9", "https://www.w3.org/TR/webrtc/#ref-for-dfn-sender-18", "https://www.w3.org/TR/webrtc/#ref-for-dfn-sendencodings-10", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpencodingparameters-active-1", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-sender-12-dedup-42", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-sendencodings-6-dedup-43", "https://www.w3.org/TR/webrtc/#ref-for-dfn-mid-2", "https://www.w3.org/TR/webrtc/#ref-for-dfn-jsepmid-3", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-3", @@ -767,7 +783,9 @@ "https://www.w3.org/TR/webrtc/#ref-for-dfn-sender-19", "https://www.w3.org/TR/webrtc/#ref-for-dfn-sendcodecs-2", "https://www.w3.org/TR/webrtc/#ref-for-dfn-currentdirection-2", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransport-8", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-direction-1", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransport-9", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransport-9-dedup-44", "https://www.w3.org/TR/webrtc/#ref-for-dfn-media-transport-2", "https://www.w3.org/TR/webrtc/#ref-for-dfn-associated-3", "https://www.w3.org/TR/webrtc/#ref-for-dfn-media-description-17", @@ -794,9 +812,6 @@ "https://www.w3.org/TR/webrtc/#ref-for-dfn-pendinglocaldescription-7", "https://www.w3.org/TR/webrtc/#ref-for-dfn-pendingremotedescription-7", "https://www.w3.org/TR/webrtc/#ref-for-transceivers-set-7", - "https://www.w3.org/TR/webrtc/#set-rollback-per-transceiver-change-wrapper", - "https://www.w3.org/TR/webrtc/#set-rollback-per-transceiver", - "https://www.w3.org/TR/webrtc/#set-rollback-per-transceiver-new", "https://www.w3.org/TR/webrtc/#ref-for-dfn-associated-4", "https://www.w3.org/TR/webrtc/#ref-for-dfn-media-description-19", "https://www.w3.org/TR/webrtc/#ref-for-dfn-jsepmid-4", @@ -805,6 +820,8 @@ "https://www.w3.org/TR/webrtc/#ref-for-dfn-sendertransport-4", "https://www.w3.org/TR/webrtc/#ref-for-dfn-sender-22", "https://www.w3.org/TR/webrtc/#ref-for-dfn-laststablestatesendertransport-2", + "https://www.w3.org/TR/webrtc/#rollback-ridless-2", + "https://www.w3.org/TR/webrtc/#rollback-ridless-2-change-wrapper", "https://www.w3.org/TR/webrtc/#ref-for-dfn-sender-23", "https://www.w3.org/TR/webrtc/#ref-for-dfn-laststableridlesssendencodings-3", "https://www.w3.org/TR/webrtc/#ref-for-dfn-sender-24", @@ -822,7 +839,7 @@ "https://www.w3.org/TR/webrtc/#ref-for-dfn-receivecodecs-4", "https://www.w3.org/TR/webrtc/#ref-for-dfn-receiver-16", "https://www.w3.org/TR/webrtc/#ref-for-dfn-laststablestatereceivecodecs-2", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-signaling-state-12", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-signalingstate-12", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsignalingstate-have-remote-offer-4", "https://www.w3.org/TR/webrtc/#ref-for-dfn-receiver-17", "https://www.w3.org/TR/webrtc/#ref-for-dfn-laststablestateassociatedremotemediastreams-2", @@ -833,7 +850,7 @@ "https://www.w3.org/TR/webrtc/#ref-for-transceivers-set-8", "https://www.w3.org/TR/webrtc/#ref-for-dfn-pendinglocaldescription-8", "https://www.w3.org/TR/webrtc/#ref-for-dfn-pendingremotedescription-8", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-signaling-state-13", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-signalingstate-13", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsignalingstate-stable-11", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsdptype-answer-9", "https://www.w3.org/TR/webrtc/#ref-for-transceivers-set-9", @@ -842,18 +859,28 @@ "https://www.w3.org/TR/webrtc/#ref-for-dfn-currentlocaldescription-5", "https://www.w3.org/TR/webrtc/#ref-for-dfn-currentremotedescription-4", "https://www.w3.org/TR/webrtc/#ref-for-transceivers-set-10", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-signaling-state-14", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-signalingstate-14", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsignalingstate-stable-12", "https://www.w3.org/TR/webrtc/#ref-for-transceivers-set-11", "https://www.w3.org/TR/webrtc/#ref-for-dfn-sender-27", "https://www.w3.org/TR/webrtc/#ref-for-dfn-sendertransport-5", "https://www.w3.org/TR/webrtc/#ref-for-dfn-receiver-18", "https://www.w3.org/TR/webrtc/#ref-for-dfn-receivertransport-5", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransport-9", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-20", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransport-10", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-15", + "https://www.w3.org/TR/webrtc/#init-rtcrtpencodingparameters-codec", + "https://www.w3.org/TR/webrtc/#init-rtcrtpencodingparameters-codec-change-wrapper", + "https://www.w3.org/TR/webrtc/#ref-for-transceivers-set-12", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-sender-28", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-sendcodecs-3", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-sender-29", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-sendencodings-13", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpencodingparameters-codec-1", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-codec-dictionary-match-1", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpencodingparameters-codec-2", "https://www.w3.org/TR/webrtc/#ref-for-dfn-clear-the-negotiation-needed-flag-1", "https://www.w3.org/TR/webrtc/#ref-for-dfn-update-the-negotiation-needed-flag-2", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-signaling-state-15", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-signalingstate-15", "https://www.w3.org/TR/webrtc/#ref-for-event-signalingstatechange-1", "https://www.w3.org/TR/webrtc/#ref-for-event-datachannel-error-1", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcerrorevent-1", @@ -874,20 +901,26 @@ "https://www.w3.org/TR/webrtc/#ref-for-dom-trackevent-transceiver-1", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtctrackeventinit-transceiver-1", "https://www.w3.org/TR/webrtc/#ref-for-dfn-resolve-1", - "https://www.w3.org/TR/webrtc/#set-the-configuration-change-wrapper", "https://www.w3.org/TR/webrtc/#set-the-configuration", - "https://www.w3.org/TR/webrtc/#x4-4-1-6-set-the-configuration", - "https://www.w3.org/TR/webrtc/#set-the-configuration-new", - "https://www.w3.org/TR/webrtc/#x4-4-1-6-set-the-configuration-dedup-2", + "https://www.w3.org/TR/webrtc/#x4-4-1-5-set-the-configuration", "https://www.w3.org/TR/webrtc/#set-pc-configuration", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-31", + "https://www.w3.org/TR/webrtc/#set-the-configuration-algo-change-wrapper", + "https://www.w3.org/TR/webrtc/#set-the-configuration-algo", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcconfiguration-5", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-34", "https://www.w3.org/TR/webrtc/#ref-for-dfn-configuration-1", - "https://www.w3.org/TR/webrtc/#setconfig-certificate", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcconfiguration-certificates-4", + "https://www.w3.org/TR/webrtc/#setconfig-certificate", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcconfiguration-certificates-4-dedup-45", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-configuration-1-dedup-46", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcconfiguration-certificates-5", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcconfiguration-certificates-6", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcconfiguration-certificates-7", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcconfiguration-certificates-6", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcconfiguration-certificates-7-dedup-47", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcconfiguration-certificates-7-dedup-48", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-configuration-2", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcconfiguration-certificates-8", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcconfiguration-certificates-8-dedup-49", "https://www.w3.org/TR/webrtc/#config-bundle", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcconfiguration-bundlepolicy-2", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcconfiguration-bundlepolicy-3", @@ -898,38 +931,58 @@ "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcconfiguration-icecandidatepoolsize-2", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcconfiguration-icecandidatepoolsize-3", "https://www.w3.org/TR/webrtc/#ref-for-dom-peerconnection-setlocaldescription-3", + "https://www.w3.org/TR/webrtc/#config-bundle-dedup-50", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcconfiguration-bundlepolicy-3-dedup-51", + "https://www.w3.org/TR/webrtc/#config-rtcpmux-dedup-52", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcconfiguration-rtcpmuxpolicy-3-dedup-53", + "https://www.w3.org/TR/webrtc/#config-icepool-dedup-54", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcconfiguration-icecandidatepoolsize-2-dedup-55", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcconfiguration-icecandidatepoolsize-3-dedup-56", + "https://www.w3.org/TR/webrtc/#ref-for-dom-peerconnection-setlocaldescription-3-dedup-57", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcconfiguration-iceservers-3", "https://www.w3.org/TR/webrtc/#config-iceservers", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcconfiguration-iceservers-4", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtciceserver-urls-2", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtciceserver-username-2", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtciceserver-credential-3", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtciceserver-credential-4", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-validate-an-ice-server-url-1", "https://www.w3.org/TR/webrtc/#config-icetransportpolicy", "https://www.w3.org/TR/webrtc/#ref-for-dfn-ice-agent-10", "https://www.w3.org/TR/webrtc/#ice-transports-setting", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcconfiguration-icetransportpolicy-3", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcconfiguration-icetransportpolicy-3-dedup-58", "https://www.w3.org/TR/webrtc/#ref-for-ice-transports-setting-1", "https://www.w3.org/TR/webrtc/#ref-for-dfn-ice-agent-11", "https://www.w3.org/TR/webrtc/#dfn-ice-candidate-pool-size", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcconfiguration-icecandidatepoolsize-4", "https://www.w3.org/TR/webrtc/#ref-for-dfn-ice-candidate-pool-size-1", + "https://www.w3.org/TR/webrtc/#config-iceservers-dedup-59", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcconfiguration-iceservers-3-dedup-60", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtciceserver-urls-2-dedup-61", "https://www.w3.org/TR/webrtc/#ref-for-dfn-ice-agent-12", "https://www.w3.org/TR/webrtc/#ice-servers-list", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcconfiguration-iceservers-5", "https://www.w3.org/TR/webrtc/#ref-for-dfn-ice-agent-13", "https://www.w3.org/TR/webrtc/#ref-for-ice-servers-list-1", "https://www.w3.org/TR/webrtc/#ref-for-dfn-ice-candidate-pool-size-2", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-configuration-2", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-configuration-2-dedup-62", + "https://www.w3.org/TR/webrtc/#dfn-validate-an-ice-server-url", + "https://www.w3.org/TR/webrtc/#validate-ice-server-algo-change-wrapper", + "https://www.w3.org/TR/webrtc/#validate-ice-server-algo", + "https://www.w3.org/TR/webrtc/#issue-container-generatedID-9", + "https://www.w3.org/TR/webrtc/#h-note-9", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtciceserver-username-2", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtciceserver-credential-3-dedup-63", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtciceserver-credential-3-dedup-64", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtciceserver-credentialtype-5", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecredentialtype-password-5", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtciceserver-credential-5", "https://www.w3.org/TR/webrtc/#interface-definition", "https://www.w3.org/TR/webrtc/#x4-4-2-interface-definition", "https://www.w3.org/TR/webrtc/#dom-rtcpeerconnection", "https://www.w3.org/TR/webrtc/#ref-for-dfn-rtp-media-api-1", "https://www.w3.org/TR/webrtc/#webidl-175960107", "https://www.w3.org/TR/webrtc/#idl-def-rtcpeerconnection", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-32", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-35", "https://www.w3.org/TR/webrtc/#idl-def-rtcpeerconnection-constructor-configuration", "https://www.w3.org/TR/webrtc/#ref-for-dom-peerconnection-1", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcconfiguration-5", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcconfiguration-5-dedup-65", "https://www.w3.org/TR/webrtc/#idl-def-rtcpeerconnection-createoffer-options", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsessiondescriptioninit-1", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-createoffer-1", @@ -969,7 +1022,7 @@ "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsignalingstate-3", "https://www.w3.org/TR/webrtc/#ref-for-dom-peerconnection-signaling-state-1", "https://www.w3.org/TR/webrtc/#idl-def-rtcpeerconnection-icegatheringstate", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicegatheringstate-4", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicegatheringstate-3", "https://www.w3.org/TR/webrtc/#ref-for-dom-peerconnection-ice-gathering-state-1", "https://www.w3.org/TR/webrtc/#idl-def-rtcpeerconnection-iceconnectionstate", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtciceconnectionstate-3", @@ -1040,14 +1093,14 @@ "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsessiondescription-14", "https://www.w3.org/TR/webrtc/#ref-for-dom-peerconnection-currentlocaldesc-5", "https://www.w3.org/TR/webrtc/#ref-for-dfn-currentlocaldescription-8", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-33", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-36", "https://www.w3.org/TR/webrtc/#ref-for-dfn-ice-agent-14", "https://www.w3.org/TR/webrtc/#dom-peerconnection-pendinglocaldesc", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsessiondescription-15", "https://www.w3.org/TR/webrtc/#ref-for-dom-peerconnection-pendinglocaldesc-2", "https://www.w3.org/TR/webrtc/#ref-for-dfn-pendinglocaldescription-11", "https://www.w3.org/TR/webrtc/#ref-for-dfn-ice-agent-15", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-34", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-37", "https://www.w3.org/TR/webrtc/#dom-peerconnection-remotedescription", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsessiondescription-16", "https://www.w3.org/TR/webrtc/#ref-for-dom-peerconnection-remotedescription-2", @@ -1063,41 +1116,41 @@ "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsessiondescription-17", "https://www.w3.org/TR/webrtc/#ref-for-dom-peerconnection-currentremotedesc-2", "https://www.w3.org/TR/webrtc/#ref-for-dfn-currentremotedescription-7", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-35", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-38", "https://www.w3.org/TR/webrtc/#ref-for-dom-peerconnection-addicecandidate-4", "https://www.w3.org/TR/webrtc/#dom-peerconnection-pendingremotedesc", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsessiondescription-18", "https://www.w3.org/TR/webrtc/#ref-for-dom-peerconnection-pendingremotedesc-2", "https://www.w3.org/TR/webrtc/#ref-for-dfn-pendingremotedescription-11", "https://www.w3.org/TR/webrtc/#ref-for-dom-peerconnection-addicecandidate-5", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-36", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-39", "https://www.w3.org/TR/webrtc/#dom-peerconnection-signaling-state", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsignalingstate-4", "https://www.w3.org/TR/webrtc/#ref-for-dom-peerconnection-signaling-state-2", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-37", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-signaling-state-16", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-40", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-signalingstate-16", "https://www.w3.org/TR/webrtc/#dom-peerconnection-ice-gathering-state", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicegatheringstate-5", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicegatheringstate-4", "https://www.w3.org/TR/webrtc/#ref-for-dom-peerconnection-ice-gathering-state-2", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-ice-gathering-state-5", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-38", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-41", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-icegatheringstate-2", "https://www.w3.org/TR/webrtc/#dom-peerconnection-ice-connection-state", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtciceconnectionstate-4", "https://www.w3.org/TR/webrtc/#ref-for-dom-peerconnection-ice-connection-state-4", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-ice-connection-state-2", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-39", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-42", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-iceconnectionstate-7", "https://www.w3.org/TR/webrtc/#dom-peerconnection-connection-state", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnectionstate-5", "https://www.w3.org/TR/webrtc/#ref-for-dom-peerconnection-connection-state-2", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-connection-state-5", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-40", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-43", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-connectionstate-5", "https://www.w3.org/TR/webrtc/#dom-rtcpeerconnection-cantrickleicecandidates", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-cantrickleicecandidates-2", "https://www.w3.org/TR/webrtc/#ref-for-dom-peerconnection-setremotedescription-5", "https://www.w3.org/TR/webrtc/#dom-rtcpeerconnection-onnegotiationneeded", "https://www.w3.org/TR/webrtc/#ref-for-event-negotiation-1", "https://www.w3.org/TR/webrtc/#dom-rtcpeerconnection-onicecandidate", - "https://www.w3.org/TR/webrtc/#ref-for-event-icecandidate-2", + "https://www.w3.org/TR/webrtc/#ref-for-event-icecandidate-1", "https://www.w3.org/TR/webrtc/#dom-rtcpeerconnection-onicecandidateerror", "https://www.w3.org/TR/webrtc/#ref-for-event-icecandidateerror-1", "https://www.w3.org/TR/webrtc/#dom-rtcpeerconnection-onsignalingstatechange", @@ -1105,13 +1158,13 @@ "https://www.w3.org/TR/webrtc/#dom-rtcpeerconnection-oniceconnectionstatechange", "https://www.w3.org/TR/webrtc/#ref-for-event-iceconnectionstatechange-1", "https://www.w3.org/TR/webrtc/#dom-rtcpeerconnection-onicegatheringstatechange", - "https://www.w3.org/TR/webrtc/#ref-for-event-icegatheringstatechange-2", + "https://www.w3.org/TR/webrtc/#ref-for-event-icegatheringstatechange-1", "https://www.w3.org/TR/webrtc/#dom-rtcpeerconnection-onconnectionstatechange", "https://www.w3.org/TR/webrtc/#ref-for-event-connectionstatechange-2", "https://www.w3.org/TR/webrtc/#methods", "https://www.w3.org/TR/webrtc/#dom-rtcpeerconnection-createoffer", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-createoffer-2", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-41", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-44", "https://www.w3.org/TR/webrtc/#ref-for-dfn-ice-agent-16", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-createoffer-3", "https://www.w3.org/TR/webrtc/#ref-for-dom-peerconnection-setlocaldescription-6", @@ -1125,16 +1178,16 @@ "https://www.w3.org/TR/webrtc/#ref-for-dom-rtciceparameters-usernamefragment-1", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtciceparameters-password-1", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcconfiguration-certificates-9", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-42", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-43", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-44", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-isclosed-11", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-45", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-46", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-47", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-isclosed-9", "https://www.w3.org/TR/webrtc/#ref-for-dfn-reject-13", "https://www.w3.org/TR/webrtc/#ref-for-dfn-chain-1", "https://www.w3.org/TR/webrtc/#ref-for-dfn-creating-an-offer-1", "https://www.w3.org/TR/webrtc/#ref-for-dfn-operations-chain-3", "https://www.w3.org/TR/webrtc/#dfn-creating-an-offer", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-signaling-state-17", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-signalingstate-17", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsignalingstate-stable-13", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsignalingstate-have-local-offer-4", "https://www.w3.org/TR/webrtc/#ref-for-dfn-reject-14", @@ -1144,48 +1197,39 @@ "https://www.w3.org/TR/webrtc/#ref-for-dfn-reject-15", "https://www.w3.org/TR/webrtc/#ref-for-dfn-final-steps-to-create-an-offer-1", "https://www.w3.org/TR/webrtc/#dfn-final-steps-to-create-an-offer", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-isclosed-12", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-isclosed-10", "https://www.w3.org/TR/webrtc/#ref-for-dfn-offerer-s-system-state-1", "https://www.w3.org/TR/webrtc/#ref-for-dfn-in-parallel-steps-to-create-an-offer-2", - "https://www.w3.org/TR/webrtc/#issue-container-generatedID-9", - "https://www.w3.org/TR/webrtc/#h-note-9", + "https://www.w3.org/TR/webrtc/#issue-container-generatedID-10", + "https://www.w3.org/TR/webrtc/#h-note-10", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-createoffer-6", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-5", "https://www.w3.org/TR/webrtc/#ref-for-dfn-in-parallel-steps-to-create-an-offer-3", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-6", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-7", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcbundlepolicy-6", - "https://www.w3.org/TR/webrtc/#ref-for-transceivers-set-12", + "https://www.w3.org/TR/webrtc/#ref-for-transceivers-set-13", "https://www.w3.org/TR/webrtc/#ref-for-dfn-media-description-20", "https://www.w3.org/TR/webrtc/#ref-for-dfn-associated-6", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-8", "https://www.w3.org/TR/webrtc/#ref-for-dfn-preferredcodecs-1", "https://www.w3.org/TR/webrtc/#ref-for-dfn-preferredcodecs-2", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-receiver-19", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-receivertrack-2", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-direction-1", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-sendonly-3", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-sendrecv-4", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-2", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-getcapabilities-1", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcapabilities-codecs-1", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-1", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-getcapabilities-1", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcapabilities-codecs-2", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-list-of-implemented-send-codecs-1", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-direction-2", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-sendonly-3", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-3", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-getcapabilities-2", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcapabilities-codecs-3", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-direction-3", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-recvonly-5", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-2", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-getcapabilities-2", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcapabilities-codecs-4", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-sendencodings-13", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-4", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-sendrecv-5", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-list-of-implemented-receive-codecs-1", "https://www.w3.org/TR/webrtc/#ref-for-dfn-sendencodings-14", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-5", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-2", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-sendencodings-15", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-3", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsendparameters-encodings-1", - "https://www.w3.org/TR/webrtc/#issue-container-generatedID-10", - "https://www.w3.org/TR/webrtc/#h-note-10", + "https://www.w3.org/TR/webrtc/#issue-container-generatedID-11", + "https://www.w3.org/TR/webrtc/#h-note-11", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsessiondescriptioninit-5", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsessiondescriptioninit-type-3", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsdptype-offer-10", @@ -1195,7 +1239,7 @@ "https://www.w3.org/TR/webrtc/#dom-rtcpeerconnection-createanswer", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-createanswer-2", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-createoffer-7", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-45", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-48", "https://www.w3.org/TR/webrtc/#ref-for-dfn-ice-agent-18", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-createoffer-8", "https://www.w3.org/TR/webrtc/#ref-for-dom-peerconnection-setlocaldescription-8", @@ -1204,18 +1248,18 @@ "https://www.w3.org/TR/webrtc/#ref-for-dom-rtciceparameters-usernamefragment-2", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtciceparameters-password-2", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcconfiguration-certificates-10", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-46", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-47", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-49", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-50", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsessiondescriptioninit-type-4", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsdptype-pranswer-9", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-48", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-isclosed-13", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-51", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-isclosed-11", "https://www.w3.org/TR/webrtc/#ref-for-dfn-reject-16", "https://www.w3.org/TR/webrtc/#ref-for-dfn-chain-2", "https://www.w3.org/TR/webrtc/#ref-for-dfn-creating-an-answer-1", "https://www.w3.org/TR/webrtc/#ref-for-dfn-operations-chain-4", "https://www.w3.org/TR/webrtc/#dfn-creating-an-answer", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-signaling-state-18", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-signalingstate-18", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsignalingstate-have-remote-offer-5", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsignalingstate-have-local-pranswer-5", "https://www.w3.org/TR/webrtc/#ref-for-dfn-reject-17", @@ -1225,53 +1269,60 @@ "https://www.w3.org/TR/webrtc/#ref-for-dfn-reject-18", "https://www.w3.org/TR/webrtc/#ref-for-dfn-final-steps-to-create-an-answer-1", "https://www.w3.org/TR/webrtc/#dfn-final-steps-to-create-an-answer", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-isclosed-14", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-isclosed-12", "https://www.w3.org/TR/webrtc/#ref-for-dfn-answerer-s-system-state-1", "https://www.w3.org/TR/webrtc/#ref-for-dfn-in-parallel-steps-to-create-an-answer-2", - "https://www.w3.org/TR/webrtc/#issue-container-generatedID-11", - "https://www.w3.org/TR/webrtc/#h-note-11", + "https://www.w3.org/TR/webrtc/#issue-container-generatedID-12", + "https://www.w3.org/TR/webrtc/#h-note-12", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-createanswer-3", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-9", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-8", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-recvonly-6", "https://www.w3.org/TR/webrtc/#ref-for-dfn-in-parallel-steps-to-create-an-answer-3", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-sendrecv-5", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-10", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-sendrecv-6", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-9", "https://www.w3.org/TR/webrtc/#create-answer-restrictions-change-wrapper", "https://www.w3.org/TR/webrtc/#create-answer-restrictions", - "https://www.w3.org/TR/webrtc/#create-answer-restrictions-new", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-associated-7", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-11", "https://www.w3.org/TR/webrtc/#ref-for-dfn-preferredcodecs-3", "https://www.w3.org/TR/webrtc/#ref-for-dfn-preferredcodecs-4", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-direction-4", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-sendrecv-6", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-6", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-sendrecv-6-dedup-66", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-5", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-getcapabilities-3", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcapabilities-codecs-5", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-3", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-getcapabilities-3", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcapabilities-codecs-6", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-direction-5", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-receiver-20", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-receivertrack-3", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-direction-3", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-sendonly-4", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-7", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-sendrecv-7", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-6", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-getcapabilities-4", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcapabilities-codecs-7", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-direction-6", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-list-of-implemented-send-codecs-2", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-direction-4-dedup-67", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-recvonly-7", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-sendrecv-8", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-4", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-getcapabilities-4", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcapabilities-codecs-8", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-sender-28", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-sendencodings-15", - "https://www.w3.org/TR/webrtc/#issue-container-generatedID-12", - "https://www.w3.org/TR/webrtc/#h-note-12", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-list-of-implemented-receive-codecs-2", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-sendencodings-9-dedup-68", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-7", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-sendencodings-10-dedup-69", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-8", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsendparameters-encodings-2", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-sender-30", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-sendencodings-16", + "https://www.w3.org/TR/webrtc/#issue-container-generatedID-13", + "https://www.w3.org/TR/webrtc/#h-note-13", "https://www.w3.org/TR/webrtc/#ref-for-dom-peerconnection-setremotedescription-6", "https://www.w3.org/TR/webrtc/#ref-for-dfn-proposed-envelope-1", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-sender-29", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-sendencodings-16", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-sendencodings-17", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsignalingstate-have-remote-offer-6", "https://www.w3.org/TR/webrtc/#ref-for-dfn-simulcast-envelope-1", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-sender-30", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-sendencodings-17", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-sendencodings-18", "https://www.w3.org/TR/webrtc/#ref-for-dom-peerconnection-setlocaldescription-9", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsessiondescriptioninit-6", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsessiondescriptioninit-type-5", @@ -1281,22 +1332,22 @@ "https://www.w3.org/TR/webrtc/#ref-for-dfn-resolve-3", "https://www.w3.org/TR/webrtc/#dom-peerconnection-setlocaldescription", "https://www.w3.org/TR/webrtc/#ref-for-dom-peerconnection-setlocaldescription-10", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-49", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-52", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtclocalsessiondescriptioninit-3", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-50", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-51", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-53", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-54", "https://www.w3.org/TR/webrtc/#ref-for-dom-peerconnection-setlocaldescription-11", "https://www.w3.org/TR/webrtc/#ref-for-dfn-creating-an-offer-2", "https://www.w3.org/TR/webrtc/#ref-for-dfn-creating-an-answer-2", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-createoffer-9", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-createanswer-4", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-52", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-55", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsessiondescriptioninit-sdp-5", "https://www.w3.org/TR/webrtc/#ref-for-dfn-chain-3", "https://www.w3.org/TR/webrtc/#ref-for-dfn-operations-chain-5", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsessiondescriptioninit-type-6", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsdptype-offer-11", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-signaling-state-19", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-signalingstate-19", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsignalingstate-stable-14", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsignalingstate-have-local-offer-5", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsignalingstate-have-remote-pranswer-5", @@ -1321,19 +1372,19 @@ "https://www.w3.org/TR/webrtc/#ref-for-set-local-description-2", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsessiondescriptioninit-sdp-6", "https://www.w3.org/TR/webrtc/#ref-for-set-local-description-3", - "https://www.w3.org/TR/webrtc/#issue-container-generatedID-13", - "https://www.w3.org/TR/webrtc/#h-note-13", + "https://www.w3.org/TR/webrtc/#issue-container-generatedID-14", + "https://www.w3.org/TR/webrtc/#h-note-14", "https://www.w3.org/TR/webrtc/#ref-for-dfn-ice-agent-20", "https://www.w3.org/TR/webrtc/#dom-peerconnection-setremotedescription", "https://www.w3.org/TR/webrtc/#ref-for-dom-peerconnection-setremotedescription-7", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-53", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-56", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsessiondescriptioninit-7", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-54", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-57", "https://www.w3.org/TR/webrtc/#ref-for-dfn-chain-4", "https://www.w3.org/TR/webrtc/#ref-for-dfn-operations-chain-6", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsessiondescriptioninit-type-7", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsdptype-offer-14", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-signaling-state-20", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-signalingstate-20", "https://www.w3.org/TR/webrtc/#ref-for-set-local-description-4", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsdptype-rollback-4", "https://www.w3.org/TR/webrtc/#ref-for-set-remote-description-1", @@ -1346,7 +1397,7 @@ "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-sdpmid-1", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-sdpmlineindex-1", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-usernamefragment-1", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-55", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-58", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-candidate-3", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-sdpmid-2", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-sdpmlineindex-2", @@ -1382,10 +1433,10 @@ "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-sdpmid-6", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-sdpmlineindex-6", "https://www.w3.org/TR/webrtc/#ref-for-dfn-media-description-23", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-isclosed-15", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-isclosed-13", "https://www.w3.org/TR/webrtc/#ref-for-dfn-reject-26", "https://www.w3.org/TR/webrtc/#ref-for-dfn-administratively-prohibited-4", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-isclosed-16", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-isclosed-14", "https://www.w3.org/TR/webrtc/#ref-for-dfn-pendingremotedescription-12", "https://www.w3.org/TR/webrtc/#ref-for-dfn-generation-4", "https://www.w3.org/TR/webrtc/#ref-for-dfn-pendingremotedescription-13", @@ -1397,105 +1448,105 @@ "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcconfiguration-icetransportpolicy-4", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcconfiguration-8", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportpolicy-relay-2", - "https://www.w3.org/TR/webrtc/#issue-container-generatedID-14", - "https://www.w3.org/TR/webrtc/#h-note-14", + "https://www.w3.org/TR/webrtc/#issue-container-generatedID-15", + "https://www.w3.org/TR/webrtc/#h-note-15", "https://www.w3.org/TR/webrtc/#ref-for-dom-peerconnection-addicecandidate-7", "https://www.w3.org/TR/webrtc/#dom-rtcpeerconnection-restartice", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-restartice-2", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-56", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-59", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-createoffer-10", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-57", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-60", "https://www.w3.org/TR/webrtc/#ref-for-dfn-localicecredentialstoreplace-7", "https://www.w3.org/TR/webrtc/#ref-for-dfn-currentlocaldescription-9", "https://www.w3.org/TR/webrtc/#ref-for-dfn-pendinglocaldescription-12", "https://www.w3.org/TR/webrtc/#ref-for-dfn-update-the-negotiation-needed-flag-3", "https://www.w3.org/TR/webrtc/#dom-rtcpeerconnection-getconfiguration", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcconfiguration-9", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-58", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-61", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcconfiguration-10", "https://www.w3.org/TR/webrtc/#ref-for-dfn-configuration-3", "https://www.w3.org/TR/webrtc/#dom-rtcpeerconnection-setconfiguration", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-setconfiguration-3", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-59", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-62", "https://www.w3.org/TR/webrtc/#ref-for-dfn-ice-agent-22", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-setconfiguration-4", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-60", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-isclosed-17", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-63", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-isclosed-15", "https://www.w3.org/TR/webrtc/#ref-for-set-pc-configuration-2", "https://www.w3.org/TR/webrtc/#dom-rtcpeerconnection-close", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-close-3", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-61", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-64", "https://www.w3.org/TR/webrtc/#ref-for-dfn-close-the-connection-2", "https://www.w3.org/TR/webrtc/#dfn-close-the-connection", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-isclosed-18", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-isclosed-19", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-signaling-state-21", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-isclosed-16", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-isclosed-17", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-signalingstate-21", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsignalingstate-closed-2", "https://www.w3.org/TR/webrtc/#ref-for-dfn-collecttransceivers-1", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-12", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-10", "https://www.w3.org/TR/webrtc/#ref-for-dfn-stopped-0-4", "https://www.w3.org/TR/webrtc/#ref-for-dfn-stop-the-rtcrtptransceiver-3", "https://www.w3.org/TR/webrtc/#ref-for-dfn-readystate-2", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-2", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannelstate-closed-2", - "https://www.w3.org/TR/webrtc/#issue-container-generatedID-15", - "https://www.w3.org/TR/webrtc/#h-note-15", + "https://www.w3.org/TR/webrtc/#issue-container-generatedID-16", + "https://www.w3.org/TR/webrtc/#h-note-16", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-3", "https://www.w3.org/TR/webrtc/#ref-for-dfn-sctptransport-7", "https://www.w3.org/TR/webrtc/#ref-for-dfn-sctptransportstate-1", "https://www.w3.org/TR/webrtc/#ref-for-idl-def-RTCSctpTransportState.closed-1", "https://www.w3.org/TR/webrtc/#ref-for-dfn-dtlstransportstate-1", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransport-10", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransport-11", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransportstate-closed-3", "https://www.w3.org/TR/webrtc/#ref-for-dfn-ice-agent-23", "https://www.w3.org/TR/webrtc/#ref-for-dfn-icetransportstate-1", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-21", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-closed-6", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-ice-connection-state-3", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtciceconnectionstate-closed-2", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-connection-state-6", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-16", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-closed-4", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-iceconnectionstate-8", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtciceconnectionstate-closed-3", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-connectionstate-6", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnectionstate-closed-2", "https://www.w3.org/TR/webrtc/#legacy-interface-extensions", "https://www.w3.org/TR/webrtc/#x4-4-3-legacy-interface-extensions", - "https://www.w3.org/TR/webrtc/#issue-container-generatedID-16", - "https://www.w3.org/TR/webrtc/#h-note-16", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-createoffer!overload-1-2", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-62", "https://www.w3.org/TR/webrtc/#issue-container-generatedID-17", "https://www.w3.org/TR/webrtc/#h-note-17", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-63", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-createoffer!overload-1-2", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-65", + "https://www.w3.org/TR/webrtc/#issue-container-generatedID-18", + "https://www.w3.org/TR/webrtc/#h-note-18", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-66", "https://www.w3.org/TR/webrtc/#method-extensions", "https://www.w3.org/TR/webrtc/#x4-4-3-1-method-extensions", "https://www.w3.org/TR/webrtc/#methods-0", "https://www.w3.org/TR/webrtc/#dom-rtcpeerconnection-createoffer!overload-1", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-64", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-67", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-createoffer-11", "https://www.w3.org/TR/webrtc/#ref-for-dfn-fulfill-7", "https://www.w3.org/TR/webrtc/#ref-for-dfn-reject-27", "https://www.w3.org/TR/webrtc/#ref-for-dfn-resolve-6", "https://www.w3.org/TR/webrtc/#dom-rtcpeerconnection-setlocaldescription!overload-1", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-65", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-68", "https://www.w3.org/TR/webrtc/#ref-for-dom-peerconnection-setlocaldescription-12", "https://www.w3.org/TR/webrtc/#ref-for-dfn-fulfill-8", "https://www.w3.org/TR/webrtc/#ref-for-dfn-reject-28", "https://www.w3.org/TR/webrtc/#ref-for-dfn-resolve-7", "https://www.w3.org/TR/webrtc/#dom-rtcpeerconnection-createanswer!overload-1", - "https://www.w3.org/TR/webrtc/#issue-container-generatedID-18", - "https://www.w3.org/TR/webrtc/#h-note-18", + "https://www.w3.org/TR/webrtc/#issue-container-generatedID-19", + "https://www.w3.org/TR/webrtc/#h-note-19", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcansweroptions-3", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-66", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-69", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-createanswer-5", "https://www.w3.org/TR/webrtc/#ref-for-dfn-fulfill-9", "https://www.w3.org/TR/webrtc/#ref-for-dfn-reject-29", "https://www.w3.org/TR/webrtc/#ref-for-dfn-resolve-8", "https://www.w3.org/TR/webrtc/#dom-rtcpeerconnection-setremotedescription!overload-1", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-67", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-70", "https://www.w3.org/TR/webrtc/#ref-for-dom-peerconnection-setremotedescription-8", "https://www.w3.org/TR/webrtc/#ref-for-dfn-fulfill-10", "https://www.w3.org/TR/webrtc/#ref-for-dfn-reject-30", "https://www.w3.org/TR/webrtc/#ref-for-dfn-resolve-9", "https://www.w3.org/TR/webrtc/#dom-rtcpeerconnection-addicecandidate!overload-1", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-68", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-71", "https://www.w3.org/TR/webrtc/#ref-for-dom-peerconnection-addicecandidate-8", "https://www.w3.org/TR/webrtc/#ref-for-dfn-fulfill-11", "https://www.w3.org/TR/webrtc/#ref-for-dfn-reject-31", @@ -1519,20 +1570,20 @@ "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsessiondescriptioninit-9", "https://www.w3.org/TR/webrtc/#legacy-configuration-extensions", "https://www.w3.org/TR/webrtc/#x4-4-3-2-legacy-configuration-extensions", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-69", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-13", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-72", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-11-dedup-70", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-createoffer-12", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-createoffer-13", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-70", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-sendrecv-7", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-73", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-sendrecv-9", "https://www.w3.org/TR/webrtc/#ref-for-dfn-transceiver-kind-1", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-direction-1", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-direction-1-dedup-71", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-sendonly-5", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-recvonly-8", "https://www.w3.org/TR/webrtc/#ref-for-dfn-transceiver-kind-2", "https://www.w3.org/TR/webrtc/#ref-for-dfn-direction-2", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-inactive-4", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-sendrecv-8", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-sendrecv-10", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-recvonly-9", "https://www.w3.org/TR/webrtc/#ref-for-dfn-transceiver-kind-3", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-addtransceiver-1", @@ -1552,11 +1603,11 @@ "https://www.w3.org/TR/webrtc/#dom-rtcofferoptions-offertoreceivevideo", "https://www.w3.org/TR/webrtc/#garbage-collection", "https://www.w3.org/TR/webrtc/#x4-4-4-garbage-collection", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-71", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-isclosed-20", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-74", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-isclosed-18", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-4", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-72", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-73", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-75", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-76", "https://www.w3.org/TR/webrtc/#error-handling", "https://www.w3.org/TR/webrtc/#x4-5-error-handling", "https://www.w3.org/TR/webrtc/#general-principles", @@ -1596,8 +1647,8 @@ "https://www.w3.org/TR/webrtc/#x4-6-2-rtcsessiondescription-class", "https://www.w3.org/TR/webrtc/#dom-rtcsessiondescription", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsessiondescription-20", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-74", - "https://www.w3.org/TR/webrtc/#webidl-845405358", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-77", + "https://www.w3.org/TR/webrtc/#webidl-1041858842", "https://www.w3.org/TR/webrtc/#idl-def-rtcsessiondescription", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsessiondescription-21", "https://www.w3.org/TR/webrtc/#idl-def-rtcsessiondescription-constructor-descriptioninitdict", @@ -1609,6 +1660,7 @@ "https://www.w3.org/TR/webrtc/#idl-def-rtcsessiondescription-sdp", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsessiondescription-sdp-5", "https://www.w3.org/TR/webrtc/#idl-def-rtcsessiondescription-tojson", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsessiondescriptioninit-12", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsessiondescription-tojson-1", "https://www.w3.org/TR/webrtc/#constructors-1", "https://www.w3.org/TR/webrtc/#dom-sessiondescription", @@ -1622,7 +1674,7 @@ "https://www.w3.org/TR/webrtc/#dom-rtcsessiondescription-tojson", "https://www.w3.org/TR/webrtc/#webidl-448034222", "https://www.w3.org/TR/webrtc/#idl-def-rtcsessiondescriptioninit", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsessiondescriptioninit-12", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsessiondescriptioninit-13", "https://www.w3.org/TR/webrtc/#idl-def-rtcsessiondescriptioninit-type", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsdptype-10", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsessiondescriptioninit-type-8", @@ -1648,21 +1700,21 @@ "https://www.w3.org/TR/webrtc/#dom-rtclocalsessiondescriptioninit-type", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsdptype-13", "https://www.w3.org/TR/webrtc/#ref-for-dom-peerconnection-setlocaldescription-13", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-75", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-signaling-state-22", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-78", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-signalingstate-22", "https://www.w3.org/TR/webrtc/#dom-rtclocalsessiondescriptioninit-sdp", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtclocalsessiondescriptioninit-type-2", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsdptype-rollback-8", "https://www.w3.org/TR/webrtc/#session-negotiation-model", "https://www.w3.org/TR/webrtc/#x4-7-session-negotiation-model", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-76", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-79", "https://www.w3.org/TR/webrtc/#ref-for-event-negotiation-2", "https://www.w3.org/TR/webrtc/#dfn-negotiation-needed-flag", "https://www.w3.org/TR/webrtc/#ref-for-dfn-negotiationneeded-1", "https://www.w3.org/TR/webrtc/#setting-negotiation-needed", "https://www.w3.org/TR/webrtc/#x4-7-1-setting-negotiation-needed", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-77", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-14", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-80", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-12", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-5", "https://www.w3.org/TR/webrtc/#ref-for-dfn-update-the-negotiation-needed-flag-5", "https://www.w3.org/TR/webrtc/#clearing-negotiation-needed", @@ -1670,11 +1722,11 @@ "https://www.w3.org/TR/webrtc/#ref-for-dfn-negotiation-needed-flag-1", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsdptype-answer-17", "https://www.w3.org/TR/webrtc/#ref-for-set-description-3", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-15", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-13", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-6", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-78", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-81", "https://www.w3.org/TR/webrtc/#ref-for-dfn-stopped-4", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-associated-7", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-associated-8", "https://www.w3.org/TR/webrtc/#ref-for-dfn-update-the-negotiation-needed-flag-6", "https://www.w3.org/TR/webrtc/#updating-the-negotiation-needed-flag", "https://www.w3.org/TR/webrtc/#x4-7-3-updating-the-negotiation-needed-flag", @@ -1682,13 +1734,13 @@ "https://www.w3.org/TR/webrtc/#dfn-update-the-negotiation-needed-flag", "https://www.w3.org/TR/webrtc/#ref-for-dfn-operations-7", "https://www.w3.org/TR/webrtc/#ref-for-dfn-updatenegotiationneededflagonemptychain-3", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-isclosed-21", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-isclosed-19", "https://www.w3.org/TR/webrtc/#ref-for-dfn-operations-8", "https://www.w3.org/TR/webrtc/#ref-for-dfn-updatenegotiationneededflagonemptychain-4", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-signaling-state-23", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-signalingstate-23", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsignalingstate-stable-15", - "https://www.w3.org/TR/webrtc/#issue-container-generatedID-19", - "https://www.w3.org/TR/webrtc/#h-note-19", + "https://www.w3.org/TR/webrtc/#issue-container-generatedID-20", + "https://www.w3.org/TR/webrtc/#h-note-20", "https://www.w3.org/TR/webrtc/#ref-for-dfn-negotiation-needed-flag-2", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsignalingstate-stable-16", "https://www.w3.org/TR/webrtc/#ref-for-set-description-4", @@ -1698,8 +1750,8 @@ "https://www.w3.org/TR/webrtc/#ref-for-dfn-negotiationneeded-3", "https://www.w3.org/TR/webrtc/#ref-for-dfn-negotiationneeded-4", "https://www.w3.org/TR/webrtc/#ref-for-event-negotiation-3", - "https://www.w3.org/TR/webrtc/#issue-container-generatedID-20", - "https://www.w3.org/TR/webrtc/#h-note-20", + "https://www.w3.org/TR/webrtc/#issue-container-generatedID-21", + "https://www.w3.org/TR/webrtc/#h-note-21", "https://www.w3.org/TR/webrtc/#ref-for-event-negotiation-4", "https://www.w3.org/TR/webrtc/#ref-for-event-negotiation-5", "https://www.w3.org/TR/webrtc/#ref-for-dfn-operations-chain-8", @@ -1707,29 +1759,29 @@ "https://www.w3.org/TR/webrtc/#ref-for-dfn-localicecredentialstoreplace-8", "https://www.w3.org/TR/webrtc/#ref-for-dfn-currentlocaldescription-10", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-7", - "https://www.w3.org/TR/webrtc/#ref-for-transceivers-set-13", + "https://www.w3.org/TR/webrtc/#ref-for-transceivers-set-14", "https://www.w3.org/TR/webrtc/#ref-for-dfn-stopping-1", "https://www.w3.org/TR/webrtc/#ref-for-dfn-stopped-0-5", "https://www.w3.org/TR/webrtc/#ref-for-dfn-stopped-5", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-associated-8", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-stopped-6", "https://www.w3.org/TR/webrtc/#ref-for-dfn-associated-9", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-stopped-6", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-associated-10", "https://www.w3.org/TR/webrtc/#ref-for-dfn-direction-4", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-sendrecv-9", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-sendrecv-11", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-sendonly-6", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-associated-10", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-associated-11", "https://www.w3.org/TR/webrtc/#ref-for-dfn-associatedmediastreamids-1", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsdptype-offer-17", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-associated-11", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-associated-12", "https://www.w3.org/TR/webrtc/#ref-for-dfn-currentlocaldescription-11", "https://www.w3.org/TR/webrtc/#ref-for-dfn-currentremotedescription-10", "https://www.w3.org/TR/webrtc/#ref-for-dfn-direction-5", "https://www.w3.org/TR/webrtc/#ref-for-dfn-currentremotedescription-11", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsdptype-answer-18", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-associated-12", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-associated-13", "https://www.w3.org/TR/webrtc/#ref-for-dfn-direction-6", "https://www.w3.org/TR/webrtc/#ref-for-dfn-stopped-7", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-associated-13", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-associated-14", "https://www.w3.org/TR/webrtc/#ref-for-dfn-currentlocaldescription-12", "https://www.w3.org/TR/webrtc/#ref-for-dfn-currentremotedescription-12", "https://www.w3.org/TR/webrtc/#interfaces-for-interactive-connectivity-establishment", @@ -1737,65 +1789,19 @@ "https://www.w3.org/TR/webrtc/#rtcicecandidate-interface", "https://www.w3.org/TR/webrtc/#x4-8-1-rtcicecandidate-interface", "https://www.w3.org/TR/webrtc/#dom-rtcicecandidate", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidateinit-candidate-1", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidateinit-sdpmid-1", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidateinit-sdpmlineindex-1", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidateinit-usernamefragment-1", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidateinit-candidate-2", - "https://www.w3.org/TR/webrtc/#webidl-rtcicecandidate-change-wrapper", - "https://www.w3.org/TR/webrtc/#webidl-rtcicecandidate", - "https://www.w3.org/TR/webrtc/#webidl-rtcicecandidate-new", - "https://www.w3.org/TR/webrtc/#idl-def-rtcicecandidate", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-2", - "https://www.w3.org/TR/webrtc/#idl-def-rtcicecandidate-constructor-candidateinitdict", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-constructor-1", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidateinit-3", - "https://www.w3.org/TR/webrtc/#idl-def-rtcicecandidate-candidate", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-candidate-5", - "https://www.w3.org/TR/webrtc/#idl-def-rtcicecandidate-sdpmid", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-sdpmid-7", - "https://www.w3.org/TR/webrtc/#idl-def-rtcicecandidate-sdpmlineindex", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-sdpmlineindex-7", - "https://www.w3.org/TR/webrtc/#idl-def-rtcicecandidate-foundation", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-foundation-1", - "https://www.w3.org/TR/webrtc/#idl-def-rtcicecandidate-component", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecomponent-1", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-component-1", - "https://www.w3.org/TR/webrtc/#idl-def-rtcicecandidate-priority", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-priority-1", - "https://www.w3.org/TR/webrtc/#idl-def-rtcicecandidate-address", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-address-2", - "https://www.w3.org/TR/webrtc/#idl-def-rtcicecandidate-protocol", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtciceprotocol-1", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-protocol-1", - "https://www.w3.org/TR/webrtc/#idl-def-rtcicecandidate-port", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-port-1", - "https://www.w3.org/TR/webrtc/#idl-def-rtcicecandidate-type", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidatetype-1", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-type-1", - "https://www.w3.org/TR/webrtc/#idl-def-rtcicecandidate-tcptype", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetcpcandidatetype-1", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-tcptype-1", - "https://www.w3.org/TR/webrtc/#idl-def-rtcicecandidate-relatedaddress", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-relatedaddress-1", - "https://www.w3.org/TR/webrtc/#idl-def-rtcicecandidate-relatedport", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-relatedport-1", - "https://www.w3.org/TR/webrtc/#idl-def-rtcicecandidate-usernamefragment", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-usernamefragment-5", - "https://www.w3.org/TR/webrtc/#idl-def-rtcicecandidate-relayprotocol", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtciceservertransportprotocol-1", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-relayprotocol-1", - "https://www.w3.org/TR/webrtc/#idl-def-rtcicecandidate-url", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-url-1", - "https://www.w3.org/TR/webrtc/#idl-def-rtcicecandidate-tojson", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidateinit-4", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-tojson-1", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidateinit-candidate-1", + "https://www.w3.org/TR/webrtc/#webidl-rtcicecandidate-change-wrapper", + "https://www.w3.org/TR/webrtc/#webidl-rtcicecandidate", "https://www.w3.org/TR/webrtc/#constructor-0", "https://www.w3.org/TR/webrtc/#dom-rtcicecandidate-constructor", "https://www.w3.org/TR/webrtc/#dfn-rtcicecandidate", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-3", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidateinit-sdpmid-2", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidateinit-sdpmlineindex-2", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidateinit-sdpmid-1", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidateinit-sdpmlineindex-1", "https://www.w3.org/TR/webrtc/#ref-for-dfn-creating-an-rtcicecandidate-1", "https://www.w3.org/TR/webrtc/#dfn-creating-an-rtcicecandidate", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-4", @@ -1809,24 +1815,24 @@ "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-tcptype-2", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-relatedaddress-2", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-relatedport-2", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-candidate-6", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-sdpmid-8", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-sdpmlineindex-8", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-usernamefragment-6", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidateinit-candidate-3", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-candidate-7", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-sdpmid-9", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-sdpmlineindex-9", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-usernamefragment-7", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidateinit-candidate-2", "https://www.w3.org/TR/webrtc/#ref-for-dfn-candidate-attribute-1", "https://www.w3.org/TR/webrtc/#ref-for-dfn-candidate-attribute-2", - "https://www.w3.org/TR/webrtc/#issue-container-generatedID-21", - "https://www.w3.org/TR/webrtc/#h-note-21", + "https://www.w3.org/TR/webrtc/#issue-container-generatedID-22", + "https://www.w3.org/TR/webrtc/#h-note-22", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-5", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidateinit-candidate-4", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidateinit-sdpmid-3", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidateinit-sdpmlineindex-3", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidateinit-usernamefragment-2", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidateinit-candidate-3", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidateinit-sdpmid-2", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidateinit-sdpmlineindex-2", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidateinit-usernamefragment-1", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-6", "https://www.w3.org/TR/webrtc/#ref-for-dom-peerconnection-addicecandidate-9", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-candidate-7", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidateinit-candidate-5", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-candidate-8", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidateinit-candidate-4", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-foundation-3", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-priority-3", "https://www.w3.org/TR/webrtc/#attributes-4", @@ -1834,13 +1840,13 @@ "https://www.w3.org/TR/webrtc/#dom-rtcicecandidate-candidate", "https://www.w3.org/TR/webrtc/#ref-for-dfn-candidate-attribute-3", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-7", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-candidate-8", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-candidate-9", "https://www.w3.org/TR/webrtc/#dom-rtcicecandidate-sdpmid", "https://www.w3.org/TR/webrtc/#dfn-media-stream-identification-tag", "https://www.w3.org/TR/webrtc/#dom-rtcicecandidate-sdpmlineindex", "https://www.w3.org/TR/webrtc/#ref-for-dfn-media-description-24", "https://www.w3.org/TR/webrtc/#dom-rtcicecandidate-foundation", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-22", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-17", "https://www.w3.org/TR/webrtc/#dom-rtcicecandidate-component", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecomponent-2", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecomponent-rtp-1", @@ -1853,13 +1859,13 @@ "https://www.w3.org/TR/webrtc/#ref-for-dfn-selectedcandidatepair-1", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidatepair-remote-1", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-address-4", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-79", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-82", "https://www.w3.org/TR/webrtc/#ref-for-dom-peerconnection-addicecandidate-10", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-address-5", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-8", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-80", - "https://www.w3.org/TR/webrtc/#issue-container-generatedID-22", - "https://www.w3.org/TR/webrtc/#h-note-22", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-83", + "https://www.w3.org/TR/webrtc/#issue-container-generatedID-23", + "https://www.w3.org/TR/webrtc/#h-note-23", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-9", "https://www.w3.org/TR/webrtc/#ref-for-dfn-ice-agent-24", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcconfiguration-icetransportpolicy-5", @@ -1889,42 +1895,41 @@ "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-relatedport-4", "https://www.w3.org/TR/webrtc/#ref-for-dfn-candidate-attribute-10", "https://www.w3.org/TR/webrtc/#dom-rtcicecandidate-usernamefragment", - "https://www.w3.org/TR/webrtc/#usernameFragment-desc", - "https://www.w3.org/TR/webrtc/#usernameFragment-desc-change-wrapper", - "https://www.w3.org/TR/webrtc/#usernameFragment-desc-new-0", + "https://www.w3.org/TR/webrtc/#rtcicecandidate-relayprotocol", + "https://www.w3.org/TR/webrtc/#rtcicecandidate-relayprotocol-change-wrapper", "https://www.w3.org/TR/webrtc/#dom-rtcicecandidate-relayprotocol", - "https://www.w3.org/TR/webrtc/#usernameFragment-desc-new-1", - "https://www.w3.org/TR/webrtc/#usernameFragment-desc-new-2", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidatetype-relay-1", + "https://www.w3.org/TR/webrtc/#rtcicecandidate-url", + "https://www.w3.org/TR/webrtc/#rtcicecandidate-url-change-wrapper", "https://www.w3.org/TR/webrtc/#dom-rtcicecandidate-url", - "https://www.w3.org/TR/webrtc/#usernameFragment-desc-new-3", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidatetype-srflx-1", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidatetype-relay-1", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidatetype-relay-2", "https://www.w3.org/TR/webrtc/#methods-2", "https://www.w3.org/TR/webrtc/#dom-rtcicecandidate-tojson", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-tojson-2", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-10", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidateinit-5", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-candidate-9", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-sdpmid-9", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-sdpmlineindex-9", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-usernamefragment-7", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-candidate-10", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-sdpmid-10", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-sdpmlineindex-10", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-usernamefragment-8", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-11", "https://www.w3.org/TR/webrtc/#webidl-150560046", "https://www.w3.org/TR/webrtc/#idl-def-rtcicecandidateinit", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidateinit-6", "https://www.w3.org/TR/webrtc/#idl-def-rtcicecandidateinit-candidate", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidateinit-candidate-6", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidateinit-candidate-5", "https://www.w3.org/TR/webrtc/#idl-def-rtcicecandidateinit-sdpmid", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidateinit-sdpmid-4", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidateinit-sdpmid-3", "https://www.w3.org/TR/webrtc/#idl-def-rtcicecandidateinit-sdpmlineindex", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidateinit-sdpmlineindex-4", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidateinit-sdpmlineindex-3", "https://www.w3.org/TR/webrtc/#idl-def-rtcicecandidateinit-usernamefragment", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidateinit-usernamefragment-3", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidateinit-usernamefragment-2", "https://www.w3.org/TR/webrtc/#dictionary-rtcicecandidateinit-members", "https://www.w3.org/TR/webrtc/#dom-rtcicecandidateinit", "https://www.w3.org/TR/webrtc/#dom-rtcicecandidateinit-candidate", "https://www.w3.org/TR/webrtc/#ref-for-dfn-candidate-attribute-11", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidateinit-candidate-7", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidateinit-candidate-6", "https://www.w3.org/TR/webrtc/#dom-rtcicecandidateinit-sdpmid", "https://www.w3.org/TR/webrtc/#ref-for-dfn-media-stream-identification-tag-1", "https://www.w3.org/TR/webrtc/#dom-rtcicecandidateinit-sdpmlineindex", @@ -1934,7 +1939,7 @@ "https://www.w3.org/TR/webrtc/#x4-8-1-1-candidate-attribute-grammar", "https://www.w3.org/TR/webrtc/#dfn-candidate-attribute", "https://www.w3.org/TR/webrtc/#ref-for-dfn-candidate-attribute-12", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidateinit-candidate-8", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidateinit-candidate-7", "https://www.w3.org/TR/webrtc/#ref-for-dfn-rtcicecandidate-1", "https://www.w3.org/TR/webrtc/#ref-for-dfn-candidate-attribute-13", "https://www.w3.org/TR/webrtc/#ref-for-dfn-candidate-attribute-14", @@ -1967,8 +1972,8 @@ "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetcpcandidatetype-passive-2", "https://www.w3.org/TR/webrtc/#dom-rtcicetcpcandidatetype-so", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetcpcandidatetype-so-2", - "https://www.w3.org/TR/webrtc/#issue-container-generatedID-23", - "https://www.w3.org/TR/webrtc/#h-note-23", + "https://www.w3.org/TR/webrtc/#issue-container-generatedID-24", + "https://www.w3.org/TR/webrtc/#h-note-24", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetcpcandidatetype-active-3", "https://www.w3.org/TR/webrtc/#rtcicecandidatetype-enum", "https://www.w3.org/TR/webrtc/#x4-8-1-4-rtcicecandidatetype-enum", @@ -1980,13 +1985,14 @@ "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidatetype-host-1", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidatetype-srflx-2", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidatetype-prflx-1", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidatetype-relay-2", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidatetype-relay-3", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidatetype-5", "https://www.w3.org/TR/webrtc/#dom-rtcicecandidatetype-host", "https://www.w3.org/TR/webrtc/#dom-rtcicecandidatetype-srflx", "https://www.w3.org/TR/webrtc/#dom-rtcicecandidatetype-prflx", "https://www.w3.org/TR/webrtc/#dom-rtcicecandidatetype-relay", "https://www.w3.org/TR/webrtc/#rtciceservertransportprotocol-enum", + "https://www.w3.org/TR/webrtc/#rtciceservertransportprotocol-enum-change-wrapper", "https://www.w3.org/TR/webrtc/#x4-8-1-5-rtciceservertransportprotocol-enum", "https://www.w3.org/TR/webrtc/#dom-rtciceservertransportprotocol", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtciceservertransportprotocol-2", @@ -2003,38 +2009,38 @@ "https://www.w3.org/TR/webrtc/#rtcpeerconnectioniceevent", "https://www.w3.org/TR/webrtc/#x4-8-2-rtcpeerconnectioniceevent", "https://www.w3.org/TR/webrtc/#dom-rtcpeerconnectioniceevent", - "https://www.w3.org/TR/webrtc/#ref-for-event-icecandidate-3", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-81", + "https://www.w3.org/TR/webrtc/#ref-for-event-icecandidate-2", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-84", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnectioniceevent-1", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnectioniceevent-2", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnectioniceevent-3", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-12", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-sdpmid-10", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-sdpmlineindex-10", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-sdpmid-11", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-sdpmlineindex-11", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-13", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidatetype-srflx-3", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidatetype-relay-3", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidatetype-relay-4", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnectioniceevent-url-1", - "https://www.w3.org/TR/webrtc/#issue-container-generatedID-24", - "https://www.w3.org/TR/webrtc/#h-note-24", - "https://www.w3.org/TR/webrtc/#ref-for-event-icecandidate-4", + "https://www.w3.org/TR/webrtc/#issue-container-generatedID-25", + "https://www.w3.org/TR/webrtc/#h-note-25", + "https://www.w3.org/TR/webrtc/#ref-for-event-icecandidate-3", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnectioniceevent-candidate-1", "https://www.w3.org/TR/webrtc/#ref-for-dom-peerconnection-addicecandidate-11", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-23", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-18", "https://www.w3.org/TR/webrtc/#ref-for-dfn-generation-6", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnectioniceevent-candidate-2", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-candidate-10", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-candidate-11", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnectioniceevent-candidate-3", "https://www.w3.org/TR/webrtc/#ref-for-dom-peerconnection-addicecandidate-12", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-24", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-82", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicegatheringstate-6", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicegatheringstate-complete-3", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-19", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-85", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicegatheringstate-5", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicegatheringstate-complete-2", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnectioniceevent-candidate-4", - "https://www.w3.org/TR/webrtc/#ref-for-event-icegatheringstatechange-3", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicegatheringstate-complete-4", + "https://www.w3.org/TR/webrtc/#ref-for-event-icegatheringstatechange-2", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicegatheringstate-complete-3", "https://www.w3.org/TR/webrtc/#webidl-rtcpeerconnectioniceevent", "https://www.w3.org/TR/webrtc/#idl-def-rtcpeerconnectioniceevent", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnectioniceevent-4", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnectioniceevent-3", "https://www.w3.org/TR/webrtc/#idl-def-rtcpeerconnectioniceevent-constructor-type-eventinitdict", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnectioniceevent-constructor-1", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnectioniceeventinit-1", @@ -2046,19 +2052,16 @@ "https://www.w3.org/TR/webrtc/#constructors-2", "https://www.w3.org/TR/webrtc/#dom-rtcpeerconnectioniceevent-constructor", "https://www.w3.org/TR/webrtc/#attributes-5", - "https://www.w3.org/TR/webrtc/#rtcpeerconnectioniceevent-attributes-change-wrapper", - "https://www.w3.org/TR/webrtc/#rtcpeerconnectioniceevent-attributes", - "https://www.w3.org/TR/webrtc/#rtcpeerconnectioniceevent-attributes-new", "https://www.w3.org/TR/webrtc/#dom-rtcpeerconnectioniceevent-candidate", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-15", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnectioniceevent-candidate-6", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-16", - "https://www.w3.org/TR/webrtc/#issue-container-generatedID-25", - "https://www.w3.org/TR/webrtc/#h-note-25", - "https://www.w3.org/TR/webrtc/#dom-rtcpeerconnectioniceevent-url", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnectioniceevent-url-3", "https://www.w3.org/TR/webrtc/#issue-container-generatedID-26", "https://www.w3.org/TR/webrtc/#h-note-26", + "https://www.w3.org/TR/webrtc/#dom-rtcpeerconnectioniceevent-url", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnectioniceevent-url-3", + "https://www.w3.org/TR/webrtc/#rtcpeerconnectioniceevent-url-deprecation-change-wrapper", + "https://www.w3.org/TR/webrtc/#rtcpeerconnectioniceevent-url-deprecation", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-url-2", "https://www.w3.org/TR/webrtc/#webidl-1596682857", "https://www.w3.org/TR/webrtc/#idl-def-rtcpeerconnectioniceeventinit", @@ -2073,14 +2076,14 @@ "https://www.w3.org/TR/webrtc/#dom-rtcpeerconnectioniceeventinit-candidate", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-18", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnectioniceevent-candidate-7", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnectioniceevent-5", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnectioniceevent-4", "https://www.w3.org/TR/webrtc/#dom-rtcpeerconnectioniceeventinit-url", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnectioniceeventinit-url-2", "https://www.w3.org/TR/webrtc/#rtcpeerconnectioniceerrorevent", "https://www.w3.org/TR/webrtc/#x4-8-3-rtcpeerconnectioniceerrorevent", "https://www.w3.org/TR/webrtc/#dom-rtcpeerconnectioniceerrorevent", "https://www.w3.org/TR/webrtc/#ref-for-event-icecandidateerror-2", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-83", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-86", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnectioniceerrorevent-1", "https://www.w3.org/TR/webrtc/#webidl-67994594", "https://www.w3.org/TR/webrtc/#idl-def-rtcpeerconnectioniceerrorevent", @@ -2113,7 +2116,7 @@ "https://www.w3.org/TR/webrtc/#dom-rtcpeerconnectioniceerrorevent-errorcode", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnectioniceerrorevent-errorcode-2", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnectioniceerrorevent-errorcode-3", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicegatheringstate-7", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicegatheringstate-6", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicegatheringstate-gathering-2", "https://www.w3.org/TR/webrtc/#dom-rtcpeerconnectioniceerrorevent-errortext", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnectioniceerrorevent-errortext-2", @@ -2140,17 +2143,17 @@ "https://www.w3.org/TR/webrtc/#dom-rtcpeerconnectioniceerroreventinit-errortext", "https://www.w3.org/TR/webrtc/#certificate-management", "https://www.w3.org/TR/webrtc/#sec.cert-mgmt", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-84", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-87", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtccertificate-5", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-generatecertificate-2", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcconfiguration-12", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-85", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-88", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcconfiguration-certificates-11", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-86", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-89", "https://www.w3.org/TR/webrtc/#ref-for-dfn-user-agent-1", "https://www.w3.org/TR/webrtc/#webidl-590437571", "https://www.w3.org/TR/webrtc/#idl-def-rtcpeerconnection-partial-1", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-87", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-90", "https://www.w3.org/TR/webrtc/#idl-def-rtcpeerconnection-generatecertificate-keygenalgorithm", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtccertificate-6", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-generatecertificate-3", @@ -2160,12 +2163,12 @@ "https://www.w3.org/TR/webrtc/#ref-for-dfn-user-agent-2", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtccertificate-7", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtccertificate-8", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-88", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-91", "https://www.w3.org/TR/webrtc/#ref-for-dfn-user-agent-3", "https://www.w3.org/TR/webrtc/#issue-container-generatedID-27", "https://www.w3.org/TR/webrtc/#h-note-27", "https://www.w3.org/TR/webrtc/#ref-for-dfn-user-agent-4", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-89", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-92", "https://www.w3.org/TR/webrtc/#ref-for-dfn-user-agent-5", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-generatecertificate-5", "https://www.w3.org/TR/webrtc/#issue-container-generatedID-28", @@ -2179,10 +2182,10 @@ "https://www.w3.org/TR/webrtc/#h-note-29", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-generatecertificate-7", "https://www.w3.org/TR/webrtc/#ref-for-dfn-user-agent-6", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-90", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-93", "https://www.w3.org/TR/webrtc/#ref-for-dfn-reject-33", "https://www.w3.org/TR/webrtc/#ref-for-dfn-user-agent-7", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-91", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-94", "https://www.w3.org/TR/webrtc/#ref-for-dfn-reject-34", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtccertificate-9", "https://www.w3.org/TR/webrtc/#ref-for-dfn-origin-2", @@ -2191,16 +2194,12 @@ "https://www.w3.org/TR/webrtc/#rtccertificateexpiration-dictionary-change-wrapper", "https://www.w3.org/TR/webrtc/#rtccertificateexpiration-dictionary", "https://www.w3.org/TR/webrtc/#x4-9-1-rtccertificateexpiration-dictionary", - "https://www.w3.org/TR/webrtc/#rtccertificateexpiration-dictionary-new", - "https://www.w3.org/TR/webrtc/#x4-9-1-rtccertificateexpiration-dictionary-dedup-3", "https://www.w3.org/TR/webrtc/#dom-rtccertificateexpiration", + "https://www.w3.org/TR/webrtc/#x4-9-1-rtccertificateexpiration-dictionary-dedup-72", + "https://www.w3.org/TR/webrtc/#dom-rtccertificateexpiration-dedup-73", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtccertificateexpiration-2", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-generatecertificate-8", "https://www.w3.org/TR/webrtc/#webidl-1275151633", - "https://www.w3.org/TR/webrtc/#idl-def-rtccertificateexpiration", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtccertificateexpiration-3", - "https://www.w3.org/TR/webrtc/#idl-def-rtccertificateexpiration-expires", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtccertificateexpiration-expires-3", "https://www.w3.org/TR/webrtc/#dom-rtccertificateexpiration-expires", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtccertificateexpiration-expires-4", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-generatecertificate-9", @@ -2208,28 +2207,21 @@ "https://www.w3.org/TR/webrtc/#rtccertificate-interface-change-wrapper", "https://www.w3.org/TR/webrtc/#rtccertificate-interface", "https://www.w3.org/TR/webrtc/#x4-9-2-rtccertificate-interface", - "https://www.w3.org/TR/webrtc/#attributes-7", - "https://www.w3.org/TR/webrtc/#methods-4", - "https://www.w3.org/TR/webrtc/#rtccertificate-interface-new", - "https://www.w3.org/TR/webrtc/#x4-9-2-rtccertificate-interface-dedup-4", "https://www.w3.org/TR/webrtc/#dom-rtccertificate", + "https://www.w3.org/TR/webrtc/#x4-9-2-rtccertificate-interface-dedup-74", + "https://www.w3.org/TR/webrtc/#dom-rtccertificate-dedup-75", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtccertificate-11", "https://www.w3.org/TR/webrtc/#dfn-keyingmaterialhandle", "https://www.w3.org/TR/webrtc/#dfn-certificate", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-92", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-95", "https://www.w3.org/TR/webrtc/#dfn-origin", "https://www.w3.org/TR/webrtc/#webidl-1688346430", - "https://www.w3.org/TR/webrtc/#idl-def-rtccertificate", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtccertificate-12", - "https://www.w3.org/TR/webrtc/#idl-def-rtccertificate-expires", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtccertificate-expires-2", - "https://www.w3.org/TR/webrtc/#idl-def-rtccertificate-getfingerprints", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlsfingerprint-1", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtccertificate-getfingerprints-1", - "https://www.w3.org/TR/webrtc/#attributes-7-dedup-5", + "https://www.w3.org/TR/webrtc/#attributes-7", + "https://www.w3.org/TR/webrtc/#attributes-7-dedup-76", "https://www.w3.org/TR/webrtc/#dom-rtccertificate-expires", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-93", - "https://www.w3.org/TR/webrtc/#methods-4-dedup-6", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-96", + "https://www.w3.org/TR/webrtc/#methods-4", + "https://www.w3.org/TR/webrtc/#methods-4-dedup-77", "https://www.w3.org/TR/webrtc/#dom-rtccertificate-getfingerprints", "https://www.w3.org/TR/webrtc/#ref-for-dfn-certificate-2", "https://www.w3.org/TR/webrtc/#ref-for-dfn-keyingmaterialhandle-2", @@ -2248,49 +2240,49 @@ "https://www.w3.org/TR/webrtc/#issue-container-generatedID-30", "https://www.w3.org/TR/webrtc/#h-note-30", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtccertificate-15", + "https://www.w3.org/TR/webrtc/#issue-container-generatedID-30-dedup-78", "https://www.w3.org/TR/webrtc/#rtp-media-api", "https://www.w3.org/TR/webrtc/#x5-rtp-media-api", "https://www.w3.org/TR/webrtc/#dfn-rtp-media-api", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-94", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-97", "https://www.w3.org/TR/webrtc/#issue-container-generatedID-31", "https://www.w3.org/TR/webrtc/#h-note-31", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-95", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-98", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-replacetrack-1", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-8", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-5", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-4", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-1", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-addtransceiver-2", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-replacetrack-2", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-9", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-6", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-16", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-5-dedup-79", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-2", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-14", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtptransceiver-mid-1", "https://www.w3.org/TR/webrtc/#issue-container-generatedID-32", "https://www.w3.org/TR/webrtc/#h-note-32", "https://www.w3.org/TR/webrtc/#rtp-video-rescaled-change-wrapper", "https://www.w3.org/TR/webrtc/#rtp-video-rescaled", - "https://www.w3.org/TR/webrtc/#rtp-video-rescaled-new", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpencodingparameters-scaleresolutiondownby-2", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpencodingparameters-scaleresolutiondownby-3", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-10", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-7", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-11", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-8", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-12", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-96", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-6-dedup-80", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-3-dedup-81", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-7-dedup-82", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-4-dedup-83", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-8-dedup-84", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-99", "https://www.w3.org/TR/webrtc/#transceivers-set", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-97", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-13", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-9", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-17", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-18", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-98", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-100", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-9", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-5", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-15", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-16", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-101", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-addtrack-3", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-addtransceiver-3", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-10", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-6", "https://www.w3.org/TR/webrtc/#ref-for-event-track-2", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-19", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-20", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-associated-14", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-17", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-18", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-associated-15", "https://www.w3.org/TR/webrtc/#ref-for-dfn-media-description-26", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-addtrack-4", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-addtransceiver-4", @@ -2300,27 +2292,27 @@ "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-addtrack-7", "https://www.w3.org/TR/webrtc/#rtcpeerconnection-interface-extensions", "https://www.w3.org/TR/webrtc/#x5-1-rtcpeerconnection-interface-extensions", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-99", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-102", "https://www.w3.org/TR/webrtc/#webidl-355941595", "https://www.w3.org/TR/webrtc/#idl-def-rtcpeerconnection-partial-2", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-100", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-103", "https://www.w3.org/TR/webrtc/#idl-def-rtcpeerconnection-getsenders", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-14", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-10", "https://www.w3.org/TR/webrtc/#ref-for-dom-peerconnection-getsenders-1", "https://www.w3.org/TR/webrtc/#idl-def-rtcpeerconnection-getreceivers", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-11", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-7", "https://www.w3.org/TR/webrtc/#ref-for-dom-peerconnection-getreceivers-1", "https://www.w3.org/TR/webrtc/#idl-def-rtcpeerconnection-gettransceivers", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-21", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-19", "https://www.w3.org/TR/webrtc/#ref-for-dom-peerconnection-gettranseceivers-1", "https://www.w3.org/TR/webrtc/#idl-def-rtcpeerconnection-addtrack-track-streams", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-15", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-11", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-addtrack-8", "https://www.w3.org/TR/webrtc/#idl-def-rtcpeerconnection-removetrack-sender", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-removetrack-1", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-16", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-12", "https://www.w3.org/TR/webrtc/#idl-def-rtcpeerconnection-addtransceiver-trackorkind-init", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-22", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-20", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-addtransceiver-6", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverinit-1", "https://www.w3.org/TR/webrtc/#idl-def-rtcpeerconnection-ontrack", @@ -2330,9 +2322,9 @@ "https://www.w3.org/TR/webrtc/#ref-for-event-track-3", "https://www.w3.org/TR/webrtc/#methods-5", "https://www.w3.org/TR/webrtc/#dom-peerconnection-getsenders", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-17", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-23", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-101", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-13", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-21", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-104", "https://www.w3.org/TR/webrtc/#ref-for-dom-peerconnection-getsenders-2", "https://www.w3.org/TR/webrtc/#ref-for-dfn-collectsenders-1", "https://www.w3.org/TR/webrtc/#dfn-collectsenders", @@ -2340,49 +2332,49 @@ "https://www.w3.org/TR/webrtc/#ref-for-dfn-stopped-0-6", "https://www.w3.org/TR/webrtc/#ref-for-dfn-sender-31", "https://www.w3.org/TR/webrtc/#dom-peerconnection-getreceivers", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-12", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-24", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-102", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-8", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-22", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-105", "https://www.w3.org/TR/webrtc/#ref-for-dom-peerconnection-getreceivers-2", "https://www.w3.org/TR/webrtc/#ref-for-dfn-collecttransceivers-3", "https://www.w3.org/TR/webrtc/#ref-for-dfn-stopped-0-7", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-receiver-19", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-receiver-21", "https://www.w3.org/TR/webrtc/#dom-peerconnection-gettranseceivers", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-25", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-103", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-23", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-106", "https://www.w3.org/TR/webrtc/#ref-for-dom-peerconnection-gettranseceivers-2", "https://www.w3.org/TR/webrtc/#ref-for-dfn-collecttransceivers-4", "https://www.w3.org/TR/webrtc/#dfn-collecttransceivers", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-26", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-104", - "https://www.w3.org/TR/webrtc/#ref-for-transceivers-set-14", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-24", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-107", + "https://www.w3.org/TR/webrtc/#ref-for-transceivers-set-15", "https://www.w3.org/TR/webrtc/#dom-rtcpeerconnection-addtrack", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-105", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-108", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-addtrack-9", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-106", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-isclosed-22", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-109", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-isclosed-20", "https://www.w3.org/TR/webrtc/#ref-for-dfn-collectsenders-2", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-18", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-14", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-createoffer-15", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-createanswer-6", "https://www.w3.org/TR/webrtc/#ref-for-dfn-media-description-27", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-19", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-15", "https://www.w3.org/TR/webrtc/#ref-for-dfn-transceiver-kind-4", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-27", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-25", "https://www.w3.org/TR/webrtc/#ref-for-dfn-stopping-2", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-28", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-26", "https://www.w3.org/TR/webrtc/#ref-for-dfn-currentdirection-4", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-29", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-sendrecv-10", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-27", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-sendrecv-12", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-sendonly-7", "https://www.w3.org/TR/webrtc/#ref-for-dfn-sendertrack-1", "https://www.w3.org/TR/webrtc/#ref-for-dfn-associatedmediastreamids-2", "https://www.w3.org/TR/webrtc/#ref-for-dfn-associatedmediastreamids-3", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-30", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-28", "https://www.w3.org/TR/webrtc/#ref-for-dfn-direction-7", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-recvonly-11", "https://www.w3.org/TR/webrtc/#ref-for-dfn-direction-8", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-sendrecv-11", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-sendrecv-13", "https://www.w3.org/TR/webrtc/#ref-for-dfn-direction-9", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-inactive-5", "https://www.w3.org/TR/webrtc/#ref-for-dfn-direction-10", @@ -2391,13 +2383,13 @@ "https://www.w3.org/TR/webrtc/#ref-for-dfn-create-an-rtcrtpreceiver-2", "https://www.w3.org/TR/webrtc/#ref-for-dfn-create-an-rtcrtptransceiver-2", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-4", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-sendrecv-12", - "https://www.w3.org/TR/webrtc/#ref-for-transceivers-set-15", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-sendrecv-14", + "https://www.w3.org/TR/webrtc/#ref-for-transceivers-set-16", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-addtrack-10", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-20", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-16", "https://www.w3.org/TR/webrtc/#ref-for-dfn-update-the-negotiation-needed-flag-8", "https://www.w3.org/TR/webrtc/#dom-rtcpeerconnection-removetrack", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-21", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-17", "https://www.w3.org/TR/webrtc/#ref-for-dom-peerconnection-getsenders-3", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-createoffer-16", "https://www.w3.org/TR/webrtc/#ref-for-dfn-media-description-28", @@ -2407,25 +2399,30 @@ "https://www.w3.org/TR/webrtc/#issue-container-generatedID-33", "https://www.w3.org/TR/webrtc/#h-note-33", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-removetrack-2", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-31", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-direction-7", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-22", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-29", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-direction-5", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-18", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-replacetrack-3", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-replacetrack-4", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-removetrack-3", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-removetrack-4", + "https://www.w3.org/TR/webrtc/#removetrack-algo-change-wrapper", + "https://www.w3.org/TR/webrtc/#removetrack-algo", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-removetrack-5", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-107", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-isclosed-23", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-110", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-isclosed-21", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-30", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-stopping-3", "https://www.w3.org/TR/webrtc/#ref-for-dfn-collectsenders-3", "https://www.w3.org/TR/webrtc/#ref-for-set-description-5", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsessiondescriptioninit-type-10", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsdptype-rollback-9", "https://www.w3.org/TR/webrtc/#ref-for-dfn-sendertrack-2", "https://www.w3.org/TR/webrtc/#ref-for-dfn-sendertrack-3", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-32", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-33", "https://www.w3.org/TR/webrtc/#ref-for-dfn-direction-11", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-sendrecv-13", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-sendrecv-15", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-sendrecv-15-dedup-85", "https://www.w3.org/TR/webrtc/#ref-for-dfn-direction-12", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-recvonly-13", "https://www.w3.org/TR/webrtc/#ref-for-dfn-direction-13", @@ -2434,36 +2431,55 @@ "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-inactive-7", "https://www.w3.org/TR/webrtc/#ref-for-dfn-update-the-negotiation-needed-flag-9", "https://www.w3.org/TR/webrtc/#dom-rtcpeerconnection-addtransceiver", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-33", - "https://www.w3.org/TR/webrtc/#ref-for-transceivers-set-16", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-31", + "https://www.w3.org/TR/webrtc/#ref-for-transceivers-set-17", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-createoffer-17", "https://www.w3.org/TR/webrtc/#ref-for-dfn-media-description-29", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtptransceiver-mid-2", "https://www.w3.org/TR/webrtc/#ref-for-set-description-6", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverinit-sendencodings-1", - "https://www.w3.org/TR/webrtc/#addtransceiver-algo-change-wrapper", "https://www.w3.org/TR/webrtc/#addtransceiver-algo", - "https://www.w3.org/TR/webrtc/#addtransceiver-algo-new", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverinit-streams-1", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverinit-sendencodings-2", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverinit-direction-1", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-isclosed-24", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-isclosed-22", + "https://www.w3.org/TR/webrtc/#dfn-addtransceiver-sendencodings-validation-steps", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpencodingparameters-2", "https://www.w3.org/TR/webrtc/#addtransceiver-sendencodings-validation", + "https://www.w3.org/TR/webrtc/#rid-validation-change-wrapper", + "https://www.w3.org/TR/webrtc/#rid-validation", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcodingparameters-rid-2-dedup-86", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcodingparameters-rid-6", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcodingparameters-rid-7", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcodingparameters-rid-8", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcodingparameters-rid-9", "https://www.w3.org/TR/webrtc/#ref-for-dfn-read-only-parameter-1", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcodingparameters-rid-10", + "https://www.w3.org/TR/webrtc/#codec-validation-1", + "https://www.w3.org/TR/webrtc/#codec-validation-1-change-wrapper", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpencodingparameters-codec-3", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-codec-dictionary-match-2", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-19", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-getcapabilities-1", + "https://www.w3.org/TR/webrtc/#codec-validation-2", + "https://www.w3.org/TR/webrtc/#codec-validation-2-change-wrapper", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-reject-35", + "https://www.w3.org/TR/webrtc/#srdb-mf-validation-1", + "https://www.w3.org/TR/webrtc/#srdb-mf-validation-1-change-wrapper", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpencodingparameters-scaleresolutiondownby-4", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpencodingparameters-maxframerate-1", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpencodingparameters-scaleresolutiondownby-5", + "https://www.w3.org/TR/webrtc/#srdb-mf-validation-2", + "https://www.w3.org/TR/webrtc/#srdb-mf-validation-2-change-wrapper", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpencodingparameters-maxframerate-2", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpencodingparameters-maxframerate-3", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpencodingparameters-scaleresolutiondownby-6", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpencodingparameters-scaleresolutiondownby-7", + "https://www.w3.org/TR/webrtc/#srdb-mf-validation-3-change-wrapper", + "https://www.w3.org/TR/webrtc/#srdb-mf-validation-3", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpencodingparameters-scaleresolutiondownby-7-dedup-87", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpencodingparameters-scaleresolutiondownby-8", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpencodingparameters-scaleresolutiondownby-8-dedup-88", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpencodingparameters-scaleresolutiondownby-9", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcodingparameters-rid-11", "https://www.w3.org/TR/webrtc/#issue-container-generatedID-34", @@ -2473,12 +2489,12 @@ "https://www.w3.org/TR/webrtc/#ref-for-dfn-create-an-rtcrtpsender-3", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-createoffer-18", "https://www.w3.org/TR/webrtc/#ref-for-dom-peerconnection-setremotedescription-9", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-23", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-20", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-sender-1", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-getparameters-1", "https://www.w3.org/TR/webrtc/#ref-for-dfn-create-an-rtcrtpreceiver-3", "https://www.w3.org/TR/webrtc/#ref-for-dfn-create-an-rtcrtptransceiver-3", - "https://www.w3.org/TR/webrtc/#ref-for-transceivers-set-17", + "https://www.w3.org/TR/webrtc/#ref-for-transceivers-set-18", "https://www.w3.org/TR/webrtc/#ref-for-dfn-update-the-negotiation-needed-flag-10", "https://www.w3.org/TR/webrtc/#webidl-1417283722", "https://www.w3.org/TR/webrtc/#idl-def-rtcrtptransceiverinit", @@ -2495,65 +2511,66 @@ "https://www.w3.org/TR/webrtc/#dom-rtcrtptransceiverinit", "https://www.w3.org/TR/webrtc/#dom-rtcrtptransceiverinit-direction", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-6", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-sendrecv-14", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-34", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-sendrecv-16", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-32", "https://www.w3.org/TR/webrtc/#dom-rtcrtptransceiverinit-streams", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-13", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-111", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-9", "https://www.w3.org/TR/webrtc/#dom-rtcrtptransceiverinit-sendencodings", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpencodingparameters-5", "https://www.w3.org/TR/webrtc/#webidl-715674198", "https://www.w3.org/TR/webrtc/#idl-def-rtcrtptransceiverdirection", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-7", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-sendrecv-15", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-sendrecv-17", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-sendonly-10", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-recvonly-14", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-inactive-8", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-stopped-1", "https://www.w3.org/TR/webrtc/#dom-rtcrtptransceiverdirection", "https://www.w3.org/TR/webrtc/#dom-rtcrtptransceiverdirection-sendrecv", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-35", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-24", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-33-dedup-89", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-21", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-getparameters-2", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsendparameters-encodings-2", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpencodingparameters-active-1", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-36", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-14", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsendparameters-encodings-2-dedup-90", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpencodingparameters-active-1-dedup-91", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-34", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-10", "https://www.w3.org/TR/webrtc/#dom-rtcrtptransceiverdirection-sendonly", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-37", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-25", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-35", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-22", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-getparameters-3", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsendparameters-encodings-3", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpencodingparameters-active-2", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-38", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-15", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-36", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-11", "https://www.w3.org/TR/webrtc/#dom-rtcrtptransceiverdirection-recvonly", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-37", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-23", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-38", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-12", + "https://www.w3.org/TR/webrtc/#dom-rtcrtptransceiverdirection-inactive", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-39", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-26", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-24", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-40", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-16", - "https://www.w3.org/TR/webrtc/#dom-rtcrtptransceiverdirection-inactive", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-41", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-27", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-42", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-17", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-13", "https://www.w3.org/TR/webrtc/#dom-rtcrtptransceiverdirection-stopped", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-43", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-28", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-18", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-41", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-25", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-14", "https://www.w3.org/TR/webrtc/#processing-remote-mediastreamtracks", "https://www.w3.org/TR/webrtc/#x5-1-1-processing-remote-mediastreamtracks", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-inactive-9", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-sendonly-11", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-44", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-42", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-stop-1", "https://www.w3.org/TR/webrtc/#process-remote-tracks", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-45", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-43", "https://www.w3.org/TR/webrtc/#ref-for-set-associated-remote-streams-2", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-receiver-20", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-sendrecv-16", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-receiver-22", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-sendrecv-18", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-recvonly-15", "https://www.w3.org/TR/webrtc/#ref-for-dfn-fireddirection-3", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-sendrecv-17", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-sendrecv-19", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-recvonly-16", "https://www.w3.org/TR/webrtc/#ref-for-process-remote-track-addition-1", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-sendonly-12", @@ -2562,40 +2579,38 @@ "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-sendonly-13", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-inactive-11", "https://www.w3.org/TR/webrtc/#ref-for-dfn-fireddirection-4", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-sendrecv-18", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-sendrecv-20", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-recvonly-17", "https://www.w3.org/TR/webrtc/#ref-for-process-remote-track-removal-2", "https://www.w3.org/TR/webrtc/#ref-for-dfn-media-description-30", "https://www.w3.org/TR/webrtc/#ref-for-dfn-fireddirection-5", "https://www.w3.org/TR/webrtc/#process-remote-track-addition", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-46", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-receiver-21", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-receivertrack-2", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-44", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-receiver-23", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-receivertrack-4", "https://www.w3.org/TR/webrtc/#ref-for-dfn-associatedremotemediastreams-2", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtctrackeventinit-1", "https://www.w3.org/TR/webrtc/#process-remote-track-removal", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-47", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-receiver-22", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-receivertrack-3", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-45", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-receiver-24", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-receivertrack-5", "https://www.w3.org/TR/webrtc/#set-associated-remote-streams", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-19", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-108", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-receivertrack-4", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-15", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-112", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-receivertrack-6", "https://www.w3.org/TR/webrtc/#ref-for-dfn-associatedremotemediastreams-3", "https://www.w3.org/TR/webrtc/#ref-for-dfn-associatedremotemediastreams-4", "https://www.w3.org/TR/webrtc/#ref-for-dfn-associatedremotemediastreams-5", "https://www.w3.org/TR/webrtc/#rtcrtpsender-interface", "https://www.w3.org/TR/webrtc/#x5-2-rtcrtpsender-interface", "https://www.w3.org/TR/webrtc/#dom-rtcrtpsender", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-29", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-26", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-setparameters-3", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-30", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-27", "https://www.w3.org/TR/webrtc/#dfn-create-an-rtcrtpsender", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpencodingparameters-6", - "https://www.w3.org/TR/webrtc/#create-sender-algo-change-wrapper", "https://www.w3.org/TR/webrtc/#create-sender-algo", - "https://www.w3.org/TR/webrtc/#create-sender-algo-new", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-31", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-28", "https://www.w3.org/TR/webrtc/#dfn-sendertrack", "https://www.w3.org/TR/webrtc/#dfn-sendertransport", "https://www.w3.org/TR/webrtc/#dfn-laststablestatesendertransport", @@ -2608,33 +2623,40 @@ "https://www.w3.org/TR/webrtc/#ref-for-dfn-associatedmediastreamids-6", "https://www.w3.org/TR/webrtc/#dfn-sendencodings", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpencodingparameters-7", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-sendencodings-18", + "https://www.w3.org/TR/webrtc/#init-srbd-change-wrapper", + "https://www.w3.org/TR/webrtc/#init-srbd", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-sendencodings-19", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpencodingparameters-8", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpencodingparameters-active-4", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpencodingparameters-scaleresolutiondownby-10", "https://www.w3.org/TR/webrtc/#issue-container-generatedID-35", "https://www.w3.org/TR/webrtc/#h-note-35", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpencodingparameters-9", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpencodingparameters-active-3", + "https://www.w3.org/TR/webrtc/#init-lsrse", + "https://www.w3.org/TR/webrtc/#init-lsrse-change-wrapper", "https://www.w3.org/TR/webrtc/#dfn-laststableridlesssendencodings", + "https://www.w3.org/TR/webrtc/#create-sender-sendcodecs", "https://www.w3.org/TR/webrtc/#dfn-sendcodecs", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcodecparameters-1", "https://www.w3.org/TR/webrtc/#dfn-lastreturnedparameters", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-getparameters-4", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-setparameters-4", - "https://www.w3.org/TR/webrtc/#webidl-486223994", + "https://www.w3.org/TR/webrtc/#webidl-1600945990", "https://www.w3.org/TR/webrtc/#idl-def-rtcrtpsender", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-32", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-29", "https://www.w3.org/TR/webrtc/#idl-def-rtcrtpsender-track", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-track-1", "https://www.w3.org/TR/webrtc/#idl-def-rtcrtpsender-transport", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransport-11", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransport-12", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-transport-1", "https://www.w3.org/TR/webrtc/#idl-def-rtcrtpsender-getcapabilities-kind", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcapabilities-1", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-getcapabilities-5", - "https://www.w3.org/TR/webrtc/#idl-def-rtcrtpsender-setparameters-parameters", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-getcapabilities-2", + "https://www.w3.org/TR/webrtc/#idl-def-rtcrtpsender-setparameters-parameters-setparameteroptions", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-setparameters-5", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsendparameters-1", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsetparameteroptions-1", "https://www.w3.org/TR/webrtc/#idl-def-rtcrtpsender-getparameters", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsendparameters-2", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-getparameters-5", @@ -2648,26 +2670,36 @@ "https://www.w3.org/TR/webrtc/#attributes-9", "https://www.w3.org/TR/webrtc/#dom-rtcrtpsender-track", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-track-2", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-33", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-30", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-track-3", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-34", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-35", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-31", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-32", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-track-4", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-36", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-33", "https://www.w3.org/TR/webrtc/#ref-for-dfn-sendertrack-4", "https://www.w3.org/TR/webrtc/#dom-rtcrtpsender-transport", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransport-12", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransport-13", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-transport-2", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-track-5", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransport-13", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransport-14", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-transport-3", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-37", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-34", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-transport-4", "https://www.w3.org/TR/webrtc/#ref-for-dfn-sendertransport-6", "https://www.w3.org/TR/webrtc/#methods-6", "https://www.w3.org/TR/webrtc/#dom-rtcrtpsender-getcapabilities", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-getcapabilities-6", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-getcapabilities-7", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-35", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-getcapabilities-3-dedup-92", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-getcapabilities-4-dedup-93", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcapabilities-2", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcapabilities-codecs-1", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-list-of-implemented-send-codecs-3", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcapabilities-headerextensions-1", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-list-of-implemented-header-extensions-for-sending-1", + "https://www.w3.org/TR/webrtc/#dfn-list-of-implemented-send-codecs", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcodec-1", + "https://www.w3.org/TR/webrtc/#dfn-list-of-implemented-header-extensions-for-sending", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpheaderextensioncapability-1", "https://www.w3.org/TR/webrtc/#issue-container-generatedID-36", "https://www.w3.org/TR/webrtc/#h-note-36", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-setcodecpreferences-1", @@ -2677,51 +2709,75 @@ "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-setparameters-6", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-track-6", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-setparameters-7", - "https://www.w3.org/TR/webrtc/#setparameters-algo-change-wrapper", "https://www.w3.org/TR/webrtc/#setparameters-algo", - "https://www.w3.org/TR/webrtc/#setparameters-algo-new", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-38", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-36", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-setparameters-8", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-48", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-46", "https://www.w3.org/TR/webrtc/#ref-for-dfn-sender-32", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-stopped-0-8", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-reject-35", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-lastreturnedparameters-3", + "https://www.w3.org/TR/webrtc/#setparameters-stopped-change-wrapper", + "https://www.w3.org/TR/webrtc/#setparameters-stopped", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-stopping-4", "https://www.w3.org/TR/webrtc/#ref-for-dfn-reject-36", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-lastreturnedparameters-3", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-reject-37", "https://www.w3.org/TR/webrtc/#setparameters-validation", + "https://www.w3.org/TR/webrtc/#dfn-setparameters-validation-steps", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsendparameters-encodings-4", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpparameters-codecs-1", + "https://www.w3.org/TR/webrtc/#setparameters-codec-validation-1", + "https://www.w3.org/TR/webrtc/#setparameters-codec-validation-1-change-wrapper", + "https://www.w3.org/TR/webrtc/#setparameters-codec-validation-2", + "https://www.w3.org/TR/webrtc/#setparameters-codec-validation-2-change-wrapper", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-preferredcodecs-5", + "https://www.w3.org/TR/webrtc/#setparameters-codec-validation-3", + "https://www.w3.org/TR/webrtc/#setparameters-codec-validation-3-change-wrapper", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-list-of-implemented-send-codecs-4", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpencodingparameters-10", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-sendencodings-19", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-reject-37", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-sendencodings-20", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-reject-38", "https://www.w3.org/TR/webrtc/#dfn-read-only-parameter", "https://www.w3.org/TR/webrtc/#ref-for-dfn-lastreturnedparameters-4", + "https://www.w3.org/TR/webrtc/#setparameters-codec-validation-4", + "https://www.w3.org/TR/webrtc/#setparameters-codec-validation-4-change-wrapper", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-codec-dictionary-match-3", + "https://www.w3.org/TR/webrtc/#setparameters-srbd-mv-validation-1", + "https://www.w3.org/TR/webrtc/#setparameters-srbd-mv-validation-1-change-wrapper", "https://www.w3.org/TR/webrtc/#ref-for-dfn-transceiver-kind-5", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpencodingparameters-scaleresolutiondownby-11", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpencodingparameters-maxframerate-4", + "https://www.w3.org/TR/webrtc/#setparameters-srbd-mv-validation-2", + "https://www.w3.org/TR/webrtc/#setparameters-srbd-mv-validation-2-change-wrapper", "https://www.w3.org/TR/webrtc/#ref-for-dfn-transceiver-kind-6", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpencodingparameters-scaleresolutiondownby-12", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpencodingparameters-scaleresolutiondownby-13", + "https://www.w3.org/TR/webrtc/#setparameters-srbd-mv-validation-3-change-wrapper", + "https://www.w3.org/TR/webrtc/#setparameters-srbd-mv-validation-3", "https://www.w3.org/TR/webrtc/#ref-for-dfn-transceiver-kind-7", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpencodingparameters-scaleresolutiondownby-14", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-reject-38", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpencodingparameters-scaleresolutiondownby-10-dedup-94", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-reject-39", + "https://www.w3.org/TR/webrtc/#setparameters-srbd-mv-validation-4", + "https://www.w3.org/TR/webrtc/#setparameters-srbd-mv-validation-4-change-wrapper", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpencodingparameters-maxframerate-5", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpencodingparameters-maxframerate-6", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-reject-39", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-reject-40", + "https://www.w3.org/TR/webrtc/#setparameters-codec-validation-5", + "https://www.w3.org/TR/webrtc/#setparameters-codec-validation-5-change-wrapper", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-reject-41", "https://www.w3.org/TR/webrtc/#ref-for-dfn-sendertrack-5", "https://www.w3.org/TR/webrtc/#ref-for-dfn-lastreturnedparameters-5", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-sendencodings-20", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-sendencodings-21", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsendparameters-encodings-5", "https://www.w3.org/TR/webrtc/#ref-for-dfn-resolve-11", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-reject-40", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-reject-42", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcerror-2", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcerror-errordetail-3", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcerrordetailtype-hardware-encoder-not-available-1", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-reject-41", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-reject-43", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcerror-3", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcerror-errordetail-4", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcerrordetailtype-hardware-encoder-error-1", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-reject-42", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-reject-44", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-setparameters-9", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsendparameters-3", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtcpparameters-cname-1", @@ -2729,23 +2785,23 @@ "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpencodingparameters-maxbitrate-2", "https://www.w3.org/TR/webrtc/#dom-rtcrtpsender-getparameters", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-getparameters-6", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-39", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-37", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-track-7", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-20", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-16", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-getparameters-7", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-40", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-38", "https://www.w3.org/TR/webrtc/#ref-for-dfn-lastreturnedparameters-6", "https://www.w3.org/TR/webrtc/#ref-for-dfn-lastreturnedparameters-7", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsendparameters-4", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsendparameters-transactionid-1", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsendparameters-encodings-6", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-sendencodings-21", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-sendencodings-22", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpparameters-headerextensions-1", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpparameters-codecs-2", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-sendcodecs-3", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-sendcodecs-4", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpparameters-rtcp-1", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtcpparameters-cname-2", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-109", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-113", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpparameters-rtcp-2", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtcpparameters-reducedsize-1", "https://www.w3.org/TR/webrtc/#ref-for-dfn-lastreturnedparameters-8", @@ -2756,39 +2812,41 @@ "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-setparameters-11", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-getparameters-9", "https://www.w3.org/TR/webrtc/#dom-rtcrtpsender-replacetrack", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-41", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-39", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-track-8", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-replacetrack-6", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-42", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-40", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-replacetrack-7", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-49", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-110", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-47", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-114", "https://www.w3.org/TR/webrtc/#ref-for-dfn-transceiver-kind-8", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-reject-43", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-reject-45", "https://www.w3.org/TR/webrtc/#ref-for-dfn-chain-6", "https://www.w3.org/TR/webrtc/#ref-for-dfn-operations-chain-9", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-stopped-0-9", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-reject-44", + "https://www.w3.org/TR/webrtc/#replacetrack-reject-change-wrapper", + "https://www.w3.org/TR/webrtc/#replacetrack-reject", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-stopping-5", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-reject-46", "https://www.w3.org/TR/webrtc/#ref-for-dfn-currentdirection-5", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-sendrecv-19", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-sendrecv-21", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-sendonly-14", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-reject-45", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-isclosed-25", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-reject-47", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-isclosed-23", "https://www.w3.org/TR/webrtc/#ref-for-dfn-sendertrack-6", "https://www.w3.org/TR/webrtc/#ref-for-dfn-resolve-12", "https://www.w3.org/TR/webrtc/#issue-container-generatedID-37", "https://www.w3.org/TR/webrtc/#h-note-37", "https://www.w3.org/TR/webrtc/#dom-rtcrtpsender-setstreams", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-setstreams-2", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-43", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-111", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-isclosed-26", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-41", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-115", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-isclosed-24", "https://www.w3.org/TR/webrtc/#ref-for-dfn-associatedmediastreamids-7", "https://www.w3.org/TR/webrtc/#ref-for-dfn-associatedmediastreamids-8", "https://www.w3.org/TR/webrtc/#ref-for-dfn-update-the-negotiation-needed-flag-11", "https://www.w3.org/TR/webrtc/#widl-RTCRtpSender-getStats-Promise-RTCStatsReport", "https://www.w3.org/TR/webrtc/#ref-for-widl-RTCRtpSender-getStats-Promise-RTCStatsReport-2", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-44", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-42", "https://www.w3.org/TR/webrtc/#ref-for-dfn-stats-selection-algorithm-1", "https://www.w3.org/TR/webrtc/#ref-for-dfn-resolve-13", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcstatsreport-2", @@ -2817,10 +2875,10 @@ "https://www.w3.org/TR/webrtc/#ref-for-dfn-read-only-parameter-3", "https://www.w3.org/TR/webrtc/#dom-rtcrtpparameters-codecs", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcodecparameters-3", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-45", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-43", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpparameters-codecs-4", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcodecparameters-mimetype-1", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcodecparameters-sdpfmtpline-1", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcodec-mimetype-1", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcodec-sdpfmtpline-1", "https://www.w3.org/TR/webrtc/#ref-for-dfn-read-only-parameter-4", "https://www.w3.org/TR/webrtc/#rtcsendrtpparameters", "https://www.w3.org/TR/webrtc/#x5-2-2-rtcrtpsendparameters-dictionary", @@ -2865,28 +2923,22 @@ "https://www.w3.org/TR/webrtc/#ref-for-dfn-read-only-parameter-6", "https://www.w3.org/TR/webrtc/#rtcrtpdecodingparameters-change-wrapper", "https://www.w3.org/TR/webrtc/#rtcrtpdecodingparameters", + "https://www.w3.org/TR/webrtc/#rtcrtpdecodingparameters-dedup-95", "https://www.w3.org/TR/webrtc/#x5-2-5-rtcrtpdecodingparameters-dictionary", - "https://www.w3.org/TR/webrtc/#rtcrtpdecodingparameters-new", + "https://www.w3.org/TR/webrtc/#dom-rtcrtpdecodingparameters", + "https://www.w3.org/TR/webrtc/#webidl-1268244428", + "https://www.w3.org/TR/webrtc/#rtcrtpdecodingparameters-dedup-96", "https://www.w3.org/TR/webrtc/#rtcrtpencodingparameters", "https://www.w3.org/TR/webrtc/#x5-2-5-rtcrtpencodingparameters-dictionary", "https://www.w3.org/TR/webrtc/#dom-rtcrtpencodingparameters", "https://www.w3.org/TR/webrtc/#webidl-rtcrtpencodingparameters-change-wrapper", "https://www.w3.org/TR/webrtc/#webidl-rtcrtpencodingparameters", - "https://www.w3.org/TR/webrtc/#webidl-rtcrtpencodingparameters-new", - "https://www.w3.org/TR/webrtc/#idl-def-rtcrtpencodingparameters", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpencodingparameters-13", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcodingparameters-3", - "https://www.w3.org/TR/webrtc/#idl-def-rtcrtpencodingparameters-active", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpencodingparameters-active-4", - "https://www.w3.org/TR/webrtc/#idl-def-rtcrtpencodingparameters-maxbitrate", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpencodingparameters-maxbitrate-3", - "https://www.w3.org/TR/webrtc/#idl-def-rtcrtpencodingparameters-maxframerate", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpencodingparameters-maxframerate-7", - "https://www.w3.org/TR/webrtc/#idl-def-rtcrtpencodingparameters-scaleresolutiondownby", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpencodingparameters-scaleresolutiondownby-15", "https://www.w3.org/TR/webrtc/#dictionary-rtcrtpencodingparameters-members", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpencodingparameters-14", "https://www.w3.org/TR/webrtc/#dom-rtcrtpencodingparameters-active", + "https://www.w3.org/TR/webrtc/#rtcrtpparameters-codec", + "https://www.w3.org/TR/webrtc/#rtcrtpparameters-codec-change-wrapper", + "https://www.w3.org/TR/webrtc/#dom-rtcrtpencodingparameters-codec", "https://www.w3.org/TR/webrtc/#dom-rtcrtpencodingparameters-maxbitrate", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpencodingparameters-maxbitrate-4", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpencodingparameters-maxbitrate-5", @@ -2938,9 +2990,9 @@ "https://www.w3.org/TR/webrtc/#issue-container-generatedID-39", "https://www.w3.org/TR/webrtc/#h-note-39", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpheaderextensionparameters-5", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-46", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-21", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-50", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-44", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-17", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-48", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-sender-2", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-getparameters-11", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpparameters-headerextensions-3", @@ -2959,22 +3011,32 @@ "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-receiver-3", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-getparameters-3", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpparameters-headerextensions-8", + "https://www.w3.org/TR/webrtc/#rtcrtpcodec", + "https://www.w3.org/TR/webrtc/#x5-2-8-rtcrtpcodec-dictionary", + "https://www.w3.org/TR/webrtc/#dom-rtcrtpcodec", + "https://www.w3.org/TR/webrtc/#webidl-2045082044", + "https://www.w3.org/TR/webrtc/#idl-def-rtcrtpcodec", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcodec-3", + "https://www.w3.org/TR/webrtc/#idl-def-rtcrtpcodec-mimetype", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcodec-mimetype-2", + "https://www.w3.org/TR/webrtc/#idl-def-rtcrtpcodec-clockrate", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcodec-clockrate-1", + "https://www.w3.org/TR/webrtc/#idl-def-rtcrtpcodec-channels", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcodec-channels-1", + "https://www.w3.org/TR/webrtc/#idl-def-rtcrtpcodec-sdpfmtpline", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcodec-sdpfmtpline-2", + "https://www.w3.org/TR/webrtc/#dictionary-rtcrtpcodec-members", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcodec-4", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcodec-5", + "https://www.w3.org/TR/webrtc/#dom-rtcrtpcodec-mimetype", + "https://www.w3.org/TR/webrtc/#dom-rtcrtpcodec-clockrate", + "https://www.w3.org/TR/webrtc/#dom-rtcrtpcodec-channels", + "https://www.w3.org/TR/webrtc/#dom-rtcrtpcodec-sdpfmtpline", + "https://www.w3.org/TR/webrtc/#rtcrtpcodecparameters-change-wrapper", "https://www.w3.org/TR/webrtc/#rtcrtpcodecparameters", - "https://www.w3.org/TR/webrtc/#x5-2-8-rtcrtpcodecparameters-dictionary", + "https://www.w3.org/TR/webrtc/#x5-2-9-rtcrtpcodecparameters-dictionary", "https://www.w3.org/TR/webrtc/#dom-rtcrtpcodecparameters", "https://www.w3.org/TR/webrtc/#webidl-343224629", - "https://www.w3.org/TR/webrtc/#idl-def-rtcrtpcodecparameters", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcodecparameters-4", - "https://www.w3.org/TR/webrtc/#idl-def-rtcrtpcodecparameters-payloadtype", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcodecparameters-payloadtype-1", - "https://www.w3.org/TR/webrtc/#idl-def-rtcrtpcodecparameters-mimetype", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcodecparameters-mimetype-2", - "https://www.w3.org/TR/webrtc/#idl-def-rtcrtpcodecparameters-clockrate", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcodecparameters-clockrate-1", - "https://www.w3.org/TR/webrtc/#idl-def-rtcrtpcodecparameters-channels", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcodecparameters-channels-1", - "https://www.w3.org/TR/webrtc/#idl-def-rtcrtpcodecparameters-sdpfmtpline", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcodecparameters-sdpfmtpline-2", "https://www.w3.org/TR/webrtc/#dictionary-rtcrtpcodecparameters-members", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcodecparameters-5", "https://www.w3.org/TR/webrtc/#dom-rtcrtpcodecparameters-payloadtype", @@ -2986,70 +3048,68 @@ "https://www.w3.org/TR/webrtc/#dom-rtcrtpcodecparameters-channels", "https://www.w3.org/TR/webrtc/#ref-for-dfn-read-only-parameter-15", "https://www.w3.org/TR/webrtc/#dom-rtcrtpcodecparameters-sdpfmtpline", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-47", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-currentremotedescription-13", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-48", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-22", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-read-only-parameter-16", + "https://www.w3.org/TR/webrtc/#x5-2-9-rtcrtpcodecparameters-dictionary-dedup-97", + "https://www.w3.org/TR/webrtc/#dom-rtcrtpcodecparameters-dedup-98", + "https://www.w3.org/TR/webrtc/#webidl-185470930", + "https://www.w3.org/TR/webrtc/#dictionary-rtcrtpcodecparameters-members-dedup-99", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcodecparameters-5-dedup-100", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcodecparameters-6", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcodec-7", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-read-only-parameter-12-dedup-101", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-45", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcodec-sdpfmtpline-3", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-currentremotedescription-13", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-18", "https://www.w3.org/TR/webrtc/#ref-for-dfn-pendinglocaldescription-13", "https://www.w3.org/TR/webrtc/#ref-for-dfn-currentlocaldescription-13", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-read-only-parameter-16", + "https://www.w3.org/TR/webrtc/#dom-rtcrtpcodecparameters-payloadtype-dedup-102", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-read-only-parameter-13-dedup-103", "https://www.w3.org/TR/webrtc/#rtcrtpcapabilities", - "https://www.w3.org/TR/webrtc/#x5-2-9-rtcrtpcapabilities-dictionary", + "https://www.w3.org/TR/webrtc/#x5-2-10-rtcrtpcapabilities-dictionary", "https://www.w3.org/TR/webrtc/#dom-rtcrtpcapabilities", - "https://www.w3.org/TR/webrtc/#webidl-1429550922", + "https://www.w3.org/TR/webrtc/#webidl-2113586642", "https://www.w3.org/TR/webrtc/#idl-def-rtcrtpcapabilities", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcapabilities-2", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcapabilities-3", "https://www.w3.org/TR/webrtc/#idl-def-rtcrtpcapabilities-codecs", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcodeccapability-1", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcapabilities-codecs-9", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcodec-8", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcapabilities-codecs-2", "https://www.w3.org/TR/webrtc/#idl-def-rtcrtpcapabilities-headerextensions", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpheaderextensioncapability-1", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcapabilities-headerextensions-1", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpheaderextensioncapability-2", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcapabilities-headerextensions-2", "https://www.w3.org/TR/webrtc/#dictionary-rtcrtpcapabilities-members", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcapabilities-3", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcapabilities-4", "https://www.w3.org/TR/webrtc/#dom-rtcrtpcapabilities-codecs", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcodeccapability-2", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcapabilities-codecs-10", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcodeccapability-sdpfmtpline-1", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcodec-9", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcapabilities-codecs-3", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcodec-sdpfmtpline-4", "https://www.w3.org/TR/webrtc/#dom-rtcrtpcapabilities-headerextensions", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpheaderextensioncapability-2", - "https://www.w3.org/TR/webrtc/#rtcrtpcodeccapability", - "https://www.w3.org/TR/webrtc/#x5-2-10-rtcrtpcodeccapability-dictionary", - "https://www.w3.org/TR/webrtc/#dom-rtcrtpcodeccapability", - "https://www.w3.org/TR/webrtc/#webidl-260647884", - "https://www.w3.org/TR/webrtc/#idl-def-rtcrtpcodeccapability", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcodeccapability-3", - "https://www.w3.org/TR/webrtc/#idl-def-rtcrtpcodeccapability-mimetype", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcodeccapability-mimetype-1", - "https://www.w3.org/TR/webrtc/#idl-def-rtcrtpcodeccapability-clockrate", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcodeccapability-clockrate-1", - "https://www.w3.org/TR/webrtc/#idl-def-rtcrtpcodeccapability-channels", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcodeccapability-channels-1", - "https://www.w3.org/TR/webrtc/#idl-def-rtcrtpcodeccapability-sdpfmtpline", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcodeccapability-sdpfmtpline-2", - "https://www.w3.org/TR/webrtc/#dictionary-rtcrtpcodeccapability-members", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcodeccapability-4", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcodeccapability-5", - "https://www.w3.org/TR/webrtc/#dom-rtcrtpcodeccapability-mimetype", - "https://www.w3.org/TR/webrtc/#dom-rtcrtpcodeccapability-clockrate", - "https://www.w3.org/TR/webrtc/#dom-rtcrtpcodeccapability-channels", - "https://www.w3.org/TR/webrtc/#dom-rtcrtpcodeccapability-sdpfmtpline", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpheaderextensioncapability-3", "https://www.w3.org/TR/webrtc/#rtcrtpheaderextensioncapability", "https://www.w3.org/TR/webrtc/#x5-2-11-rtcrtpheaderextensioncapability-dictionary", "https://www.w3.org/TR/webrtc/#dom-rtcrtpheaderextensioncapability", - "https://www.w3.org/TR/webrtc/#webidl-381402896", - "https://www.w3.org/TR/webrtc/#idl-def-rtcrtpheaderextensioncapability", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpheaderextensioncapability-3", - "https://www.w3.org/TR/webrtc/#idl-def-rtcrtpheaderextensioncapability-uri", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpheaderextensioncapability-uri-1", + "https://www.w3.org/TR/webrtc/#webidl-rtcrtpheaderextensioncapability-change-wrapper", + "https://www.w3.org/TR/webrtc/#webidl-rtcrtpheaderextensioncapability", "https://www.w3.org/TR/webrtc/#dictionary-rtcrtpheaderextensioncapability-members", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpheaderextensioncapability-4", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpheaderextensioncapability-5", "https://www.w3.org/TR/webrtc/#dom-rtcrtpheaderextensioncapability-uri", + "https://www.w3.org/TR/webrtc/#rtcsetparameteroptions-dictionary", + "https://www.w3.org/TR/webrtc/#rtcsetparameteroptions-dictionary-change-wrapper", + "https://www.w3.org/TR/webrtc/#x5-2-12-rtcsetparameteroptions-dictionary", + "https://www.w3.org/TR/webrtc/#dom-rtcsetparameteroptions", + "https://www.w3.org/TR/webrtc/#webidl-636431549", + "https://www.w3.org/TR/webrtc/#idl-def-rtcsetparameteroptions", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsetparameteroptions-2", + "https://www.w3.org/TR/webrtc/#dictionary-rtcsetparameteroptions-members", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsetparameteroptions-3", "https://www.w3.org/TR/webrtc/#rtcrtpreceiver-interface", "https://www.w3.org/TR/webrtc/#x5-3-rtcrtpreceiver-interface", "https://www.w3.org/TR/webrtc/#dom-rtcrtpreceiver", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-23", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-19", "https://www.w3.org/TR/webrtc/#dfn-create-an-rtcrtpreceiver", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-24", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-20", "https://www.w3.org/TR/webrtc/#dfn-remote-source", "https://www.w3.org/TR/webrtc/#ref-for-dfn-user-agent-9", "https://www.w3.org/TR/webrtc/#dfn-receivertrack", @@ -3057,54 +3117,75 @@ "https://www.w3.org/TR/webrtc/#dfn-laststablestatereceivertransport", "https://www.w3.org/TR/webrtc/#dfn-associatedremotemediastreams", "https://www.w3.org/TR/webrtc/#dfn-laststablestateassociatedremotemediastreams", + "https://www.w3.org/TR/webrtc/#rtcrtpreceiver-receivecodecs", "https://www.w3.org/TR/webrtc/#dfn-receivecodecs", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcodecparameters-6", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcodecparameters-7", "https://www.w3.org/TR/webrtc/#dfn-laststablestatereceivecodecs", - "https://www.w3.org/TR/webrtc/#webidl-436594269", - "https://www.w3.org/TR/webrtc/#idl-def-rtcrtpreceiver", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-25", - "https://www.w3.org/TR/webrtc/#idl-def-rtcrtpreceiver-track", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtpreceiver-track-1", - "https://www.w3.org/TR/webrtc/#idl-def-rtcrtpreceiver-transport", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransport-14", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-transport-1", - "https://www.w3.org/TR/webrtc/#idl-def-rtcrtpreceiver-getcapabilities-kind", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcapabilities-4", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-getcapabilities-5", - "https://www.w3.org/TR/webrtc/#idl-def-rtcrtpreceiver-getparameters", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiveparameters-2", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-getparameters-4", - "https://www.w3.org/TR/webrtc/#idl-def-rtcrtpreceiver-getcontributingsources", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcontributingsource-1", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-getcontributingsources-1", - "https://www.w3.org/TR/webrtc/#idl-def-rtcrtpreceiver-getsynchronizationsources", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsynchronizationsource-1", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-getsynchronizationsources-1", - "https://www.w3.org/TR/webrtc/#idl-def-rtcrtpreceiver-getstats", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcstatsreport-3", - "https://www.w3.org/TR/webrtc/#ref-for-widl-RTCRtpReceiver-getStats-Promise-RTCStatsReport-1", + "https://www.w3.org/TR/webrtc/#internalslot-jitterbuffertarget", + "https://www.w3.org/TR/webrtc/#internalslot-jitterbuffertarget-change-wrapper", + "https://www.w3.org/TR/webrtc/#dfn-jitterbuffertarget", + "https://www.w3.org/TR/webrtc/#webidl-rtcrtpreceiver-change-wrapper", + "https://www.w3.org/TR/webrtc/#webidl-rtcrtpreceiver", "https://www.w3.org/TR/webrtc/#attributes-10", "https://www.w3.org/TR/webrtc/#dom-rtpreceiver-track", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtpreceiver-track-2", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-26", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-22-dedup-104", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtpreceiver-track-3", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtpreceiver-track-4", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-receivertrack-5", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-receivertrack-7", "https://www.w3.org/TR/webrtc/#dom-rtcrtpreceiver-transport", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransport-15", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransport-16", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-transport-2", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtpreceiver-track-5", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransport-16", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransport-17", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-transport-3", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-27", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-23", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-transport-4", "https://www.w3.org/TR/webrtc/#ref-for-dfn-receivertransport-6", - "https://www.w3.org/TR/webrtc/#methods-7", - "https://www.w3.org/TR/webrtc/#dom-rtcrtpreceiver-getcapabilities", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-getcapabilities-6", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-getcapabilities-7", + "https://www.w3.org/TR/webrtc/#rtcrtpreceiver-jitterbuffertarget", + "https://www.w3.org/TR/webrtc/#rtcrtpreceiver-jitterbuffertarget-change-wrapper", + "https://www.w3.org/TR/webrtc/#dom-rtcrtpreceiver-jitterbuffertarget", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-24", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-user-agent-10", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-user-agent-11", + "https://www.w3.org/TR/webrtc/#dfn-minimum-allowed-target", + "https://www.w3.org/TR/webrtc/#dfn-maximum-allowed-target", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-user-agent-12", "https://www.w3.org/TR/webrtc/#issue-container-generatedID-40", "https://www.w3.org/TR/webrtc/#h-note-40", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-user-agent-13", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-jitterbuffertarget-1", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-user-agent-14", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-25", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-jitterbuffertarget-2", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-receivertrack-8", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-26", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-user-agent-15", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-jitterbuffertarget-3", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-minimum-allowed-target-1", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-maximum-allowed-target-1", + "https://www.w3.org/TR/webrtc/#issue-container-generatedID-41", + "https://www.w3.org/TR/webrtc/#h-note-41", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-user-agent-16", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-jitterbuffertarget-4", + "https://www.w3.org/TR/webrtc/#issue-container-generatedID-42", + "https://www.w3.org/TR/webrtc/#h-note-42", + "https://www.w3.org/TR/webrtc/#methods-7", + "https://www.w3.org/TR/webrtc/#dom-rtcrtpreceiver-getcapabilities", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-27", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-getcapabilities-2", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-getcapabilities-3-dedup-105", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcapabilities-6", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcapabilities-codecs-4", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-list-of-implemented-receive-codecs-3", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcapabilities-headerextensions-3", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-list-of-implemented-header-extensions-for-receiving-1", + "https://www.w3.org/TR/webrtc/#dfn-list-of-implemented-receive-codecs", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcodec-10", + "https://www.w3.org/TR/webrtc/#dfn-list-of-implemented-header-extensions-for-receiving", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpheaderextensioncapability-6", + "https://www.w3.org/TR/webrtc/#issue-container-generatedID-43", + "https://www.w3.org/TR/webrtc/#h-note-43", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-setcodecpreferences-2", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-createoffer-20", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-createanswer-8", @@ -3117,8 +3198,8 @@ "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpparameters-headerextensions-9", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpparameters-codecs-5", "https://www.w3.org/TR/webrtc/#ref-for-dfn-receivecodecs-5", - "https://www.w3.org/TR/webrtc/#issue-container-generatedID-41", - "https://www.w3.org/TR/webrtc/#h-note-41", + "https://www.w3.org/TR/webrtc/#issue-container-generatedID-44", + "https://www.w3.org/TR/webrtc/#h-note-44", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-getparameters-7", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-getparameters-8", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpparameters-rtcp-4", @@ -3147,12 +3228,12 @@ "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsynchronizationsource-4", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcontributingsource-4", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-33", - "https://www.w3.org/TR/webrtc/#issue-container-generatedID-42", - "https://www.w3.org/TR/webrtc/#h-note-42", + "https://www.w3.org/TR/webrtc/#issue-container-generatedID-45", + "https://www.w3.org/TR/webrtc/#h-note-45", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-getsynchronizationsources-2", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-getcontributingsources-2", - "https://www.w3.org/TR/webrtc/#issue-container-generatedID-43", - "https://www.w3.org/TR/webrtc/#h-note-43", + "https://www.w3.org/TR/webrtc/#issue-container-generatedID-46", + "https://www.w3.org/TR/webrtc/#h-note-46", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsynchronizationsource-5", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcontributingsource-5", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-34", @@ -3183,28 +3264,28 @@ "https://www.w3.org/TR/webrtc/#rtcrtptransceiver-interface", "https://www.w3.org/TR/webrtc/#x5-4-rtcrtptransceiver-interface", "https://www.w3.org/TR/webrtc/#dom-rtcrtptransceiver", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-51", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-48", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-49", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-46", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-36", "https://www.w3.org/TR/webrtc/#ref-for-dfn-media-stream-identification-tag-2", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-52", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-50", "https://www.w3.org/TR/webrtc/#dfn-associated", "https://www.w3.org/TR/webrtc/#ref-for-dfn-media-description-31", "https://www.w3.org/TR/webrtc/#ref-for-dfn-media-stream-identification-tag-3", "https://www.w3.org/TR/webrtc/#ref-for-dfn-media-description-32", "https://www.w3.org/TR/webrtc/#ref-for-dfn-media-description-33", - "https://www.w3.org/TR/webrtc/#issue-container-generatedID-44", - "https://www.w3.org/TR/webrtc/#h-note-44", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-53", + "https://www.w3.org/TR/webrtc/#issue-container-generatedID-47", + "https://www.w3.org/TR/webrtc/#h-note-47", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-51", "https://www.w3.org/TR/webrtc/#ref-for-dfn-check-if-negotiation-is-needed-2", "https://www.w3.org/TR/webrtc/#dfn-transceiver-kind", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-54", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-52", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-37", "https://www.w3.org/TR/webrtc/#dfn-create-an-rtcrtptransceiver", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-38", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-49", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-47", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-8", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-55", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-53", "https://www.w3.org/TR/webrtc/#dfn-sender", "https://www.w3.org/TR/webrtc/#dfn-receiver", "https://www.w3.org/TR/webrtc/#dfn-stopping", @@ -3216,25 +3297,25 @@ "https://www.w3.org/TR/webrtc/#dfn-preferredcodecs", "https://www.w3.org/TR/webrtc/#dfn-jsepmid", "https://www.w3.org/TR/webrtc/#dfn-mid", - "https://www.w3.org/TR/webrtc/#issue-container-generatedID-45", - "https://www.w3.org/TR/webrtc/#h-note-45", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransport-17", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-25", + "https://www.w3.org/TR/webrtc/#issue-container-generatedID-48", + "https://www.w3.org/TR/webrtc/#h-note-48", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransport-18", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-20", "https://www.w3.org/TR/webrtc/#ref-for-set-description-7", - "https://www.w3.org/TR/webrtc/#webidl-1228768784", + "https://www.w3.org/TR/webrtc/#webidl-2080349688", "https://www.w3.org/TR/webrtc/#idl-def-rtcrtptransceiver", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-56", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-54", "https://www.w3.org/TR/webrtc/#idl-def-rtcrtptransceiver-mid", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtptransceiver-mid-3", "https://www.w3.org/TR/webrtc/#idl-def-rtcrtptransceiver-sender", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-50", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-48-dedup-106", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-sender-5", "https://www.w3.org/TR/webrtc/#idl-def-rtcrtptransceiver-receiver", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-39", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-receiver-4", "https://www.w3.org/TR/webrtc/#idl-def-rtcrtptransceiver-direction", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-9", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-direction-8", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-direction-6", "https://www.w3.org/TR/webrtc/#idl-def-rtcrtptransceiver-currentdirection", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-10", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-currentdirection-1", @@ -3242,16 +3323,16 @@ "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-stop-2", "https://www.w3.org/TR/webrtc/#idl-def-rtcrtptransceiver-setcodecpreferences-codecs", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-setcodecpreferences-3", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcodeccapability-6", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcodec-11", "https://www.w3.org/TR/webrtc/#attributes-11", "https://www.w3.org/TR/webrtc/#dom-rtptransceiver-mid", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtptransceiver-mid-4", "https://www.w3.org/TR/webrtc/#ref-for-dfn-media-stream-identification-tag-4", "https://www.w3.org/TR/webrtc/#ref-for-dfn-mid-4", "https://www.w3.org/TR/webrtc/#dom-rtcrtptransceiver-sender", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-51", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-49", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-sender-6", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-52", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-50", "https://www.w3.org/TR/webrtc/#ref-for-dfn-mid-5", "https://www.w3.org/TR/webrtc/#ref-for-dfn-sender-33", "https://www.w3.org/TR/webrtc/#dom-rtcrtptransceiver-receiver", @@ -3259,7 +3340,7 @@ "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-receiver-5", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-41", "https://www.w3.org/TR/webrtc/#ref-for-dfn-mid-6", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-receiver-23", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-receiver-25", "https://www.w3.org/TR/webrtc/#dom-rtcrtptransceiver-direction", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-11", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-createoffer-21", @@ -3267,13 +3348,13 @@ "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-createoffer-22", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-createanswer-10", "https://www.w3.org/TR/webrtc/#ref-for-dfn-media-description-34", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-57", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-stopping-3", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-55", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-stopping-6", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-stopped-2", "https://www.w3.org/TR/webrtc/#ref-for-dfn-direction-15", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-58", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-112", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-stopping-4", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-56", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-116", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-stopping-7", "https://www.w3.org/TR/webrtc/#ref-for-dfn-direction-16", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-stopped-3", "https://www.w3.org/TR/webrtc/#ref-for-dfn-direction-17", @@ -3284,8 +3365,8 @@ "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpencodingparameters-active-5", "https://www.w3.org/TR/webrtc/#ref-for-dfn-stopped-8", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-stopped-4", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-59", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-stopped-0-10", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-57", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-stopped-0-8", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-stopped-5", "https://www.w3.org/TR/webrtc/#ref-for-dfn-currentdirection-6", "https://www.w3.org/TR/webrtc/#methods-8", @@ -3294,8 +3375,8 @@ "https://www.w3.org/TR/webrtc/#ref-for-dfn-stopped-9", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-stop-3", "https://www.w3.org/TR/webrtc/#ref-for-dfn-update-the-negotiation-needed-flag-13", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-60", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-113", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-58", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-117", "https://www.w3.org/TR/webrtc/#dfn-stopping-0", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-createoffer-23", "https://www.w3.org/TR/webrtc/#ref-for-dfn-media-description-35", @@ -3311,130 +3392,181 @@ "https://www.w3.org/TR/webrtc/#ref-for-dfn-stopping-0-5", "https://www.w3.org/TR/webrtc/#ref-for-dfn-stopped-12", "https://www.w3.org/TR/webrtc/#ref-for-dom-peerconnection-setremotedescription-10", - "https://www.w3.org/TR/webrtc/#issue-container-generatedID-46", - "https://www.w3.org/TR/webrtc/#h-note-46", + "https://www.w3.org/TR/webrtc/#issue-container-generatedID-49", + "https://www.w3.org/TR/webrtc/#h-note-49", "https://www.w3.org/TR/webrtc/#ref-for-dfn-stopping-0-6", "https://www.w3.org/TR/webrtc/#ref-for-dfn-stopped-13", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-stop-4", "https://www.w3.org/TR/webrtc/#ref-for-dfn-stopped-14", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-stop-5", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-61", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-114", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-isclosed-27", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-stopping-5", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-59", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-118", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-isclosed-25", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-stopping-8", "https://www.w3.org/TR/webrtc/#ref-for-dfn-stop-sending-and-receiving-1", "https://www.w3.org/TR/webrtc/#ref-for-dfn-update-the-negotiation-needed-flag-14", "https://www.w3.org/TR/webrtc/#dfn-stop-sending-and-receiving", "https://www.w3.org/TR/webrtc/#ref-for-dfn-sender-34", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-receiver-24", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-receivertrack-6", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-receiver-26", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-receivertrack-9", "https://www.w3.org/TR/webrtc/#ref-for-dfn-direction-18", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-inactive-12", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-stopping-6", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-stopping-9", "https://www.w3.org/TR/webrtc/#dfn-stop-the-rtcrtptransceiver", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-stopping-7", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-stopping-10", "https://www.w3.org/TR/webrtc/#ref-for-dfn-stop-sending-and-receiving-2", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-stopped-0-11", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-stopped-0-9", "https://www.w3.org/TR/webrtc/#ref-for-dfn-receptive-3", "https://www.w3.org/TR/webrtc/#ref-for-dfn-currentdirection-7", "https://www.w3.org/TR/webrtc/#dom-rtcrtptransceiver-setcodecpreferences", + "https://www.w3.org/TR/webrtc/#setcodecpreferences-receive-change-wrapper", + "https://www.w3.org/TR/webrtc/#setcodecpreferences-receive", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-setcodecpreferences-4", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-user-agent-10", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-user-agent-17", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-createoffer-25", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-createanswer-13", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-user-agent-11", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-62", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-user-agent-18", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-60", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-60-dedup-107", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-createoffer-26", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-createanswer-14", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-63", - "https://www.w3.org/TR/webrtc/#issue-container-generatedID-47", - "https://www.w3.org/TR/webrtc/#h-note-47", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-61", + "https://www.w3.org/TR/webrtc/#issue-container-generatedID-50", + "https://www.w3.org/TR/webrtc/#h-note-50", + "https://www.w3.org/TR/webrtc/#issue-container-generatedID-50-dedup-108", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-setcodecpreferences-5", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-53", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-54", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-getcapabilities-8", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-getcapabilities-4-dedup-109", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-codec-dictionary-match-4", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-42", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-getcapabilities-8", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-64", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-getcapabilities-4-dedup-110", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-62", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-62-dedup-111", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcodeccapability-7", - "https://www.w3.org/TR/webrtc/#issue-container-generatedID-48", - "https://www.w3.org/TR/webrtc/#h-note-48", + "https://www.w3.org/TR/webrtc/#issue-container-generatedID-46-dedup-112", + "https://www.w3.org/TR/webrtc/#h-note-46-dedup-113", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-createanswer-15", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-setcodecpreferences-6", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-user-agent-12", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-65", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-preferredcodecs-5", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-user-agent-19", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-63", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-preferredcodecs-6", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-codec-dictionary-match-5", "https://www.w3.org/TR/webrtc/#ref-for-dfn-transceiver-kind-9", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-54", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-55", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-getcapabilities-9", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-getcapabilities-5", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpparameters-codecs-6", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-43", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-getcapabilities-9", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpparameters-codecs-7", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-direction-9", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-55", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-direction-7", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-56", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-getcapabilities-10", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpparameters-codecs-8", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-44", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-getcapabilities-10", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpparameters-codecs-9", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-preferredcodecs-6", - "https://www.w3.org/TR/webrtc/#issue-container-generatedID-49", - "https://www.w3.org/TR/webrtc/#h-note-49", - "https://www.w3.org/TR/webrtc/#simulcast-functionality-change-wrapper", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-43-dedup-114", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-getcapabilities-5-dedup-115", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpparameters-codecs-6-dedup-116", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-codec-dictionary-match-6", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-direction-7-dedup-117", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-preferredcodecs-7", + "https://www.w3.org/TR/webrtc/#codecmatch-algorithm-change-wrapper", + "https://www.w3.org/TR/webrtc/#codecmatch-algorithm", + "https://www.w3.org/TR/webrtc/#codecmatch-algorithm-dedup-118", + "https://www.w3.org/TR/webrtc/#codecmatch-algorithm-dedup-119", + "https://www.w3.org/TR/webrtc/#dfn-codec-dictionary-match", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcodec-12", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcodec-mimetype-3", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcodec-mimetype-4", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcodec-clockrate-2", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcodec-clockrate-3", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcodec-channels-2", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcodec-channels-3", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcodec-channels-4", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcodec-channels-5", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcodec-sdpfmtpline-5", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcodec-sdpfmtpline-6", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcodec-sdpfmtpline-7", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpcodec-sdpfmtpline-8", + "https://www.w3.org/TR/webrtc/#issue-container-generatedID-51", + "https://www.w3.org/TR/webrtc/#h-note-51", "https://www.w3.org/TR/webrtc/#simulcast-functionality", "https://www.w3.org/TR/webrtc/#x5-4-1-simulcast-functionality", - "https://www.w3.org/TR/webrtc/#x5-4-1-1-encoding-parameter-examples", - "https://www.w3.org/TR/webrtc/#simulcast-functionality-new", - "https://www.w3.org/TR/webrtc/#x5-4-1-simulcast-functionality-dedup-7", + "https://www.w3.org/TR/webrtc/#simulcast-envelope-change-wrapper", + "https://www.w3.org/TR/webrtc/#simulcast-envelope", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-addtransceiver-8", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverinit-sendencodings-4", "https://www.w3.org/TR/webrtc/#ref-for-dom-peerconnection-setremotedescription-11", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-115", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverinit-sendencodings-4", + "https://www.w3.org/TR/webrtc/#ref-for-dom-peerconnection-setremotedescription-11-dedup-120", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-119", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-119-dedup-121", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-setparameters-15", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-56", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-66", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-51", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-addtransceiver-9", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-52", "https://www.w3.org/TR/webrtc/#dfn-simulcast-envelope", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsendparameters-encodings-8", "https://www.w3.org/TR/webrtc/#ref-for-dfn-simulcast-envelope-2", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-setparameters-16", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-setparameters-16-dedup-122", "https://www.w3.org/TR/webrtc/#ref-for-dfn-simulcast-envelope-3", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-addtrack-11", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverinit-sendencodings-5", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverinit-sendencodings-4-dedup-123", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-67", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-simulcast-envelope-2-dedup-124", + "https://www.w3.org/TR/webrtc/#ref-for-dom-peerconnection-setremotedescription-10-dedup-125", "https://www.w3.org/TR/webrtc/#ref-for-dom-peerconnection-setremotedescription-12", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-116-dedup-126", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-simulcast-envelope-3-dedup-127", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-68", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpencodingparameters-active-7", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverinit-sendencodings-5", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-addtransceiver-9-dedup-128", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-addtrack-11-dedup-129", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverinit-sendencodings-6", + "https://www.w3.org/TR/webrtc/#ref-for-dom-peerconnection-setremotedescription-12-dedup-130", "https://www.w3.org/TR/webrtc/#dfn-proposed-envelope", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-67", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-53", "https://www.w3.org/TR/webrtc/#ref-for-dfn-proposed-envelope-2", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-68", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-54-dedup-131", "https://www.w3.org/TR/webrtc/#ref-for-dfn-simulcast-envelope-4", "https://www.w3.org/TR/webrtc/#ref-for-dfn-simulcast-envelope-5", + "https://www.w3.org/TR/webrtc/#simulcast-pause-change-wrapper", + "https://www.w3.org/TR/webrtc/#simulcast-pause", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-setparameters-17", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-setparameters-17-dedup-132", "https://www.w3.org/TR/webrtc/#ref-for-dfn-simulcast-envelope-6", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-setparameters-18", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-setparameters-18-dedup-133", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpencodingparameters-active-6", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpencodingparameters-active-7", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpencodingparameters-active-6-dedup-134", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpencodingparameters-active-7-dedup-135", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpencodingparameters-active-7-dedup-136", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-setparameters-19", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-setparameters-19-dedup-137", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpencodingparameters-maxbitrate-7", - "https://www.w3.org/TR/webrtc/#issue-container-generatedID-50", - "https://www.w3.org/TR/webrtc/#h-note-50", + "https://www.w3.org/TR/webrtc/#issue-container-generatedID-52", + "https://www.w3.org/TR/webrtc/#h-note-52", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpencodingparameters-maxbitrate-8", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-createoffer-27", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-createanswer-16", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-addtransceiver-9", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-createanswer-15-dedup-138", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-addtransceiver-10", "https://www.w3.org/TR/webrtc/#ref-for-dom-peerconnection-setremotedescription-13", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-45", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-44", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-receiver-6", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-getparameters-9", - "https://www.w3.org/TR/webrtc/#issue-container-generatedID-51", - "https://www.w3.org/TR/webrtc/#h-note-51", + "https://www.w3.org/TR/webrtc/#issue-container-generatedID-53", + "https://www.w3.org/TR/webrtc/#h-note-53", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-45", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-46", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-47", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-48", "https://www.w3.org/TR/webrtc/#rtcrtpencodingspatialsim-example*", - "https://www.w3.org/TR/webrtc/#x5-4-1-1-encoding-parameter-examples-dedup-8", + "https://www.w3.org/TR/webrtc/#x5-4-1-1-encoding-parameter-examples", "https://www.w3.org/TR/webrtc/#example-3", "https://www.w3.org/TR/webrtc/#hold-functionality", "https://www.w3.org/TR/webrtc/#x5-4-2-hold-functionality", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-direction-10", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-direction-8", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-replacetrack-8", "https://www.w3.org/TR/webrtc/#example-4", "https://www.w3.org/TR/webrtc/#example-5", @@ -3443,27 +3575,27 @@ "https://www.w3.org/TR/webrtc/#rtcdtlstransport-interface", "https://www.w3.org/TR/webrtc/#x5-5-rtcdtlstransport-interface", "https://www.w3.org/TR/webrtc/#dom-rtcdtlstransport", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransport-18", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-57", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-49", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransport-19", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-55-dedup-139", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-48", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransport-20", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransport-21", "https://www.w3.org/TR/webrtc/#ref-for-dom-peerconnection-setlocaldescription-14", "https://www.w3.org/TR/webrtc/#ref-for-dom-peerconnection-setremotedescription-14", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransport-21", - "https://www.w3.org/TR/webrtc/#ref-for-dom-icetransport-component-1", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-69", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-70", - "https://www.w3.org/TR/webrtc/#issue-container-generatedID-52", - "https://www.w3.org/TR/webrtc/#h-note-52", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-71", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransport-22", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransport-state-1", + "https://www.w3.org/TR/webrtc/#ref-for-dom-icetransport-component-1", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-64", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-65", + "https://www.w3.org/TR/webrtc/#issue-container-generatedID-54", + "https://www.w3.org/TR/webrtc/#h-note-54", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-66", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransport-23", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransport-state-1", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransport-24", "https://www.w3.org/TR/webrtc/#dfn-dtlstransportstate", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransportstate-new-3", "https://www.w3.org/TR/webrtc/#dfn-remotecertificates", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransport-24", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransport-25", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransportstate-failed-2", "https://www.w3.org/TR/webrtc/#ref-for-dfn-dtlstransportstate-2", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransportstate-failed-3", @@ -3473,17 +3605,17 @@ "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcerrordetailtype-fingerprint-failure-1", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcerrordetailtype-1", "https://www.w3.org/TR/webrtc/#ref-for-event-dtlstransport-statechange-1", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransport-25", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransport-26", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransport-27", "https://www.w3.org/TR/webrtc/#ref-for-dfn-dtlstransportstate-3", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransportstate-connected-2", "https://www.w3.org/TR/webrtc/#ref-for-dfn-remotecertificates-1", "https://www.w3.org/TR/webrtc/#ref-for-event-dtlstransport-statechange-2", "https://www.w3.org/TR/webrtc/#webidl-560333957", "https://www.w3.org/TR/webrtc/#idl-def-rtcdtlstransport", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransport-27", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransport-28", "https://www.w3.org/TR/webrtc/#idl-def-rtcdtlstransport-icetransport", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-26", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-21", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransport-icetransport-1", "https://www.w3.org/TR/webrtc/#idl-def-rtcdtlstransport-state", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransportstate-1", @@ -3496,9 +3628,9 @@ "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransport-onerror-1", "https://www.w3.org/TR/webrtc/#attributes-12", "https://www.w3.org/TR/webrtc/#dom-rtcdtlstransport-icetransport", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-27", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-22", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransport-icetransport-2", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransport-28", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransport-29", "https://www.w3.org/TR/webrtc/#dom-rtcdtlstransport-state", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransportstate-2", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransport-state-3", @@ -3545,120 +3677,163 @@ "https://www.w3.org/TR/webrtc/#rtcicetransport", "https://www.w3.org/TR/webrtc/#x5-6-rtcicetransport-interface", "https://www.w3.org/TR/webrtc/#dom-rtcicetransport", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-28", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-29", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-23", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-24", "https://www.w3.org/TR/webrtc/#ref-for-dom-peerconnection-setlocaldescription-15", "https://www.w3.org/TR/webrtc/#ref-for-dom-peerconnection-setremotedescription-15", "https://www.w3.org/TR/webrtc/#ref-for-dfn-ice-agent-25", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-30", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-25", "https://www.w3.org/TR/webrtc/#ref-for-dfn-ice-agent-26", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-31", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-26", "https://www.w3.org/TR/webrtc/#ref-for-dom-icetransport-component-2", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-72", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-73", - "https://www.w3.org/TR/webrtc/#issue-container-generatedID-53", - "https://www.w3.org/TR/webrtc/#h-note-53", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-74", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-32", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-67-dedup-140", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-68-dedup-141", + "https://www.w3.org/TR/webrtc/#issue-container-generatedID-55", + "https://www.w3.org/TR/webrtc/#h-note-55", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-69", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-27", "https://www.w3.org/TR/webrtc/#ref-for-dom-icetransport-state-1", + "https://www.w3.org/TR/webrtc/#rtcicetransport-gathering-change-wrapper", + "https://www.w3.org/TR/webrtc/#rtcicetransport-gathering", "https://www.w3.org/TR/webrtc/#ref-for-dfn-ice-agent-27", "https://www.w3.org/TR/webrtc/#ref-for-dfn-generation-7", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-33", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-116", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-ice-agent-28", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-isclosed-28", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-28", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-28-dedup-142", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-120", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-117-dedup-143", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-ice-agent-26-dedup-144", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-isclosed-26", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-34", "https://www.w3.org/TR/webrtc/#ref-for-dfn-icegathererstate-1", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicegathererstate-gathering-3", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-icegatheringstate-3", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicegatheringstate-7", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-icegatheringstate-4", "https://www.w3.org/TR/webrtc/#ref-for-event-icetransport-gatheringstatechange-1", "https://www.w3.org/TR/webrtc/#ref-for-update-ice-gathering-state-1", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-ice-agent-29", + "https://www.w3.org/TR/webrtc/#ref-for-event-icegatheringstatechange-3", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-ice-agent-28", "https://www.w3.org/TR/webrtc/#ref-for-dfn-generation-8", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-35", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-117", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-ice-agent-30", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-isclosed-29", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-29", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-29-dedup-145", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-121", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-118-dedup-146", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-ice-agent-28-dedup-147", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-isclosed-27", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-36", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-creating-an-rtcicecandidate-2", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidateinit-sdpmid-5", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidateinit-sdpmlineindex-5", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-37", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidateinit-usernamefragment-4", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-pendinglocaldescription-14", "https://www.w3.org/TR/webrtc/#ref-for-dfn-generation-9", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidateinit-candidate-9", - "https://www.w3.org/TR/webrtc/#ref-for-event-icecandidate-5", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnectioniceevent-6", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-pendinglocaldescription-15", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-currentlocaldescription-14", "https://www.w3.org/TR/webrtc/#ref-for-dfn-generation-10", - "https://www.w3.org/TR/webrtc/#issue-container-generatedID-54", - "https://www.w3.org/TR/webrtc/#h-note-54", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-currentlocaldescription-15", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-creating-an-rtcicecandidate-2", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidateinit-sdpmid-4", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidateinit-sdpmid-4-dedup-148", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidateinit-sdpmlineindex-4", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidateinit-sdpmlineindex-4-dedup-149", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-30", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-30-dedup-150", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidateinit-usernamefragment-3", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidateinit-usernamefragment-3-dedup-151", "https://www.w3.org/TR/webrtc/#ref-for-dfn-generation-11", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidateinit-candidate-8", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidateinit-candidate-8-dedup-152", + "https://www.w3.org/TR/webrtc/#ref-for-event-icecandidate-4", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnectioniceevent-5", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnectioniceevent-5-dedup-153", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-generation-10-dedup-154", + "https://www.w3.org/TR/webrtc/#issue-container-generatedID-52-dedup-155", + "https://www.w3.org/TR/webrtc/#h-note-52-dedup-156", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-generation-11-dedup-157", "https://www.w3.org/TR/webrtc/#ref-for-dfn-icegathererstate-2", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicegathererstate-complete-2", "https://www.w3.org/TR/webrtc/#ref-for-event-icetransport-gatheringstatechange-2", "https://www.w3.org/TR/webrtc/#ref-for-update-ice-gathering-state-2", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-ice-agent-31", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-38", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-ice-candidate-pool-size-3", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-118", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-ice-agent-32", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-isclosed-30", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-pendinglocaldescription-14", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-currentlocaldescription-14", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-ice-agent-29", "https://www.w3.org/TR/webrtc/#ref-for-dfn-generation-12", + "https://www.w3.org/TR/webrtc/#issue-container-generatedID-56", + "https://www.w3.org/TR/webrtc/#h-note-56", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-generation-13", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-generation-14", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-isclosed-28", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-icegathererstate-2-dedup-158", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicegathererstate-complete-2-dedup-159", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-icegatheringstate-5", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicegatheringstate-8", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-icegatheringstate-6", + "https://www.w3.org/TR/webrtc/#ref-for-event-icetransport-gatheringstatechange-2-dedup-160", + "https://www.w3.org/TR/webrtc/#ref-for-event-icegatheringstatechange-4", + "https://www.w3.org/TR/webrtc/#ref-for-event-icecandidate-5", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnectioniceevent-6", + "https://www.w3.org/TR/webrtc/#issue-container-generatedID-57", + "https://www.w3.org/TR/webrtc/#h-note-57", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-31", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-122", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-ice-agent-30", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-32", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-ice-candidate-pool-size-3", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-123", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-ice-agent-31", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-isclosed-29", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-pendinglocaldescription-16", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-currentlocaldescription-16", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-generation-15", "https://www.w3.org/TR/webrtc/#ref-for-dfn-surface-the-candidate-2", "https://www.w3.org/TR/webrtc/#ref-for-dfn-earlycandidates-1", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-ice-agent-33", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-ice-agent-32", "https://www.w3.org/TR/webrtc/#ref-for-dfn-icerole-7", "https://www.w3.org/TR/webrtc/#dfn-release-early-candidates", "https://www.w3.org/TR/webrtc/#ref-for-dfn-earlycandidates-2", "https://www.w3.org/TR/webrtc/#ref-for-dfn-surface-the-candidate-3", "https://www.w3.org/TR/webrtc/#ref-for-dfn-earlycandidates-3", "https://www.w3.org/TR/webrtc/#dfn-surface-the-candidate", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-isclosed-31", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-39", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-pendinglocaldescription-15", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-generation-13", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-pendinglocaldescription-16", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-currentlocaldescription-15", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-generation-14", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-currentlocaldescription-16", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-isclosed-30", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-33", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-pendinglocaldescription-17", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-generation-16", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-pendinglocaldescription-18", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-currentlocaldescription-17", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-generation-17", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-currentlocaldescription-18", "https://www.w3.org/TR/webrtc/#ref-for-dfn-creating-an-rtcicecandidate-3", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidateinit-sdpmid-6", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidateinit-sdpmlineindex-6", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-40", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidateinit-usernamefragment-5", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidateinit-candidate-10", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidateinit-sdpmid-5", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidateinit-sdpmlineindex-5", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-34-dedup-161", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidateinit-usernamefragment-4", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidateinit-candidate-9", "https://www.w3.org/TR/webrtc/#ref-for-dfn-candidate-attribute-15", "https://www.w3.org/TR/webrtc/#ref-for-event-icecandidate-6", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnectioniceevent-7", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-1", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-41", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-35", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-2", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-ice-agent-34", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-42", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-ice-agent-33", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-36-dedup-162", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-3", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-119", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-ice-agent-35", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-isclosed-32", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-43", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidatepair-1", + "https://www.w3.org/TR/webrtc/#dfn-change-the-selected-candidate-pair-and-state", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-124", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-ice-agent-34", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-isclosed-31", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-37", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-creating-an-rtcicecandidatepair-1", "https://www.w3.org/TR/webrtc/#ref-for-dfn-selectedcandidatepair-2", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-4", "https://www.w3.org/TR/webrtc/#ref-for-dfn-icetransportstate-2", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-5", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-ice-connection-state-4", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-iceconnectionstate-9", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtciceconnectionstate-5", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-ice-connection-state-5", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-connection-state-7", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-iceconnectionstate-10", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-connectionstate-7", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnectionstate-6", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-connection-state-8", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-connectionstate-8", "https://www.w3.org/TR/webrtc/#ref-for-event-icetransport-selectedcandidatepairchange-1", "https://www.w3.org/TR/webrtc/#ref-for-event-icetransport-statechange-1", "https://www.w3.org/TR/webrtc/#ref-for-event-iceconnectionstatechange-2", "https://www.w3.org/TR/webrtc/#ref-for-event-connectionstatechange-3", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-44", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-38", "https://www.w3.org/TR/webrtc/#dfn-icetransportstate", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-new-5", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-new-4", "https://www.w3.org/TR/webrtc/#dfn-icegathererstate", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicegatheringstate-new-3", "https://www.w3.org/TR/webrtc/#dfn-selectedcandidatepair", @@ -3666,7 +3841,7 @@ "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicerole-unknown-2", "https://www.w3.org/TR/webrtc/#webidl-744203390", "https://www.w3.org/TR/webrtc/#idl-def-rtcicetransport", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-45", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-39", "https://www.w3.org/TR/webrtc/#idl-def-rtcicetransport-role", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicerole-1", "https://www.w3.org/TR/webrtc/#ref-for-dom-icetransport-role-1", @@ -3686,7 +3861,7 @@ "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-20", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-getremotecandidates-1", "https://www.w3.org/TR/webrtc/#idl-def-rtcicetransport-getselectedcandidatepair", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidatepair-2", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidatepair-1", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-getselectedcandidatepair-1", "https://www.w3.org/TR/webrtc/#idl-def-rtcicetransport-getlocalparameters", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtciceparameters-1", @@ -3707,7 +3882,7 @@ "https://www.w3.org/TR/webrtc/#dom-icetransport-component", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecomponent-5", "https://www.w3.org/TR/webrtc/#ref-for-dom-icetransport-component-4", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-46", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-40", "https://www.w3.org/TR/webrtc/#ref-for-dom-icetransport-component-5", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecomponent-rtp-2", "https://www.w3.org/TR/webrtc/#dom-icetransport-state", @@ -3720,38 +3895,39 @@ "https://www.w3.org/TR/webrtc/#ref-for-dfn-icegathererstate-3", "https://www.w3.org/TR/webrtc/#dom-rtcicetransport-onstatechange", "https://www.w3.org/TR/webrtc/#ref-for-event-icetransport-statechange-2", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-47", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-41", "https://www.w3.org/TR/webrtc/#ref-for-dom-icetransport-state-4", "https://www.w3.org/TR/webrtc/#dom-rtcicetransport-ongatheringstatechange", + "https://www.w3.org/TR/webrtc/#fire-gatheringstatechange", "https://www.w3.org/TR/webrtc/#ref-for-event-icetransport-gatheringstatechange-3", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-48", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-ice-gathering-state-6", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-42", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-icegathererstate-4", "https://www.w3.org/TR/webrtc/#dom-rtcicetransport-onselectedcandidatepairchange", "https://www.w3.org/TR/webrtc/#ref-for-event-icetransport-selectedcandidatepairchange-2", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-49", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-43", "https://www.w3.org/TR/webrtc/#methods-10", "https://www.w3.org/TR/webrtc/#dom-rtcicetransport-getlocalcandidates", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-50", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-44", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-onicecandidate-2", "https://www.w3.org/TR/webrtc/#dom-rtcicetransport-getremotecandidates", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-51", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-45", "https://www.w3.org/TR/webrtc/#ref-for-dom-peerconnection-addicecandidate-13", - "https://www.w3.org/TR/webrtc/#issue-container-generatedID-55", - "https://www.w3.org/TR/webrtc/#h-note-55", + "https://www.w3.org/TR/webrtc/#issue-container-generatedID-58", + "https://www.w3.org/TR/webrtc/#h-note-58", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-getremotecandidates-2", "https://www.w3.org/TR/webrtc/#ref-for-dom-peerconnection-addicecandidate-14", "https://www.w3.org/TR/webrtc/#dom-rtcicetransport-getselectedcandidatepair", "https://www.w3.org/TR/webrtc/#ref-for-dfn-selectedcandidatepair-3", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-52", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-46", "https://www.w3.org/TR/webrtc/#ref-for-dom-icetransport-state-5", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-new-6", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-closed-7", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-new-5", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-closed-5", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-getselectedcandidatepair-2", "https://www.w3.org/TR/webrtc/#dom-rtcicetransport-getlocalparameters", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-53", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-47", "https://www.w3.org/TR/webrtc/#ref-for-dom-peerconnection-setlocaldescription-16", "https://www.w3.org/TR/webrtc/#dom-rtcicetransport-getremoteparameters", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-54", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-48", "https://www.w3.org/TR/webrtc/#ref-for-dom-peerconnection-setremotedescription-16", "https://www.w3.org/TR/webrtc/#rtciceparameters", "https://www.w3.org/TR/webrtc/#x5-6-1-rtciceparameters-dictionary", @@ -3767,24 +3943,32 @@ "https://www.w3.org/TR/webrtc/#ref-for-dom-rtciceparameters-4", "https://www.w3.org/TR/webrtc/#dom-rtciceparameters-usernamefragment", "https://www.w3.org/TR/webrtc/#dom-rtciceparameters-password", + "https://www.w3.org/TR/webrtc/#rtcicecandidatepair-change-wrapper", "https://www.w3.org/TR/webrtc/#rtcicecandidatepair", "https://www.w3.org/TR/webrtc/#x5-6-2-rtcicecandidatepair-dictionary", "https://www.w3.org/TR/webrtc/#dom-rtcicecandidatepair", - "https://www.w3.org/TR/webrtc/#webidl-1682308029", - "https://www.w3.org/TR/webrtc/#idl-def-rtcicecandidatepair", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidatepair-3", - "https://www.w3.org/TR/webrtc/#idl-def-rtcicecandidatepair-local", + "https://www.w3.org/TR/webrtc/#x5-6-2-rtcicecandidatepair-interface", + "https://www.w3.org/TR/webrtc/#dom-rtcicecandidatepair-dedup-163", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidatepair-2", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-21", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidatepair-local-1", - "https://www.w3.org/TR/webrtc/#idl-def-rtcicecandidatepair-remote", + "https://www.w3.org/TR/webrtc/#dfn-creating-an-rtcicecandidatepair", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-22", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidatepair-remote-2", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidatepair-3", + "https://www.w3.org/TR/webrtc/#dfn-local", + "https://www.w3.org/TR/webrtc/#dfn-remote", + "https://www.w3.org/TR/webrtc/#webidl-236092971", "https://www.w3.org/TR/webrtc/#dictionary-rtcicecandidatepair-members", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidatepair-4", + "https://www.w3.org/TR/webrtc/#attributes-14", + "https://www.w3.org/TR/webrtc/#attributes-14-dedup-164", "https://www.w3.org/TR/webrtc/#dom-rtcicecandidatepair-local", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-23", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-25", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidatepair-local-2", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-local-1", "https://www.w3.org/TR/webrtc/#dom-rtcicecandidatepair-remote", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-24", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-26", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidatepair-remote-3", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-remote-1", "https://www.w3.org/TR/webrtc/#rtcicegathererstate", "https://www.w3.org/TR/webrtc/#x5-6-3-rtcicegathererstate-enum", "https://www.w3.org/TR/webrtc/#dom-rtcicegathererstate", @@ -3796,88 +3980,90 @@ "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicegathererstate-complete-3", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicegathererstate-4", "https://www.w3.org/TR/webrtc/#dom-rtcicegathererstate-new", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-55", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-49", "https://www.w3.org/TR/webrtc/#dom-rtcicegathererstate-gathering", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-56", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-50", "https://www.w3.org/TR/webrtc/#dom-rtcicegathererstate-complete", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-57", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-51", "https://www.w3.org/TR/webrtc/#rtcicetransportstate", "https://www.w3.org/TR/webrtc/#x5-6-4-rtcicetransportstate-enum", "https://www.w3.org/TR/webrtc/#dom-rtcicetransportstate", - "https://www.w3.org/TR/webrtc/#webidl-1324124770", + "https://www.w3.org/TR/webrtc/#webidl-709672330", "https://www.w3.org/TR/webrtc/#idl-def-rtcicetransportstate", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-8", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-new-7", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-closed-6", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-failed-2", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-disconnected-2", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-new-6", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-checking-3", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-connected-3", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-completed-4", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-disconnected-3", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-failed-3", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-closed-8", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-completed-3", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-connected-2", "https://www.w3.org/TR/webrtc/#rtcicetransportstate-description", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-9", + "https://www.w3.org/TR/webrtc/#dom-rtcicetransportstate-closed", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-52", + "https://www.w3.org/TR/webrtc/#dom-rtcicetransportstate-failed", + "https://www.w3.org/TR/webrtc/#rtcicetransportstate-failed-description-change-wrapper", + "https://www.w3.org/TR/webrtc/#rtcicetransportstate-failed-description", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-53", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-53-dedup-165", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-failed-3", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-failed-3-dedup-166", + "https://www.w3.org/TR/webrtc/#dom-rtcicetransportstate-disconnected", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-ice-agent-35", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-54", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-55", "https://www.w3.org/TR/webrtc/#dom-rtcicetransportstate-new", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-58", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-56", "https://www.w3.org/TR/webrtc/#dom-rtcicetransportstate-checking", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-59", - "https://www.w3.org/TR/webrtc/#dom-rtcicetransportstate-connected", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-60", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-checking-4", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-disconnected-4", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-57", + "https://www.w3.org/TR/webrtc/#ref-for-dom-peerconnection-addicecandidate-15", "https://www.w3.org/TR/webrtc/#dom-rtcicetransportstate-completed", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-61", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-58", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-failed-4", - "https://www.w3.org/TR/webrtc/#dom-rtcicetransportstate-disconnected", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-ice-agent-36", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-62", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-63", - "https://www.w3.org/TR/webrtc/#dom-rtcicetransportstate-failed", - "https://www.w3.org/TR/webrtc/#rtcicetransportstate-failed-description-change-wrapper", - "https://www.w3.org/TR/webrtc/#rtcicetransportstate-failed-description", - "https://www.w3.org/TR/webrtc/#rtcicetransportstate-failed-description-new", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-64", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-failed-5", - "https://www.w3.org/TR/webrtc/#dom-rtcicetransportstate-closed", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-65", - "https://www.w3.org/TR/webrtc/#issue-container-generatedID-56", - "https://www.w3.org/TR/webrtc/#h-note-56", + "https://www.w3.org/TR/webrtc/#dom-rtcicetransportstate-connected", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-59", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-checking-4", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-disconnected-3", + "https://www.w3.org/TR/webrtc/#issue-container-generatedID-59", + "https://www.w3.org/TR/webrtc/#h-note-59", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-checking-5", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-completed-4", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-connected-3", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-completed-5", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-connected-4", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-completed-6", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-disconnected-5", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-disconnected-4", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-checking-6", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-failed-6", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-completed-7", - "https://www.w3.org/TR/webrtc/#ref-for-dom-peerconnection-addicecandidate-15", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-candidate-11", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-failed-5", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-completed-6", + "https://www.w3.org/TR/webrtc/#ref-for-dom-peerconnection-addicecandidate-16", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-candidate-12", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-cantrickleicecandidates-3", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-66", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-60", "https://www.w3.org/TR/webrtc/#ref-for-dom-peerconnection-setlocaldescription-17", "https://www.w3.org/TR/webrtc/#ref-for-dom-peerconnection-setremotedescription-17", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-new-7", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-new-8", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-new-9", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-checking-7", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-checking-8", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-connected-5", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-connected-4", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-checking-9", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-disconnected-6", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-disconnected-5", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-checking-10", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-failed-7", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-disconnected-7", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-failed-6", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-disconnected-6", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-checking-11", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-connected-6", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-connected-5", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-completed-7", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-completed-8", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-completed-9", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-disconnected-7", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-disconnected-8", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-disconnected-9", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-failed-8", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-failed-7", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-checking-12", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-completed-10", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-connected-7", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-120", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-completed-9", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-connected-6", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-125", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-close-5", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-closed-9", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransportstate-closed-7", "https://www.w3.org/TR/webrtc/#fig-non-normative-ice-transport-state-transition-diagram", "https://www.w3.org/TR/webrtc/#rtcicerole", "https://www.w3.org/TR/webrtc/#x5-6-5-rtcicerole-enum", @@ -3917,71 +4103,71 @@ "https://www.w3.org/TR/webrtc/#ref-for-dom-rtctrackevent-constructor-1", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtctrackeventinit-2", "https://www.w3.org/TR/webrtc/#idl-def-rtctrackevent-receiver", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-50", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-49", "https://www.w3.org/TR/webrtc/#ref-for-dom-trackevent-receiver-2", "https://www.w3.org/TR/webrtc/#idl-def-rtctrackevent-track", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtctrackevent-track-2", "https://www.w3.org/TR/webrtc/#idl-def-rtctrackevent-streams", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtctrackevent-streams-2", "https://www.w3.org/TR/webrtc/#idl-def-rtctrackevent-transceiver", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-75", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-70", "https://www.w3.org/TR/webrtc/#ref-for-dom-trackevent-transceiver-2", "https://www.w3.org/TR/webrtc/#constructors-4", "https://www.w3.org/TR/webrtc/#dom-rtctrackevent-constructor", - "https://www.w3.org/TR/webrtc/#attributes-14", + "https://www.w3.org/TR/webrtc/#attributes-15", "https://www.w3.org/TR/webrtc/#dom-trackevent-receiver", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-51", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-50", "https://www.w3.org/TR/webrtc/#ref-for-dom-trackevent-receiver-3", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-52", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-51", "https://www.w3.org/TR/webrtc/#dom-rtctrackevent-track", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtctrackevent-track-3", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-53", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-52", "https://www.w3.org/TR/webrtc/#ref-for-dom-trackevent-receiver-4", "https://www.w3.org/TR/webrtc/#dom-rtctrackevent-streams", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtctrackevent-streams-3", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtctrackevent-track-4", "https://www.w3.org/TR/webrtc/#dom-trackevent-transceiver", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-76", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-71", "https://www.w3.org/TR/webrtc/#ref-for-dom-trackevent-transceiver-3", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-77", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-72", "https://www.w3.org/TR/webrtc/#webidl-2051972149", "https://www.w3.org/TR/webrtc/#idl-def-rtctrackeventinit", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtctrackeventinit-3", "https://www.w3.org/TR/webrtc/#idl-def-rtctrackeventinit-receiver", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-54", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-53", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtctrackeventinit-receiver-2", "https://www.w3.org/TR/webrtc/#idl-def-rtctrackeventinit-track", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtctrackeventinit-track-2", "https://www.w3.org/TR/webrtc/#idl-def-rtctrackeventinit-streams", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtctrackeventinit-streams-2", "https://www.w3.org/TR/webrtc/#idl-def-rtctrackeventinit-transceiver", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-78", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-73", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtctrackeventinit-transceiver-2", "https://www.w3.org/TR/webrtc/#dictionary-rtctrackeventinit-members", "https://www.w3.org/TR/webrtc/#dom-rtctrackeventinit", "https://www.w3.org/TR/webrtc/#dom-rtctrackeventinit-receiver", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-55", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-54", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtctrackeventinit-receiver-3", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-56", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-55", "https://www.w3.org/TR/webrtc/#dom-rtctrackeventinit-track", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtctrackeventinit-track-3", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-57", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-56", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtctrackeventinit-receiver-4", "https://www.w3.org/TR/webrtc/#dom-rtctrackeventinit-streams", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtctrackeventinit-streams-3", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtctrackeventinit-track-4", "https://www.w3.org/TR/webrtc/#dom-rtctrackeventinit-transceiver", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-79", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-74", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtctrackeventinit-transceiver-3", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-80", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-75", "https://www.w3.org/TR/webrtc/#peer-to-peer-data-api", "https://www.w3.org/TR/webrtc/#x6-peer-to-peer-data-api", "https://www.w3.org/TR/webrtc/#rtcpeerconnection-interface-extensions-0", "https://www.w3.org/TR/webrtc/#x6-1-rtcpeerconnection-interface-extensions", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-121", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-126", "https://www.w3.org/TR/webrtc/#webidl-862292147", "https://www.w3.org/TR/webrtc/#idl-def-rtcpeerconnection-partial-3", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-122", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-127", "https://www.w3.org/TR/webrtc/#idl-def-rtcpeerconnection-sctp", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsctptransport-1", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-sctp-1", @@ -3991,7 +4177,7 @@ "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannelinit-1", "https://www.w3.org/TR/webrtc/#idl-def-rtcpeerconnection-ondatachannel", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-ondatachannel-1", - "https://www.w3.org/TR/webrtc/#attributes-15", + "https://www.w3.org/TR/webrtc/#attributes-16", "https://www.w3.org/TR/webrtc/#dom-rtcpeerconnection-sctp", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsctptransport-2", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsctptransport-3", @@ -4003,8 +4189,8 @@ "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-9", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannelinit-2", "https://www.w3.org/TR/webrtc/#ref-for-dom-peerconnection-createdatachannel-2", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-123", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-isclosed-33", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-128", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-isclosed-32", "https://www.w3.org/TR/webrtc/#ref-for-dfn-create-an-rtcdatachannel-1", "https://www.w3.org/TR/webrtc/#ref-for-dfn-datachannellabel-1", "https://www.w3.org/TR/webrtc/#ref-for-dfn-datachannellabel-2", @@ -4022,8 +4208,8 @@ "https://www.w3.org/TR/webrtc/#ref-for-dfn-datachannelid-1", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannelinit-id-1", "https://www.w3.org/TR/webrtc/#ref-for-dfn-negotiated-2", - "https://www.w3.org/TR/webrtc/#issue-container-generatedID-57", - "https://www.w3.org/TR/webrtc/#h-note-57", + "https://www.w3.org/TR/webrtc/#issue-container-generatedID-60", + "https://www.w3.org/TR/webrtc/#h-note-60", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannelinit-id-2", "https://www.w3.org/TR/webrtc/#ref-for-dfn-negotiated-3", "https://www.w3.org/TR/webrtc/#ref-for-dfn-datachannelid-2", @@ -4038,8 +4224,8 @@ "https://www.w3.org/TR/webrtc/#ref-for-dfn-datachannelid-5", "https://www.w3.org/TR/webrtc/#ref-for-dfn-datachannelid-6", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-10", - "https://www.w3.org/TR/webrtc/#issue-container-generatedID-58", - "https://www.w3.org/TR/webrtc/#h-note-58", + "https://www.w3.org/TR/webrtc/#issue-container-generatedID-61", + "https://www.w3.org/TR/webrtc/#h-note-61", "https://www.w3.org/TR/webrtc/#ref-for-dfn-datachannelid-7", "https://www.w3.org/TR/webrtc/#ref-for-dfn-rtcsctptransport-connected-1", "https://www.w3.org/TR/webrtc/#ref-for-dfn-sctptransport-9", @@ -4049,6 +4235,7 @@ "https://www.w3.org/TR/webrtc/#ref-for-dfn-maxchannels-1", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-11", "https://www.w3.org/TR/webrtc/#ref-for-dfn-update-the-negotiation-needed-flag-15", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-datachannels-1", "https://www.w3.org/TR/webrtc/#ref-for-dfn-data-transport-1", "https://www.w3.org/TR/webrtc/#rtcsctptransport-interface", "https://www.w3.org/TR/webrtc/#x6-1-1-rtcsctptransport-interface", @@ -4075,7 +4262,7 @@ "https://www.w3.org/TR/webrtc/#dfn-rtcsctptransport-connected", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsctptransport-8", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsctptransport-9", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-124", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-129", "https://www.w3.org/TR/webrtc/#ref-for-dfn-maxchannels-2", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-12", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-13", @@ -4086,8 +4273,8 @@ "https://www.w3.org/TR/webrtc/#ref-for-dfn-unable-to-create-an-rtcdatachannel-1", "https://www.w3.org/TR/webrtc/#ref-for-announce-datachannel-open-1", "https://www.w3.org/TR/webrtc/#ref-for-event-sctptransport-statechange-1", - "https://www.w3.org/TR/webrtc/#issue-container-generatedID-59", - "https://www.w3.org/TR/webrtc/#h-note-59", + "https://www.w3.org/TR/webrtc/#issue-container-generatedID-62", + "https://www.w3.org/TR/webrtc/#h-note-62", "https://www.w3.org/TR/webrtc/#ref-for-event-datachannel-open-1", "https://www.w3.org/TR/webrtc/#ref-for-announce-datachannel-open-2", "https://www.w3.org/TR/webrtc/#ref-for-event-datachannel-open-2", @@ -4095,7 +4282,7 @@ "https://www.w3.org/TR/webrtc/#idl-def-rtcsctptransport", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsctptransport-10", "https://www.w3.org/TR/webrtc/#idl-def-rtcsctptransport-transport", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransport-29", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransport-30", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsctptransport-transport-1", "https://www.w3.org/TR/webrtc/#idl-def-rtcsctptransport-state", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsctptransportstate-1", @@ -4106,9 +4293,9 @@ "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsctptransport-maxchannels-1", "https://www.w3.org/TR/webrtc/#idl-def-rtcsctptransport-onstatechange", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsctptransport-onstatechange-1", - "https://www.w3.org/TR/webrtc/#attributes-16", + "https://www.w3.org/TR/webrtc/#attributes-17", "https://www.w3.org/TR/webrtc/#dom-rtcsctptransport-transport", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransport-30", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransport-31", "https://www.w3.org/TR/webrtc/#dom-rtcsctptransport-state", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsctptransportstate-2", "https://www.w3.org/TR/webrtc/#ref-for-dfn-sctptransportstate-2", @@ -4119,8 +4306,8 @@ "https://www.w3.org/TR/webrtc/#dom-rtcsctptransport-maxchannels", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-15", "https://www.w3.org/TR/webrtc/#ref-for-dfn-maxchannels-4", - "https://www.w3.org/TR/webrtc/#issue-container-generatedID-60", - "https://www.w3.org/TR/webrtc/#h-note-60", + "https://www.w3.org/TR/webrtc/#issue-container-generatedID-63", + "https://www.w3.org/TR/webrtc/#h-note-63", "https://www.w3.org/TR/webrtc/#ref-for-idl-def-RTCSctpTransportState.connected-2", "https://www.w3.org/TR/webrtc/#dom-rtcsctptransport-onstatechange", "https://www.w3.org/TR/webrtc/#ref-for-event-sctptransport-statechange-2", @@ -4148,7 +4335,7 @@ "https://www.w3.org/TR/webrtc/#dom-rtcdatachannel", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-16", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-17", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-125", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-130", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-18", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-19", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannelinit-negotiated-2", @@ -4193,12 +4380,20 @@ "https://www.w3.org/TR/webrtc/#dfn-datachannelprotocol", "https://www.w3.org/TR/webrtc/#dfn-negotiated", "https://www.w3.org/TR/webrtc/#dfn-datachannelid", + "https://www.w3.org/TR/webrtc/#rtcdatachannel-istransferable-init-1", + "https://www.w3.org/TR/webrtc/#rtcdatachannel-istransferable-init-1-change-wrapper", + "https://www.w3.org/TR/webrtc/#dfn-istransferable", + "https://www.w3.org/TR/webrtc/#rtcdatachannel-istransferable-init-2", + "https://www.w3.org/TR/webrtc/#rtcdatachannel-istransferable-init-2-change-wrapper", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-istransferable-1", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-receiving-messages-on-a-data-channel-1", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-30", "https://www.w3.org/TR/webrtc/#announcing-a-data-channel-as-open", "https://www.w3.org/TR/webrtc/#x6-2-2-announcing-a-data-channel-as-open", "https://www.w3.org/TR/webrtc/#announce-datachannel-open", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-126", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-isclosed-34", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-30", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-131", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-isclosed-33", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-31", "https://www.w3.org/TR/webrtc/#ref-for-dfn-readystate-3", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannelstate-closing-1", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannelstate-closed-3", @@ -4209,9 +4404,9 @@ "https://www.w3.org/TR/webrtc/#x6-2-3-announcing-a-data-channel-instance", "https://www.w3.org/TR/webrtc/#ref-for-dfn-data-transport-4", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannelinit-negotiated-5", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-127", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-132", "https://www.w3.org/TR/webrtc/#ref-for-dfn-data-transport-5", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-isclosed-35", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-isclosed-34", "https://www.w3.org/TR/webrtc/#ref-for-dfn-create-an-rtcdatachannel-2", "https://www.w3.org/TR/webrtc/#ref-for-dfn-data-transport-6", "https://www.w3.org/TR/webrtc/#ref-for-dfn-datachannellabel-3", @@ -4221,24 +4416,29 @@ "https://www.w3.org/TR/webrtc/#ref-for-dfn-datachannelprotocol-3", "https://www.w3.org/TR/webrtc/#ref-for-dfn-datachannelid-13", "https://www.w3.org/TR/webrtc/#ref-for-dfn-negotiated-5", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-datachannels-2", "https://www.w3.org/TR/webrtc/#ref-for-dfn-readystate-5", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannelstate-open-2", "https://www.w3.org/TR/webrtc/#ref-for-event-datachannel-open-4", - "https://www.w3.org/TR/webrtc/#issue-container-generatedID-61", - "https://www.w3.org/TR/webrtc/#h-note-61", + "https://www.w3.org/TR/webrtc/#issue-container-generatedID-64", + "https://www.w3.org/TR/webrtc/#h-note-64", "https://www.w3.org/TR/webrtc/#ref-for-event-datachannel-2", "https://www.w3.org/TR/webrtc/#ref-for-event-datachannel-open-5", "https://www.w3.org/TR/webrtc/#ref-for-event-datachannel-3", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannelevent-3", "https://www.w3.org/TR/webrtc/#ref-for-dom-datachannelevent-channel-1", "https://www.w3.org/TR/webrtc/#ref-for-announce-datachannel-open-4", + "https://www.w3.org/TR/webrtc/#closing-procedure-change-wrapper", "https://www.w3.org/TR/webrtc/#closing-procedure", "https://www.w3.org/TR/webrtc/#x6-2-4-closing-procedure", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-31", + "https://www.w3.org/TR/webrtc/#x6-2-4-closing-procedure-dedup-167", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-32", "https://www.w3.org/TR/webrtc/#ref-for-dfn-data-transport-7", "https://www.w3.org/TR/webrtc/#data-transport-closing-procedure", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-32", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-33", "https://www.w3.org/TR/webrtc/#ref-for-dfn-data-transport-8", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-133", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-datachannels-3", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-close-1", "https://www.w3.org/TR/webrtc/#ref-for-dfn-readystate-6", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannelstate-closing-2", @@ -4247,17 +4447,20 @@ "https://www.w3.org/TR/webrtc/#ref-for-dfn-data-transport-10", "https://www.w3.org/TR/webrtc/#ref-for-data-transport-closed-1", "https://www.w3.org/TR/webrtc/#ref-for-dfn-data-transport-11", + "https://www.w3.org/TR/webrtc/#ref-for-data-transport-closed-1-dedup-168", "https://www.w3.org/TR/webrtc/#announcing-a-data-channel-as-closed", "https://www.w3.org/TR/webrtc/#x6-2-5-announcing-a-data-channel-as-closed", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-33", + "https://www.w3.org/TR/webrtc/#dfn-announcing-a-data-channel-as-closed", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-34", "https://www.w3.org/TR/webrtc/#ref-for-dfn-data-transport-12", "https://www.w3.org/TR/webrtc/#data-transport-closed", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-34", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-35", "https://www.w3.org/TR/webrtc/#ref-for-dfn-data-transport-13", "https://www.w3.org/TR/webrtc/#ref-for-dfn-readystate-7", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannelstate-closed-4", "https://www.w3.org/TR/webrtc/#ref-for-dfn-readystate-8", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannelstate-closed-5", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-datachannels-4", "https://www.w3.org/TR/webrtc/#ref-for-dfn-data-transport-14", "https://www.w3.org/TR/webrtc/#data-transport-closed-error", "https://www.w3.org/TR/webrtc/#ref-for-event-datachannel-error-2", @@ -4265,16 +4468,66 @@ "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcerror-errordetail-5", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcerrordetailtype-sctp-failure-1", "https://www.w3.org/TR/webrtc/#ref-for-event-datachannel-close-1", + "https://www.w3.org/TR/webrtc/#transfering-a-data-channel", + "https://www.w3.org/TR/webrtc/#transfering-a-data-channel-change-wrapper", + "https://www.w3.org/TR/webrtc/#x6-2-6-transfering-data-channel", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-36", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-istransferable-2", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-readystate-9", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-readystate-10", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-datachannellabel-4", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-datachannellabel-5", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-ordered-3", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-ordered-4", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-maxpacketlifetime-5", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-maxpacketlifetime-6", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-maxretransmits-5", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-maxretransmits-6", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-datachannelprotocol-4", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-datachannelprotocol-5", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-negotiated-6", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-negotiated-7", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-datachannelid-14", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-datachannelid-15", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-data-transport-15", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-data-transport-16", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-istransferable-3", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-readystate-11", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-37", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-readystate-12", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-readystate-13", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-datachannellabel-6", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-datachannellabel-7", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-ordered-5", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-ordered-6", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-maxpacketlifetime-7", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-maxpacketlifetime-8", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-maxretransmits-7", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-maxretransmits-8", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-datachannelprotocol-6", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-datachannelprotocol-7", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-negotiated-8", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-negotiated-9", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-datachannelid-16", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-datachannelid-17", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-data-transport-17", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-data-transport-18", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-bufferedamount-1", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-38", + "https://www.w3.org/TR/webrtc/#ref-for-datachannel-send-1", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-data-transport-19", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-39", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-announcing-a-data-channel-as-closed-1", "https://www.w3.org/TR/webrtc/#error-on-creating-data-channels", - "https://www.w3.org/TR/webrtc/#x6-2-6-error-on-creating-data-channels", + "https://www.w3.org/TR/webrtc/#x6-2-7-error-on-creating-data-channels", "https://www.w3.org/TR/webrtc/#dfn-unable-to-create-an-rtcdatachannel", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-data-transport-15", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-data-transport-20", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-id-3", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-35", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-data-transport-16", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-36", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-data-transport-17", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-readystate-9", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-40", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-data-transport-21", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-41", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-data-transport-22", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-readystate-14", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannelstate-closed-6", "https://www.w3.org/TR/webrtc/#ref-for-event-datachannel-error-3", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcerrorevent-4", @@ -4282,117 +4535,72 @@ "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcerrordetailtype-data-channel-failure-2", "https://www.w3.org/TR/webrtc/#ref-for-event-datachannel-close-2", "https://www.w3.org/TR/webrtc/#receiving-messages-on-a-data-channel", - "https://www.w3.org/TR/webrtc/#x6-2-7-receiving-messages-on-a-data-channel", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-37", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-data-transport-18", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-38", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-128", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-readystate-10", + "https://www.w3.org/TR/webrtc/#x6-2-8-receiving-messages-on-a-data-channel", + "https://www.w3.org/TR/webrtc/#dfn-receiving-messages-on-a-data-channel", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-42", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-data-transport-23", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-43", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-134", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-readystate-15", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannelstate-open-3", "https://www.w3.org/TR/webrtc/#ref-for-dom-datachannel-binarytype-1", "https://www.w3.org/TR/webrtc/#ref-for-dom-datachannel-binarytype-2", "https://www.w3.org/TR/webrtc/#ref-for-dom-datachannel-binarytype-3", "https://www.w3.org/TR/webrtc/#ref-for-event-datachannel-message-1", "https://www.w3.org/TR/webrtc/#ref-for-dfn-documentorigin-2", - "https://www.w3.org/TR/webrtc/#webidl-1143016005", - "https://www.w3.org/TR/webrtc/#idl-def-rtcdatachannel", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-39", - "https://www.w3.org/TR/webrtc/#idl-def-rtcdatachannel-label", - "https://www.w3.org/TR/webrtc/#ref-for-dom-datachannel-label-1", - "https://www.w3.org/TR/webrtc/#idl-def-rtcdatachannel-ordered", - "https://www.w3.org/TR/webrtc/#ref-for-dom-datachannel-ordered-1", - "https://www.w3.org/TR/webrtc/#idl-def-rtcdatachannel-maxpacketlifetime", - "https://www.w3.org/TR/webrtc/#ref-for-dom-datachannel-maxpacketlifetime-1", - "https://www.w3.org/TR/webrtc/#idl-def-rtcdatachannel-maxretransmits", - "https://www.w3.org/TR/webrtc/#ref-for-dom-datachannel-maxretransmits-1", - "https://www.w3.org/TR/webrtc/#idl-def-rtcdatachannel-protocol", - "https://www.w3.org/TR/webrtc/#ref-for-dom-datachannel-protocol-1", - "https://www.w3.org/TR/webrtc/#idl-def-rtcdatachannel-negotiated", - "https://www.w3.org/TR/webrtc/#ref-for-dom-datachannel-negotiated-1", - "https://www.w3.org/TR/webrtc/#idl-def-rtcdatachannel-id", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-id-4", - "https://www.w3.org/TR/webrtc/#idl-def-rtcdatachannel-readystate", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannelstate-1", - "https://www.w3.org/TR/webrtc/#ref-for-dom-datachannel-readystate-1", - "https://www.w3.org/TR/webrtc/#idl-def-rtcdatachannel-bufferedamount", - "https://www.w3.org/TR/webrtc/#ref-for-dom-datachannel-bufferedamount-1", - "https://www.w3.org/TR/webrtc/#idl-def-rtcdatachannel-bufferedamountlowthreshold", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-bufferedamountlowthreshold-1", - "https://www.w3.org/TR/webrtc/#idl-def-rtcdatachannel-onopen", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-onopen-1", - "https://www.w3.org/TR/webrtc/#idl-def-rtcdatachannel-onbufferedamountlow", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-onbufferedamountlow-1", - "https://www.w3.org/TR/webrtc/#idl-def-rtcdatachannel-onerror", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-onerror-1", - "https://www.w3.org/TR/webrtc/#idl-def-rtcdatachannel-onclosing", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-onclosing-1", - "https://www.w3.org/TR/webrtc/#idl-def-rtcdatachannel-onclose", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-onclose-1", - "https://www.w3.org/TR/webrtc/#idl-def-rtcdatachannel-close", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-close-2", - "https://www.w3.org/TR/webrtc/#idl-def-rtcdatachannel-onmessage", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-onmessage-1", - "https://www.w3.org/TR/webrtc/#idl-def-rtcdatachannel-binarytype", - "https://www.w3.org/TR/webrtc/#ref-for-dom-datachannel-binarytype-4", - "https://www.w3.org/TR/webrtc/#idl-def-rtcdatachannel-send-data", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-send-2", - "https://www.w3.org/TR/webrtc/#idl-def-rtcdatachannel-send!overload-1", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-send!overload-1-1", - "https://www.w3.org/TR/webrtc/#idl-def-rtcdatachannel-send!overload-2", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-send!overload-2-1", - "https://www.w3.org/TR/webrtc/#idl-def-rtcdatachannel-send!overload-3", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-send!overload-3-1", - "https://www.w3.org/TR/webrtc/#attributes-17", + "https://www.w3.org/TR/webrtc/#webidl-rtcdatachannel-change-wrapper", + "https://www.w3.org/TR/webrtc/#webidl-rtcdatachannel", + "https://www.w3.org/TR/webrtc/#attributes-18", "https://www.w3.org/TR/webrtc/#dom-datachannel-label", "https://www.w3.org/TR/webrtc/#ref-for-dom-datachannel-label-2", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-40", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-41", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-42", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-datachannellabel-4", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-45", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-46", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-47", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-datachannellabel-8", "https://www.w3.org/TR/webrtc/#dom-datachannel-ordered", "https://www.w3.org/TR/webrtc/#ref-for-dom-datachannel-ordered-2", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-43", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-ordered-3", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-48", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-ordered-7", "https://www.w3.org/TR/webrtc/#dom-datachannel-maxpacketlifetime", "https://www.w3.org/TR/webrtc/#ref-for-dom-datachannel-maxpacketlifetime-2", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-maxpacketlifetime-5", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-maxpacketlifetime-9", "https://www.w3.org/TR/webrtc/#dom-datachannel-maxretransmits", "https://www.w3.org/TR/webrtc/#ref-for-dom-datachannel-maxretransmits-2", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-maxretransmits-5", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-maxretransmits-9", "https://www.w3.org/TR/webrtc/#dom-datachannel-protocol", "https://www.w3.org/TR/webrtc/#ref-for-dom-datachannel-protocol-2", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-44", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-datachannelprotocol-4", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-49", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-datachannelprotocol-8", "https://www.w3.org/TR/webrtc/#dom-datachannel-negotiated", "https://www.w3.org/TR/webrtc/#ref-for-dom-datachannel-negotiated-2", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-45", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-negotiated-6", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-50", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-negotiated-10", "https://www.w3.org/TR/webrtc/#dom-rtcdatachannel-id", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-id-5", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-46", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-datachannelid-14", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-51", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-datachannelid-18", "https://www.w3.org/TR/webrtc/#dom-datachannel-readystate", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannelstate-2", "https://www.w3.org/TR/webrtc/#ref-for-dom-datachannel-readystate-2", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-47", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-readystate-11", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-52", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-readystate-16", "https://www.w3.org/TR/webrtc/#dom-datachannel-bufferedamount", "https://www.w3.org/TR/webrtc/#ref-for-dom-datachannel-bufferedamount-2", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-bufferedamount-1", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-send-3", "https://www.w3.org/TR/webrtc/#ref-for-dfn-bufferedamount-2", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-send-3", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-bufferedamount-3", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-send-4", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-readystate-12", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-readystate-17", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannelstate-open-4", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-data-transport-19", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-bufferedamount-3", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-data-transport-24", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-bufferedamount-4", "https://www.w3.org/TR/webrtc/#dom-rtcdatachannel-bufferedamountlowthreshold", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-bufferedamountlowthreshold-2", "https://www.w3.org/TR/webrtc/#ref-for-dom-datachannel-bufferedamount-3", "https://www.w3.org/TR/webrtc/#ref-for-dom-datachannel-bufferedamount-4", "https://www.w3.org/TR/webrtc/#ref-for-event-datachannel-bufferedamountlow-1", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-bufferedamountlowthreshold-3", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-48", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-53", "https://www.w3.org/TR/webrtc/#dom-rtcdatachannel-onopen", "https://www.w3.org/TR/webrtc/#ref-for-event-datachannel-open-6", "https://www.w3.org/TR/webrtc/#dom-rtcdatachannel-onbufferedamountlow", @@ -4408,45 +4616,51 @@ "https://www.w3.org/TR/webrtc/#dom-rtcdatachannel-onmessage", "https://www.w3.org/TR/webrtc/#ref-for-event-datachannel-message-2", "https://www.w3.org/TR/webrtc/#dom-datachannel-binarytype", + "https://www.w3.org/TR/webrtc/#dom-datachannel-binarytype-desc-change-wrapper", + "https://www.w3.org/TR/webrtc/#dom-datachannel-binarytype-desc", "https://www.w3.org/TR/webrtc/#ref-for-dom-datachannel-binarytype-5", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-49", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-54", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-54-dedup-169", "https://www.w3.org/TR/webrtc/#ref-for-dom-datachannel-binarytype-6", "https://www.w3.org/TR/webrtc/#methods-12", "https://www.w3.org/TR/webrtc/#dom-rtcdatachannel-close", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-50", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-51", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-55", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-56", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-close-3", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-52", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-readystate-13", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-57", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-readystate-18", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannelstate-closing-3", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannelstate-closed-7", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-readystate-14", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-readystate-19", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannelstate-closing-4", "https://www.w3.org/TR/webrtc/#ref-for-data-transport-closing-procedure-1", "https://www.w3.org/TR/webrtc/#dom-rtcdatachannel-send", - "https://www.w3.org/TR/webrtc/#ref-for-datachannel-send-1", - "https://www.w3.org/TR/webrtc/#dom-rtcdatachannel-send!overload-1", "https://www.w3.org/TR/webrtc/#ref-for-datachannel-send-2", - "https://www.w3.org/TR/webrtc/#dom-rtcdatachannel-send!overload-2", + "https://www.w3.org/TR/webrtc/#dom-rtcdatachannel-send!overload-1", "https://www.w3.org/TR/webrtc/#ref-for-datachannel-send-3", - "https://www.w3.org/TR/webrtc/#dom-rtcdatachannel-send!overload-3", + "https://www.w3.org/TR/webrtc/#dom-rtcdatachannel-send!overload-2", "https://www.w3.org/TR/webrtc/#ref-for-datachannel-send-4", + "https://www.w3.org/TR/webrtc/#dom-rtcdatachannel-send!overload-3", + "https://www.w3.org/TR/webrtc/#ref-for-datachannel-send-5", "https://www.w3.org/TR/webrtc/#datachannel-send", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-53", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-readystate-15", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-58", + "https://www.w3.org/TR/webrtc/#rtcdatachannel-send-istransferable", + "https://www.w3.org/TR/webrtc/#rtcdatachannel-send-istransferable-change-wrapper", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-istransferable-4", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-readystate-20", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannelstate-open-5", - "https://www.w3.org/TR/webrtc/#issue-container-generatedID-62", - "https://www.w3.org/TR/webrtc/#h-note-62", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-data-transport-20", - "https://www.w3.org/TR/webrtc/#issue-container-generatedID-63", - "https://www.w3.org/TR/webrtc/#h-note-63", + "https://www.w3.org/TR/webrtc/#issue-container-generatedID-65", + "https://www.w3.org/TR/webrtc/#h-note-65", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-data-transport-25", + "https://www.w3.org/TR/webrtc/#issue-container-generatedID-66", + "https://www.w3.org/TR/webrtc/#h-note-66", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsctptransport-maxmessagesize-2", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsctptransport-14", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-data-transport-21", - "https://www.w3.org/TR/webrtc/#issue-container-generatedID-64", - "https://www.w3.org/TR/webrtc/#h-note-64", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-data-transport-26", + "https://www.w3.org/TR/webrtc/#issue-container-generatedID-67", + "https://www.w3.org/TR/webrtc/#h-note-67", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-onerror-2", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-bufferedamount-4", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-bufferedamount-5", "https://www.w3.org/TR/webrtc/#webidl-1532613945", "https://www.w3.org/TR/webrtc/#idl-def-rtcdatachannelinit", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannelinit-6", @@ -4469,11 +4683,11 @@ "https://www.w3.org/TR/webrtc/#dom-rtcdatachannelinit-maxretransmits", "https://www.w3.org/TR/webrtc/#dom-rtcdatachannelinit-protocol", "https://www.w3.org/TR/webrtc/#dom-rtcdatachannelinit-negotiated", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-54", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-55", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-59", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-60", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-id-6", - "https://www.w3.org/TR/webrtc/#issue-container-generatedID-65", - "https://www.w3.org/TR/webrtc/#h-note-65", + "https://www.w3.org/TR/webrtc/#issue-container-generatedID-68", + "https://www.w3.org/TR/webrtc/#h-note-68", "https://www.w3.org/TR/webrtc/#dom-rtcdatachannelinit-id", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannelinit-negotiated-7", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannelinit-negotiated-8", @@ -4486,17 +4700,17 @@ "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannelstate-closed-8", "https://www.w3.org/TR/webrtc/#dom-rtcdatachannelstate", "https://www.w3.org/TR/webrtc/#dom-rtcdatachannelstate-connecting", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-data-transport-22", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-56", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-data-transport-27", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-61", "https://www.w3.org/TR/webrtc/#ref-for-dom-peerconnection-createdatachannel-5", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannelevent-4", "https://www.w3.org/TR/webrtc/#dom-rtcdatachannelstate-open", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-data-transport-23", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-data-transport-28", "https://www.w3.org/TR/webrtc/#dom-rtcdatachannelstate-closing", "https://www.w3.org/TR/webrtc/#ref-for-data-transport-closing-procedure-2", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-data-transport-24", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-data-transport-29", "https://www.w3.org/TR/webrtc/#dom-rtcdatachannelstate-closed", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-data-transport-25", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-data-transport-30", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannelstate-closed-9", "https://www.w3.org/TR/webrtc/#rtcdatachannelevent", "https://www.w3.org/TR/webrtc/#x6-3-rtcdatachannelevent", @@ -4510,68 +4724,68 @@ "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannelevent-constructor-1", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachanneleventinit-1", "https://www.w3.org/TR/webrtc/#idl-def-rtcdatachannelevent-channel", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-57", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-62", "https://www.w3.org/TR/webrtc/#ref-for-dom-datachannelevent-channel-2", "https://www.w3.org/TR/webrtc/#constructors-5", "https://www.w3.org/TR/webrtc/#dom-rtcdatachannelevent-constructor", - "https://www.w3.org/TR/webrtc/#attributes-18", + "https://www.w3.org/TR/webrtc/#attributes-19", "https://www.w3.org/TR/webrtc/#dom-datachannelevent-channel", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-58", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-63", "https://www.w3.org/TR/webrtc/#ref-for-dom-datachannelevent-channel-3", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-59", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-64", "https://www.w3.org/TR/webrtc/#webidl-1160573466", "https://www.w3.org/TR/webrtc/#idl-def-rtcdatachanneleventinit", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachanneleventinit-2", "https://www.w3.org/TR/webrtc/#idl-def-rtcdatachanneleventinit-channel", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-60", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-65", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachanneleventinit-channel-1", "https://www.w3.org/TR/webrtc/#dictionary-rtcdatachanneleventinit-members", "https://www.w3.org/TR/webrtc/#dom-rtcdatachanneleventinit", "https://www.w3.org/TR/webrtc/#dom-rtcdatachanneleventinit-channel", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-61", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-62", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-66", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-67", "https://www.w3.org/TR/webrtc/#garbage-collection-0", "https://www.w3.org/TR/webrtc/#x6-4-garbage-collection", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-63", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-readystate-16", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-68", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-readystate-21", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannelstate-connecting-4", "https://www.w3.org/TR/webrtc/#ref-for-event-datachannel-open-7", "https://www.w3.org/TR/webrtc/#ref-for-event-datachannel-message-3", "https://www.w3.org/TR/webrtc/#ref-for-event-datachannel-error-4", "https://www.w3.org/TR/webrtc/#ref-for-event-datachannel-closing-3", "https://www.w3.org/TR/webrtc/#ref-for-event-datachannel-close-4", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-readystate-17", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-readystate-22", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannelstate-open-7", "https://www.w3.org/TR/webrtc/#ref-for-event-datachannel-message-4", "https://www.w3.org/TR/webrtc/#ref-for-event-datachannel-error-5", "https://www.w3.org/TR/webrtc/#ref-for-event-datachannel-closing-4", "https://www.w3.org/TR/webrtc/#ref-for-event-datachannel-close-5", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-readystate-18", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-readystate-23", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannelstate-closing-6", "https://www.w3.org/TR/webrtc/#ref-for-event-datachannel-error-6", "https://www.w3.org/TR/webrtc/#ref-for-event-datachannel-close-6", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-data-transport-26", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-data-transport-31", "https://www.w3.org/TR/webrtc/#peer-to-peer-dtmf", "https://www.w3.org/TR/webrtc/#x7-peer-to-peer-dtmf", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-58", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-129", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-56-dedup-170", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-135", "https://www.w3.org/TR/webrtc/#rtcrtpsender-interface-extensions", "https://www.w3.org/TR/webrtc/#x7-1-rtcrtpsender-interface-extensions", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-59", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-57", "https://www.w3.org/TR/webrtc/#webidl-2016404025", "https://www.w3.org/TR/webrtc/#idl-def-rtcrtpsender-partial-1", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-60", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-58", "https://www.w3.org/TR/webrtc/#idl-def-rtcrtpsender-dtmf", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtmfsender-1", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-dtmf-1", - "https://www.w3.org/TR/webrtc/#attributes-19", + "https://www.w3.org/TR/webrtc/#attributes-20", "https://www.w3.org/TR/webrtc/#dom-rtcrtpsender-dtmf", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtmfsender-2", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-dtmf-2", "https://www.w3.org/TR/webrtc/#ref-for-dfn-dtmf-2", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtmfsender-3", "https://www.w3.org/TR/webrtc/#ref-for-dfn-dtmf-3", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-61", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-59", "https://www.w3.org/TR/webrtc/#ref-for-dfn-sendertrack-7", "https://www.w3.org/TR/webrtc/#rtcdtmfsender", "https://www.w3.org/TR/webrtc/#x7-2-rtcdtmfsender", @@ -4592,7 +4806,7 @@ "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtmfsender-caninsertdtmf-1", "https://www.w3.org/TR/webrtc/#idl-def-rtcdtmfsender-tonebuffer", "https://www.w3.org/TR/webrtc/#ref-for-dom-RTCDTMFSender-tonebuffer-1", - "https://www.w3.org/TR/webrtc/#attributes-20", + "https://www.w3.org/TR/webrtc/#attributes-21", "https://www.w3.org/TR/webrtc/#dom-rtcdtmfsender-ontonechange", "https://www.w3.org/TR/webrtc/#ref-for-event-RTCDTMFSender-tonechange-1", "https://www.w3.org/TR/webrtc/#dom-rtcdtmfsender-caninsertdtmf", @@ -4608,8 +4822,8 @@ "https://www.w3.org/TR/webrtc/#dtmf-unrecognized", "https://www.w3.org/TR/webrtc/#clamped-duration", "https://www.w3.org/TR/webrtc/#ref-for-dom-RTCDTMFSender-insertDTMF-4", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-62", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-81", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-60", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-76", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtmfsender-8", "https://www.w3.org/TR/webrtc/#ref-for-dfn-determine-if-dtmf-can-be-sent-2", "https://www.w3.org/TR/webrtc/#ref-for-dtmf-unrecognized-1", @@ -4621,8 +4835,13 @@ "https://www.w3.org/TR/webrtc/#ref-for-dfn-intertonegap-2", "https://www.w3.org/TR/webrtc/#ref-for-dfn-intertonegap-3", "https://www.w3.org/TR/webrtc/#ref-for-dfn-tonebuffer-2", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-dtmf-playout-task-steps-1", + "https://www.w3.org/TR/webrtc/#dfn-dtmf-playout-task-steps", + "https://www.w3.org/TR/webrtc/#dtmf-playout-check-change-wrapper", + "https://www.w3.org/TR/webrtc/#dtmf-playout-check", "https://www.w3.org/TR/webrtc/#ref-for-dfn-currentdirection-8", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-sendrecv-20", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-determine-if-dtmf-can-be-sent-3", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-sendrecv-20-dedup-171", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-sendonly-15", "https://www.w3.org/TR/webrtc/#ref-for-dfn-tonebuffer-3", "https://www.w3.org/TR/webrtc/#ref-for-event-RTCDTMFSender-tonechange-2", @@ -4630,9 +4849,11 @@ "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtmftonechangeevent-tone-1", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtmfsender-9", "https://www.w3.org/TR/webrtc/#ref-for-dfn-tonebuffer-4", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-dtmf-playout-task-steps-2", "https://www.w3.org/TR/webrtc/#ref-for-dfn-duration-4", "https://www.w3.org/TR/webrtc/#ref-for-dfn-duration-5", "https://www.w3.org/TR/webrtc/#ref-for-dfn-intertonegap-4", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-dtmf-playout-task-steps-3", "https://www.w3.org/TR/webrtc/#ref-for-event-RTCDTMFSender-tonechange-3", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtmftonechangeevent-2", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtmftonechangeevent-tone-2", @@ -4645,19 +4866,21 @@ "https://www.w3.org/TR/webrtc/#x7-3-caninsertdtmf-algorithm", "https://www.w3.org/TR/webrtc/#determine-dtmf-change-wrapper", "https://www.w3.org/TR/webrtc/#determine-dtmf", - "https://www.w3.org/TR/webrtc/#determine-dtmf-new", "https://www.w3.org/TR/webrtc/#dfn-determine-if-dtmf-can-be-sent", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtmfsender-11", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-63", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-82", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-130", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-61", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-77", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-136", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnectionstate-7", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnectionstate-connected-2", + "https://www.w3.org/TR/webrtc/#no-dtmf-stopped-transceiver", + "https://www.w3.org/TR/webrtc/#no-dtmf-stopped-transceiver-change-wrapper", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-stopping-11", "https://www.w3.org/TR/webrtc/#ref-for-dfn-sendertrack-8", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-currentdirection-9", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-sendrecv-21", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-sendonly-16", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-sendencodings-22", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-currentdirection-8-dedup-172", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-sendrecv-22", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiverdirection-sendonly-15-dedup-173", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-sendencodings-23", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpencodingparameters-active-8", "https://www.w3.org/TR/webrtc/#rtcdtmftonechangeevent", "https://www.w3.org/TR/webrtc/#x7-4-rtcdtmftonechangeevent", @@ -4674,7 +4897,7 @@ "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtmftonechangeevent-tone-3", "https://www.w3.org/TR/webrtc/#constructors-6", "https://www.w3.org/TR/webrtc/#dom-rtcdtmftonechangeevent-constructor", - "https://www.w3.org/TR/webrtc/#attributes-21", + "https://www.w3.org/TR/webrtc/#attributes-22", "https://www.w3.org/TR/webrtc/#dom-rtcdtmftonechangeevent-tone", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtmftonechangeevent-tone-4", "https://www.w3.org/TR/webrtc/#ref-for-dom-RTCDTMFSender-insertDTMF-8", @@ -4695,20 +4918,20 @@ "https://www.w3.org/TR/webrtc/#introduction-0", "https://www.w3.org/TR/webrtc/#x8-1-introduction", "https://www.w3.org/TR/webrtc/#stats-selector", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-131", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-137", "https://www.w3.org/TR/webrtc/#ref-for-widl-RTCPeerConnection-getStats-Promise-RTCStatsReport--MediaStreamTrack-selector-2", "https://www.w3.org/TR/webrtc/#ref-for-dfn-stats-selection-algorithm-3", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcstats-1", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcstats-id-1", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-132", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-138", "https://www.w3.org/TR/webrtc/#ref-for-widl-RTCPeerConnection-getStats-Promise-RTCStatsReport--MediaStreamTrack-selector-3", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-close-6", "https://www.w3.org/TR/webrtc/#rtcpeerconnection-interface-extensions-1", "https://www.w3.org/TR/webrtc/#x8-2-rtcpeerconnection-interface-extensions", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-133", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-139", "https://www.w3.org/TR/webrtc/#webidl-1659452745", "https://www.w3.org/TR/webrtc/#idl-def-rtcpeerconnection-partial-4", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-134", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-140", "https://www.w3.org/TR/webrtc/#idl-def-rtcpeerconnection-getstats-selector", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcstatsreport-5", "https://www.w3.org/TR/webrtc/#ref-for-widl-RTCPeerConnection-getStats-Promise-RTCStatsReport--MediaStreamTrack-selector-4", @@ -4716,11 +4939,11 @@ "https://www.w3.org/TR/webrtc/#widl-RTCPeerConnection-getStats-Promise-RTCStatsReport--MediaStreamTrack-selector", "https://www.w3.org/TR/webrtc/#ref-for-stats-selector-1", "https://www.w3.org/TR/webrtc/#ref-for-widl-RTCPeerConnection-getStats-Promise-RTCStatsReport--MediaStreamTrack-selector-5", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-135", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-64", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-58", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-141", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-62", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-57", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-track-9", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-reject-46", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-reject-48", "https://www.w3.org/TR/webrtc/#ref-for-dfn-stats-selection-algorithm-4", "https://www.w3.org/TR/webrtc/#ref-for-dfn-resolve-15", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcstatsreport-6", @@ -4737,7 +4960,7 @@ "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcstats-4", "https://www.w3.org/TR/webrtc/#ref-for-stats-selector-2", "https://www.w3.org/TR/webrtc/#ref-for-stats-selector-3", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-65", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-63", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcstatsreport-10", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcstats-5", "https://www.w3.org/TR/webrtc/#webidl-1453588257", @@ -4767,8 +4990,11 @@ "https://www.w3.org/TR/webrtc/#dictionary-rtcstats-members", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcstats-13", "https://www.w3.org/TR/webrtc/#dom-rtcstats-timestamp", + "https://www.w3.org/TR/webrtc/#stats-timestamp-change-wrapper", + "https://www.w3.org/TR/webrtc/#stats-timestamp", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcstats-timestamp-3", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcstats-timestamp-4", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcstats-timestamp-3-dedup-174", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcstats-timestamp-3-dedup-175", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcstats-14", "https://www.w3.org/TR/webrtc/#dom-rtcstats-type", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcstats-type-3", @@ -4778,22 +5004,21 @@ "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcstats-16", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcstats-17", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcstatsreport-12", - "https://www.w3.org/TR/webrtc/#issue-container-generatedID-66", - "https://www.w3.org/TR/webrtc/#h-note-66", + "https://www.w3.org/TR/webrtc/#issue-container-generatedID-69", + "https://www.w3.org/TR/webrtc/#h-note-69", "https://www.w3.org/TR/webrtc/#the-stats-selection-algorithm", "https://www.w3.org/TR/webrtc/#x8-5-the-stats-selection-algorithm", "https://www.w3.org/TR/webrtc/#dfn-stats-selection-algorithm", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcstatsreport-13", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-66", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-59", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-64", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-58", "https://www.w3.org/TR/webrtc/#mandatory-to-implement-stats", "https://www.w3.org/TR/webrtc/#x8-6-mandatory-to-implement-stats", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcstats-type-4", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-136", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-142", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcstats-18", "https://www.w3.org/TR/webrtc/#mti-stats-table-change-wrapper", "https://www.w3.org/TR/webrtc/#mti-stats-table", - "https://www.w3.org/TR/webrtc/#mti-stats-table-new", "https://www.w3.org/TR/webrtc/#getstats-example", "https://www.w3.org/TR/webrtc/#x8-7-getstats-example", "https://www.w3.org/TR/webrtc/#example-8", @@ -4801,30 +5026,30 @@ "https://www.w3.org/TR/webrtc/#x9-media-stream-api-extensions-for-network-use", "https://www.w3.org/TR/webrtc/#introduction-1", "https://www.w3.org/TR/webrtc/#x9-1-introduction", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-67", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-60", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-137", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-138", - "https://www.w3.org/TR/webrtc/#issue-container-generatedID-67", - "https://www.w3.org/TR/webrtc/#h-note-67", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-139", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-65", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-59", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-143", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-144", + "https://www.w3.org/TR/webrtc/#issue-container-generatedID-70", + "https://www.w3.org/TR/webrtc/#h-note-70", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-145", "https://www.w3.org/TR/webrtc/#mediastream", "https://www.w3.org/TR/webrtc/#mediastream-network-use", "https://www.w3.org/TR/webrtc/#id", "https://www.w3.org/TR/webrtc/#x9-2-1-id", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-140", - "https://www.w3.org/TR/webrtc/#issue-container-generatedID-68", - "https://www.w3.org/TR/webrtc/#h-note-68", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-141", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-146", + "https://www.w3.org/TR/webrtc/#issue-container-generatedID-71", + "https://www.w3.org/TR/webrtc/#h-note-71", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-147", "https://www.w3.org/TR/webrtc/#mediastreamtrack", "https://www.w3.org/TR/webrtc/#mediastreamtrack-network-use", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-60", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-61", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-62", "https://www.w3.org/TR/webrtc/#ref-for-dfn-receptive-4", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-83", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-63", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtptransceiver-78", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-62", "https://www.w3.org/TR/webrtc/#ref-for-set-track-muted-2", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-64", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-63", "https://www.w3.org/TR/webrtc/#ref-for-set-track-muted-3", "https://www.w3.org/TR/webrtc/#ref-for-dom-peerconnection-setremotedescription-18", "https://www.w3.org/TR/webrtc/#ref-for-set-track-muted-4", @@ -4832,7 +5057,7 @@ "https://www.w3.org/TR/webrtc/#add-track", "https://www.w3.org/TR/webrtc/#remove-track", "https://www.w3.org/TR/webrtc/#set-track-muted", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-65", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-64", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtpreceiver-track-8", "https://www.w3.org/TR/webrtc/#mediatracksupportedconstraints-mediatrackcapabilities-mediatrackconstraints-and-mediatracksettings", "https://www.w3.org/TR/webrtc/#x9-3-1-mediatracksupportedconstraints-mediatrackcapabilities-mediatrackconstraints-and-mediatracksettings", @@ -4856,14 +5081,14 @@ "https://www.w3.org/TR/webrtc/#example-11", "https://www.w3.org/TR/webrtc/#peer-to-peer-data-example", "https://www.w3.org/TR/webrtc/#x10-4-peer-to-peer-data-example", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-64", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-65", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-69", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-70", "https://www.w3.org/TR/webrtc/#example-12", "https://www.w3.org/TR/webrtc/#call-flow-browser-to-browser", "https://www.w3.org/TR/webrtc/#x10-5-call-flow-browser-to-browser", "https://www.w3.org/TR/webrtc/#dtmf-example", "https://www.w3.org/TR/webrtc/#x10-6-dtmf-example", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-68", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-66", "https://www.w3.org/TR/webrtc/#example-13", "https://www.w3.org/TR/webrtc/#example-14", "https://www.w3.org/TR/webrtc/#example-15", @@ -4875,7 +5100,7 @@ "https://www.w3.org/TR/webrtc/#example-18", "https://www.w3.org/TR/webrtc/#ref-for-dom-peerconnection-setlocaldescription-18", "https://www.w3.org/TR/webrtc/#ref-for-dom-peerconnection-setremotedescription-19", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-142", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-148", "https://www.w3.org/TR/webrtc/#error-handling-0", "https://www.w3.org/TR/webrtc/#x11-error-handling", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcerror-4", @@ -4903,8 +5128,8 @@ "https://www.w3.org/TR/webrtc/#x11-1-1-constructors", "https://www.w3.org/TR/webrtc/#dom-rtcerror-constructor", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcerror-6", - "https://www.w3.org/TR/webrtc/#issue-container-generatedID-69", - "https://www.w3.org/TR/webrtc/#h-note-69", + "https://www.w3.org/TR/webrtc/#issue-container-generatedID-72", + "https://www.w3.org/TR/webrtc/#h-note-72", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcerror-7", "https://www.w3.org/TR/webrtc/#attributes", "https://www.w3.org/TR/webrtc/#x11-1-2-attributes", @@ -4972,7 +5197,7 @@ "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcerror-receivedalert-3", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcerror-sentalert-3", "https://www.w3.org/TR/webrtc/#dom-rtcerrordetailtype-fingerprint-failure", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransport-31", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransport-32", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcerrordetailtype-dtls-failure-5", "https://www.w3.org/TR/webrtc/#dom-rtcerrordetailtype-sctp-failure", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcerror-sctpcausecode-4", @@ -5019,51 +5244,51 @@ "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcerror-16", "https://www.w3.org/TR/webrtc/#event-summary", "https://www.w3.org/TR/webrtc/#x12-event-summary", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-66", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-71", "https://www.w3.org/TR/webrtc/#event-datachannel-open", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-67", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-data-transport-27", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-72", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-data-transport-32", "https://www.w3.org/TR/webrtc/#event-datachannel-message", "https://www.w3.org/TR/webrtc/#event-datachannel-bufferedamountlow", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-68", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-73", "https://www.w3.org/TR/webrtc/#ref-for-dom-datachannel-bufferedamount-5", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-bufferedamountlowthreshold-4", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-bufferedamountlowthreshold-5", "https://www.w3.org/TR/webrtc/#event-datachannel-error", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcerrorevent-9", "https://www.w3.org/TR/webrtc/#event-datachannel-closing", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-69", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-74", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannelstate-closing-7", "https://www.w3.org/TR/webrtc/#event-datachannel-close", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-70", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-data-transport-28", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-143", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-75", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-data-transport-33", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-149", "https://www.w3.org/TR/webrtc/#event-track", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtctrackevent-4", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-66", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-65", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtpreceiver-track-9", "https://www.w3.org/TR/webrtc/#event-negotiation", "https://www.w3.org/TR/webrtc/#event-signalingstatechange", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-signaling-state-24", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-signalingstate-24", "https://www.w3.org/TR/webrtc/#ref-for-dom-peerconnection-setlocaldescription-19", "https://www.w3.org/TR/webrtc/#ref-for-dom-peerconnection-setremotedescription-20", "https://www.w3.org/TR/webrtc/#event-iceconnectionstatechange", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-144", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-ice-connection-state-6", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-150", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-iceconnectionstate-11", "https://www.w3.org/TR/webrtc/#event-icegatheringstatechange", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-145", - "https://www.w3.org/TR/webrtc/#ref-for-dfn-ice-gathering-state-7", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-151", + "https://www.w3.org/TR/webrtc/#ref-for-dfn-icegatheringstate-7", "https://www.w3.org/TR/webrtc/#event-icecandidate", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnectioniceevent-8", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-25", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicecandidate-27", "https://www.w3.org/TR/webrtc/#event-connectionstatechange", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-146", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-152", "https://www.w3.org/TR/webrtc/#ref-for-dom-peerconnection-connection-state-3", "https://www.w3.org/TR/webrtc/#event-icecandidateerror", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnectioniceerrorevent-3", "https://www.w3.org/TR/webrtc/#event-datachannel", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannelevent-7", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-71", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdatachannel-76", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtmfsender-12", "https://www.w3.org/TR/webrtc/#event-RTCDTMFSender-tonechange", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtmftonechangeevent-5", @@ -5071,19 +5296,19 @@ "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtmftonechangeevent-tone-5", "https://www.w3.org/TR/webrtc/#ref-for-dom-RTCDTMFSender-tonebuffer-3", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtmftonechangeevent-tone-6", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-67", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-61", "https://www.w3.org/TR/webrtc/#event-icetransport-statechange", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-68", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-62", "https://www.w3.org/TR/webrtc/#event-icetransport-gatheringstatechange", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-69", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-63", "https://www.w3.org/TR/webrtc/#event-icetransport-selectedcandidatepairchange", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-70", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransport-32", - "https://www.w3.org/TR/webrtc/#event-dtlstransport-statechange", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcicetransport-64", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransport-33", + "https://www.w3.org/TR/webrtc/#event-dtlstransport-statechange", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransport-34", "https://www.w3.org/TR/webrtc/#dfn-error", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcerrorevent-10", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransport-34", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcdtlstransport-35", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcerrordetailtype-dtls-failure-6", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcerrordetailtype-fingerprint-failure-3", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcsctptransport-15", @@ -5103,26 +5328,30 @@ "https://www.w3.org/TR/webrtc/#ref-for-dom-rtccertificate-16", "https://www.w3.org/TR/webrtc/#persistent-information-exposed-by-webrtc", "https://www.w3.org/TR/webrtc/#x13-5-persistent-information-exposed-by-webrtc", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-69", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-getcapabilities-11", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-67", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-getcapabilities-11", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-67", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-getcapabilities-5", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-66", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-getcapabilities-6", "https://www.w3.org/TR/webrtc/#setting-sdp-from-remote-endpoints", "https://www.w3.org/TR/webrtc/#x13-6-setting-sdp-from-remote-endpoints", "https://www.w3.org/TR/webrtc/#ref-for-dom-peerconnection-setremotedescription-21", "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-ontrack-2", "https://www.w3.org/TR/webrtc/#accessibility-considerations", "https://www.w3.org/TR/webrtc/#x14-accessibility-considerations", - "https://www.w3.org/TR/webrtc/#changes", - "https://www.w3.org/TR/webrtc/#a-candidate-amendments", + "https://www.w3.org/TR/webrtc/#proposed-amendments", + "https://www.w3.org/TR/webrtc/#a-proposed-amendments", + "https://www.w3.org/TR/webrtc/#candidate-amendments", + "https://www.w3.org/TR/webrtc/#b-candidate-amendments", "https://www.w3.org/TR/webrtc/#acknowledgements", - "https://www.w3.org/TR/webrtc/#b-acknowledgements", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-70", - "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-68", + "https://www.w3.org/TR/webrtc/#c-acknowledgements", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpsender-68", + "https://www.w3.org/TR/webrtc/#ref-for-dom-rtcrtpreceiver-67", "https://www.w3.org/TR/webrtc/#references", - "https://www.w3.org/TR/webrtc/#c-references", + "https://www.w3.org/TR/webrtc/#d-references", + "https://www.w3.org/TR/webrtc/#normative-references-change-wrapper", "https://www.w3.org/TR/webrtc/#normative-references", - "https://www.w3.org/TR/webrtc/#c-1-normative-references", + "https://www.w3.org/TR/webrtc/#b-1-normative-references", + "https://www.w3.org/TR/webrtc/#d-1-normative-references", "https://www.w3.org/TR/webrtc/#bib-dom", "https://www.w3.org/TR/webrtc/#bib-ecmascript-6.0", "https://www.w3.org/TR/webrtc/#bib-fetch", @@ -5170,16 +5399,17 @@ "https://www.w3.org/TR/webrtc/#bib-rfc8851", "https://www.w3.org/TR/webrtc/#bib-rfc8853", "https://www.w3.org/TR/webrtc/#bib-rfc8863", + "https://www.w3.org/TR/webrtc/#bib-rfc9429", "https://www.w3.org/TR/webrtc/#bib-sdp", "https://www.w3.org/TR/webrtc/#bib-stun-parameters", + "https://www.w3.org/TR/webrtc/#bib-url", "https://www.w3.org/TR/webrtc/#bib-webcryptoapi", "https://www.w3.org/TR/webrtc/#bib-webidl", "https://www.w3.org/TR/webrtc/#bib-webrtc-stats", - "https://www.w3.org/TR/webrtc/#bib-websockets", "https://www.w3.org/TR/webrtc/#bib-x509v3", "https://www.w3.org/TR/webrtc/#bib-x690", "https://www.w3.org/TR/webrtc/#informative-references", - "https://www.w3.org/TR/webrtc/#c-2-informative-references", + "https://www.w3.org/TR/webrtc/#d-2-informative-references", "https://www.w3.org/TR/webrtc/#bib-api-design-principles", "https://www.w3.org/TR/webrtc/#bib-indexeddb", "https://www.w3.org/TR/webrtc/#bib-rfc4103", @@ -5188,7 +5418,6 @@ "https://www.w3.org/TR/webrtc/#bib-rfc8825", "https://www.w3.org/TR/webrtc/#bib-rfc8827", "https://www.w3.org/TR/webrtc/#bib-rfc8828", - "https://www.w3.org/TR/webrtc/#bib-xhr", "https://www.w3.org/TR/webrtc/#back-to-top" ] } \ No newline at end of file diff --git a/tr/index.json b/tr/index.json index 6077ffd0a18c..07c2d46c09d7 100644 --- a/tr/index.json +++ b/tr/index.json @@ -1,7 +1,7 @@ { "type": "crawl", "title": "Reffy crawl", - "date": "2024-10-08T01:49:09.713Z", + "date": "2024-10-09T01:34:51.112Z", "options": { "fallback": "tr/index.json", "output": "report", @@ -712,7 +712,7 @@ "https://aomediacodec.github.io/av1-spec/" ], "crawled": "https://aomediacodec.github.io/av1-spec/av1-spec.pdf", - "date": "8 October 2024", + "date": "9 October 2024", "links": "links/av1-spec.json" }, { @@ -766,11 +766,11 @@ ], "crawled": "https://www.w3.org/TR/accelerometer/", "crawlCacheInfo": { - "lastModified": "Fri, 07 Jun 2024 08:24:44 GMT" + "lastModified": "Tue, 08 Oct 2024 10:22:38 GMT" }, "generator": "bikeshed", - "date": "7 June 2024", - "revision": "b7da34fc72faf8b630cc39a323aba1c8f24a28b0", + "date": "8 October 2024", + "revision": "79664fcc0157200a58bded91aa6d0fa3c5a5ab0e", "algorithms": "algorithms/accelerometer.json", "links": "links/accelerometer.json", "refs": "refs/accelerometer.json", @@ -10994,11 +10994,11 @@ ], "crawled": "https://www.w3.org/TR/gyroscope/", "crawlCacheInfo": { - "lastModified": "Mon, 08 Jan 2024 09:15:06 GMT" + "lastModified": "Tue, 08 Oct 2024 18:29:42 GMT" }, "generator": "bikeshed", - "date": "8 January 2024", - "revision": "97e6224ea26cda0a6df6c247889555580090062b", + "date": "8 October 2024", + "revision": "43c8acf57a0039dc45b3240bf08865f7aee829b6", "algorithms": "algorithms/gyroscope.json", "links": "links/gyroscope.json", "refs": "refs/gyroscope.json", @@ -12085,11 +12085,11 @@ ], "crawled": "https://www.w3.org/TR/magnetometer/", "crawlCacheInfo": { - "lastModified": "Wed, 15 May 2024 07:01:33 GMT" + "lastModified": "Tue, 08 Oct 2024 18:29:59 GMT" }, "generator": "bikeshed", - "date": "15 May 2024", - "revision": "94a111689690e6ae1161eaa65638ed112d7b9931", + "date": "8 October 2024", + "revision": "6993f28d125a78a958deac3593c6f10b1300dd75", "algorithms": "algorithms/magnetometer.json", "links": "links/magnetometer.json", "refs": "refs/magnetometer.json", @@ -13894,11 +13894,11 @@ ], "crawled": "https://www.w3.org/TR/openscreenprotocol/", "crawlCacheInfo": { - "lastModified": "Mon, 07 Oct 2024 21:11:20 GMT" + "lastModified": "Tue, 08 Oct 2024 23:16:42 GMT" }, "generator": "bikeshed", - "date": "7 October 2024", - "revision": "3426640ce02ad79a1e5203c43a4cf6c6f83e273a", + "date": "8 October 2024", + "revision": "886800d8b5e5bc509638a88eb5e56383e02333fa", "algorithms": "algorithms/openscreenprotocol.json", "links": "links/openscreenprotocol.json", "refs": "refs/openscreenprotocol.json", @@ -14857,11 +14857,11 @@ ], "crawled": "https://www.w3.org/TR/presentation-api/", "crawlCacheInfo": { - "lastModified": "Fri, 23 Aug 2024 17:51:39 GMT" + "lastModified": "Tue, 08 Oct 2024 16:51:27 GMT" }, "generator": "respec", - "date": "23 August 2024", - "revision": "74d1a415389ac75c5f746969920257921ab84c29", + "date": "08 October 2024", + "revision": "b9a3e3dc266b9122af1f990e1257d7a3e60f9be3", "algorithms": "algorithms/presentation-api.json", "links": "links/presentation-api.json", "refs": "refs/presentation-api.json", @@ -20106,11 +20106,11 @@ ], "crawled": "https://www.w3.org/TR/webcodecs/", "crawlCacheInfo": { - "lastModified": "Fri, 04 Oct 2024 19:10:08 GMT" + "lastModified": "Tue, 08 Oct 2024 18:01:23 GMT" }, "generator": "bikeshed", - "date": "4 October 2024", - "revision": "4bea332491d40a41434f5d6e054189767f77a847", + "date": "8 October 2024", + "revision": "a2770c19f7eadb282c7123e6841830cd1b6c008d", "algorithms": "algorithms/webcodecs.json", "links": "links/webcodecs.json", "refs": "refs/webcodecs.json", @@ -20805,10 +20805,10 @@ ], "crawled": "https://www.w3.org/TR/webrtc/", "crawlCacheInfo": { - "lastModified": "Mon, 06 Mar 2023 15:03:53 GMT" + "lastModified": "Tue, 08 Oct 2024 08:37:20 GMT" }, "generator": "respec", - "date": "06 March 2023", + "date": "08 October 2024", "algorithms": "algorithms/webrtc.json", "links": "links/webrtc.json", "refs": "refs/webrtc.json", diff --git a/tr/links/accelerometer.json b/tr/links/accelerometer.json index a0c2a9d6dfe1..44a972bc6126 100644 --- a/tr/links/accelerometer.json +++ b/tr/links/accelerometer.json @@ -24,7 +24,6 @@ "https://lists.w3.org/Archives/Public/public-device-apis/": {}, "https://w3c.github.io/deviceorientation/": { "anchors": [ - "permissions-policy-integration", "automation" ] }, @@ -44,20 +43,20 @@ "https://w3c.github.io/sensors/usecases.html": {}, "https://w3c.github.io/webappsec-permissions-policy/": {}, "https://webidl.spec.whatwg.org/": {}, - "https://www.w3.org/2023/Process-20231103/": { - "anchors": [ - "recs-and-notes" - ] - }, - "https://www.w3.org/Consortium/Patent-Policy/": { + "https://www.w3.org/TR/": {}, + "https://www.w3.org/groups/wg/das": {}, + "https://www.w3.org/groups/wg/das/ipr": {}, + "https://www.w3.org/policies/patent-policy/": { "anchors": [ "def-essential", "sec-Disclosure" ] }, - "https://www.w3.org/TR/": {}, - "https://www.w3.org/groups/wg/das": {}, - "https://www.w3.org/groups/wg/das/ipr": {} + "https://www.w3.org/policies/process/20231103/": { + "anchors": [ + "recs-and-notes" + ] + } }, "autolinks": { "https://infra.spec.whatwg.org/": { diff --git a/tr/links/gyroscope.json b/tr/links/gyroscope.json index 9a21d9e7a260..4e8a0401060f 100644 --- a/tr/links/gyroscope.json +++ b/tr/links/gyroscope.json @@ -36,21 +36,20 @@ }, "https://w3c.github.io/webappsec-permissions-policy/": {}, "https://webidl.spec.whatwg.org/": {}, - "https://www.w3.org/2023/Process-20231103/": { - "anchors": [ - "recs-and-notes" - ] - }, - "https://www.w3.org/Consortium/Patent-Policy-20200915/": { + "https://www.w3.org/TR/": {}, + "https://www.w3.org/groups/wg/das": {}, + "https://www.w3.org/groups/wg/das/ipr": {}, + "https://www.w3.org/policies/patent-policy/": { "anchors": [ "def-essential", "sec-Disclosure" ] }, - "https://www.w3.org/Consortium/Patent-Policy/": {}, - "https://www.w3.org/TR/": {}, - "https://www.w3.org/groups/wg/das": {}, - "https://www.w3.org/groups/wg/das/ipr": {} + "https://www.w3.org/policies/process/20231103/": { + "anchors": [ + "recs-and-notes" + ] + } }, "autolinks": { "https://infra.spec.whatwg.org/": { @@ -69,7 +68,6 @@ }, "https://w3c.github.io/deviceorientation/": { "anchors": [ - "gyroscope-feature", "permissiondef-gyroscope", "gyroscope-virtual-sensor-type" ] diff --git a/tr/links/magnetometer.json b/tr/links/magnetometer.json index 1e4e09ea2fa4..714ffd375799 100644 --- a/tr/links/magnetometer.json +++ b/tr/links/magnetometer.json @@ -16,17 +16,6 @@ "https://tc39.es/ecma262/multipage/": {}, "https://webidl.spec.whatwg.org/": {}, "https://www.ngdc.noaa.gov/geomag/calculators/magcalc.shtml": {}, - "https://www.w3.org/2023/Process-20231103/": { - "anchors": [ - "recs-and-notes" - ] - }, - "https://www.w3.org/Consortium/Patent-Policy/": { - "anchors": [ - "def-essential", - "sec-Disclosure" - ] - }, "https://www.w3.org/TR/": {}, "https://www.w3.org/TR/accelerometer/": {}, "https://www.w3.org/TR/generic-sensor/": { @@ -39,7 +28,18 @@ "https://www.w3.org/TR/permissions-policy-1/": {}, "https://www.w3.org/TR/permissions/": {}, "https://www.w3.org/groups/wg/das": {}, - "https://www.w3.org/groups/wg/das/ipr": {} + "https://www.w3.org/groups/wg/das/ipr": {}, + "https://www.w3.org/policies/patent-policy/": { + "anchors": [ + "def-essential", + "sec-Disclosure" + ] + }, + "https://www.w3.org/policies/process/20231103/": { + "anchors": [ + "recs-and-notes" + ] + } }, "autolinks": { "https://infra.spec.whatwg.org/": { diff --git a/tr/links/presentation-api.json b/tr/links/presentation-api.json index 9e655d15a229..9fc5395dd4fa 100644 --- a/tr/links/presentation-api.json +++ b/tr/links/presentation-api.json @@ -129,10 +129,12 @@ "https://html.spec.whatwg.org/multipage/webappapis.html": { "anchors": [ "task-source", + "queue-a-global-task", + "global-object", "current-settings-object", - "queue-a-task", "event-handlers", - "event-handler-event-type" + "event-handler-event-type", + "concept-relevant-global" ] }, "https://httpwg.org/specs/rfc6265.html": { @@ -146,6 +148,11 @@ "authentication" ] }, + "https://infra.spec.whatwg.org/": { + "anchors": [ + "assert" + ] + }, "https://nfc-forum.org/": {}, "https://tc39.es/ecma262/multipage/": { "anchors": [ diff --git a/tr/links/webrtc.json b/tr/links/webrtc.json index 93f0b99af5cd..935cf78b49b4 100644 --- a/tr/links/webrtc.json +++ b/tr/links/webrtc.json @@ -8,38 +8,6 @@ "http://www.ecma-international.org/ecma-262/6.0/index.html": {}, "https://datatracker.ietf.org/doc/html/bcp14": {}, "https://datatracker.ietf.org/doc/html/draft-holmberg-mmusic-t140-usage-data-channel": {}, - "https://datatracker.ietf.org/doc/html/rfc8829": { - "anchors": [ - "section-3.5.4", - "section-4.1.1", - "section-3.5.3", - "section-5.5", - "section-5.6", - "section-5.9", - "section-5.10", - "section-4.1.18", - "section-4.1.17", - "section-4.1.8", - "section-5.2", - "section-4.1.10.1", - "section-4.1.9", - "section-5.3", - "section-5.4", - "section-4.1.19", - "section-3.5.1", - "section-5.3.1", - "section-3.6", - "section-5.2.2", - "section-5.3.2", - "section-5.2.1", - "section-3.7", - "section-5.8", - "section-3.4.1", - "section-4.2.4", - "section-4.2.5", - "section-4.2.1" - ] - }, "https://datatracker.ietf.org/wg/mmusic/": {}, "https://datatracker.ietf.org/wg/rtcweb/": {}, "https://dom.spec.whatwg.org/": {}, @@ -63,8 +31,10 @@ "https://github.com/w3c/webrtc-pc/pull/2748": {}, "https://github.com/w3c/webrtc-pc/pull/2753": {}, "https://github.com/w3c/webrtc-pc/pull/2754": {}, + "https://github.com/w3c/webrtc-pc/pull/2755": {}, "https://github.com/w3c/webrtc-pc/pull/2758": {}, "https://github.com/w3c/webrtc-pc/pull/2759": {}, + "https://github.com/w3c/webrtc-pc/pull/2760": {}, "https://github.com/w3c/webrtc-pc/pull/2763": {}, "https://github.com/w3c/webrtc-pc/pull/2767": {}, "https://github.com/w3c/webrtc-pc/pull/2772": {}, @@ -80,24 +50,59 @@ "https://github.com/w3c/webrtc-pc/pull/2808": {}, "https://github.com/w3c/webrtc-pc/pull/2813": {}, "https://github.com/w3c/webrtc-pc/pull/2814": {}, + "https://github.com/w3c/webrtc-pc/pull/2829": {}, + "https://github.com/w3c/webrtc-pc/pull/2832": {}, + "https://github.com/w3c/webrtc-pc/pull/2834": {}, + "https://github.com/w3c/webrtc-pc/pull/2841": {}, + "https://github.com/w3c/webrtc-pc/pull/2847": {}, + "https://github.com/w3c/webrtc-pc/pull/2853": {}, + "https://github.com/w3c/webrtc-pc/pull/2861": {}, + "https://github.com/w3c/webrtc-pc/pull/2875": {}, + "https://github.com/w3c/webrtc-pc/pull/2876": {}, + "https://github.com/w3c/webrtc-pc/pull/2885": {}, + "https://github.com/w3c/webrtc-pc/pull/2894": {}, + "https://github.com/w3c/webrtc-pc/pull/2902": {}, + "https://github.com/w3c/webrtc-pc/pull/2909": {}, + "https://github.com/w3c/webrtc-pc/pull/2913": {}, + "https://github.com/w3c/webrtc-pc/pull/2926": {}, + "https://github.com/w3c/webrtc-pc/pull/2953": {}, + "https://github.com/w3c/webrtc-pc/pull/2961": {}, + "https://github.com/w3c/webrtc-pc/pull/2966": {}, + "https://github.com/w3c/webrtc-pc/pull/2975": {}, + "https://github.com/w3c/webrtc-pc/pull/2985": {}, + "https://github.com/w3c/webrtc-pc/pull/2988": {}, + "https://github.com/w3c/webrtc-pc/pull/2996": {}, + "https://github.com/w3c/webrtc-pc/pull/3005": {}, + "https://github.com/web-platform-tests/wpt/pull/21025": {}, + "https://github.com/web-platform-tests/wpt/pull/34912": {}, + "https://github.com/web-platform-tests/wpt/pull/35703": {}, + "https://github.com/web-platform-tests/wpt/pull/36155": {}, + "https://github.com/web-platform-tests/wpt/pull/36157": {}, + "https://github.com/web-platform-tests/wpt/pull/36572": {}, + "https://github.com/web-platform-tests/wpt/pull/37477": {}, + "https://github.com/web-platform-tests/wpt/pull/41663": {}, + "https://github.com/web-platform-tests/wpt/pull/43166": {}, + "https://github.com/web-platform-tests/wpt/pull/43167": {}, + "https://github.com/web-platform-tests/wpt/pull/43171": {}, + "https://github.com/web-platform-tests/wpt/pull/43172": {}, + "https://github.com/web-platform-tests/wpt/pull/43173": {}, + "https://github.com/web-platform-tests/wpt/pull/43369": {}, + "https://github.com/web-platform-tests/wpt/pull/43601": {}, + "https://github.com/web-platform-tests/wpt/pull/44318": {}, + "https://github.com/web-platform-tests/wpt/pull/44687": {}, + "https://github.com/web-platform-tests/wpt/pull/45339": {}, + "https://github.com/web-platform-tests/wpt/pull/45427": {}, + "https://github.com/web-platform-tests/wpt/pull/46526": {}, + "https://github.com/web-platform-tests/wpt/pull/46647": {}, + "https://github.com/web-platform-tests/wpt/pull/46655": {}, + "https://github.com/web-platform-tests/wpt/pull/47663": {}, + "https://github.com/web-platform-tests/wpt/pull/47707": {}, + "https://github.com/web-platform-tests/wpt/pull/48361": {}, "https://github.com/web-platform-tests/wpt/tree/master/webrtc": {}, "https://html.spec.whatwg.org/multipage/": {}, - "https://html.spec.whatwg.org/multipage/browsers.html": { - "anchors": [ - "same-origin", - "ascii-serialisation-of-an-origin" - ] - }, - "https://html.spec.whatwg.org/multipage/document-lifecycle.html": { - "anchors": [ - "unloading-document-cleanup-steps" - ] - }, "https://html.spec.whatwg.org/multipage/structured-data.html": { "anchors": [ - "serializable-objects", - "serializable", - "deserialization-steps" + "serializable-objects" ] }, "https://html.spec.whatwg.org/multipage/web-sockets.html": { @@ -112,6 +117,11 @@ "eqn-floor" ] }, + "https://url.spec.whatwg.org/": { + "anchors": [ + "concept-url-parser" + ] + }, "https://w3c.github.io/webrtc-interop-reports/webrtc-pc-report.html": {}, "https://w3ctag.github.io/design-principles/": { "anchors": [ @@ -120,18 +130,9 @@ }, "https://webidl.spec.whatwg.org/": { "anchors": [ - "idl-sequence", - "EnforceRange", - "Exposed", - "idl-promise", - "Default", - "dfn-convert-ecmascript-to-idl-value", - "SameObject", - "idl-frozen-array", - "dfn-maplike" + "dfn-convert-ecmascript-to-idl-value" ] }, - "https://websockets.spec.whatwg.org/": {}, "https://www.ecfr.gov/cgi-bin/text-idx?SID=ada7cebd65433a9e05c35426a2bc76b8&mc=true&node=pt47.3.67&rgn=div5": {}, "https://www.iana.org/assignments/hash-function-text-names/hash-function-text-names.xml": {}, "https://www.iana.org/assignments/rtp-parameters/rtp-parameters.xhtml": { @@ -149,7 +150,6 @@ "https://www.rfc-editor.org/rfc/rfc3264": {}, "https://www.rfc-editor.org/rfc/rfc3550": {}, "https://www.rfc-editor.org/rfc/rfc3890": {}, - "https://www.rfc-editor.org/rfc/rfc3986": {}, "https://www.rfc-editor.org/rfc/rfc4103": {}, "https://www.rfc-editor.org/rfc/rfc4566": {}, "https://www.rfc-editor.org/rfc/rfc4572": {}, @@ -158,7 +158,11 @@ "https://www.rfc-editor.org/rfc/rfc5285": {}, "https://www.rfc-editor.org/rfc/rfc5389": {}, "https://www.rfc-editor.org/rfc/rfc5506": {}, - "https://www.rfc-editor.org/rfc/rfc5888": {}, + "https://www.rfc-editor.org/rfc/rfc5888": { + "anchors": [ + "section-7" + ] + }, "https://www.rfc-editor.org/rfc/rfc6236": {}, "https://www.rfc-editor.org/rfc/rfc6464": {}, "https://www.rfc-editor.org/rfc/rfc6465": {}, @@ -177,7 +181,6 @@ "https://www.rfc-editor.org/rfc/rfc8826": {}, "https://www.rfc-editor.org/rfc/rfc8827": {}, "https://www.rfc-editor.org/rfc/rfc8828": {}, - "https://www.rfc-editor.org/rfc/rfc8829": {}, "https://www.rfc-editor.org/rfc/rfc8831": {}, "https://www.rfc-editor.org/rfc/rfc8832": {}, "https://www.rfc-editor.org/rfc/rfc8834": {}, @@ -188,21 +191,40 @@ "https://www.rfc-editor.org/rfc/rfc8851": {}, "https://www.rfc-editor.org/rfc/rfc8853": {}, "https://www.rfc-editor.org/rfc/rfc8863": {}, - "https://www.w3.org/2021/Process-20211102/": { - "anchors": [ - "recs-and-notes", - "candidate-amendments", - "allow-new-features", - "candidate-changes" - ] - }, - "https://www.w3.org/Consortium/Patent-Policy/": { + "https://www.rfc-editor.org/rfc/rfc9429": { "anchors": [ - "sec-Requirements", - "def-essential", - "sec-Disclosure" + "section-3.5.4", + "section-4.1.1", + "section-3.5.3", + "section-5.5", + "section-5.6", + "section-5.9", + "section-5.10", + "section-4.1.18", + "section-4.1.17", + "section-4.1.8", + "section-5.2", + "section-4.1.10.1", + "section-4.1.9", + "section-5.3", + "section-5.4", + "section-4.1.19", + "section-3.5.1", + "section-5.3.1", + "section-3.6", + "section-5.2.2", + "section-5.3.2", + "section-5.2.1", + "section-3.7", + "section-5.8", + "section-3.4.1", + "section-4.2.4", + "section-4.2.5", + "section-4.2.1" ] }, + "https://www.w3.org/2002/09/wbs/myQuestionnaires": {}, + "https://www.w3.org/2024/10/webrtc-amendments-interop.html": {}, "https://www.w3.org/TR/": {}, "https://www.w3.org/TR/2021/REC-webrtc-20210126/": {}, "https://www.w3.org/TR/FileAPI/": {}, @@ -235,246 +257,43 @@ "https://www.w3.org/community/ortc/": {}, "https://www.w3.org/groups/wg/webrtc": {}, "https://www.w3.org/groups/wg/webrtc/ipr": {}, - "https://xhr.spec.whatwg.org/": {} - }, - "autolinks": { - "https://dom.spec.whatwg.org/": { + "https://www.w3.org/policies/patent-policy/": { "anchors": [ - "concept-event-fire", - "concept-event", - "eventtarget", - "event", - "dictdef-eventinit" + "sec-Requirements", + "def-essential", + "sec-Disclosure" ] }, - "https://fetch.spec.whatwg.org/": { + "https://www.w3.org/policies/process/": { "anchors": [ - "block-bad-port" + "proposed-amendments", + "candidate-changes" ] }, - "https://html.spec.whatwg.org/multipage/comms.html": { + "https://www.w3.org/policies/process/20231103/": { "anchors": [ - "messageevent" + "recs-and-notes", + "proposed-amendments", + "allow-new-features" ] - }, + } + }, + "autolinks": { "https://html.spec.whatwg.org/multipage/structured-data.html": { "anchors": [ - "serialization-steps", - "deserialization-steps", "serializable-objects" ] }, - "https://html.spec.whatwg.org/multipage/web-messaging.html": { - "anchors": [ - "dom-messageport-postmessage-options" - ] - }, - "https://html.spec.whatwg.org/multipage/webappapis.html": { - "anchors": [ - "eventhandler", - "queue-a-task", - "networking-task-source", - "event-handlers", - "event-handler-event-type", - "concept-relevant-global", - "relevant-settings-object", - "concept-settings-object-origin" - ] - }, - "https://infra.spec.whatwg.org/": { - "anchors": [ - "map-exists", - "implementation-defined" - ] - }, - "https://webidl.spec.whatwg.org/": { - "anchors": [ - "dfn-throw", - "dfn-create-exception", - "VoidFunction", - "idl-octet", - "idl-DOMString", - "idl-boolean", - "unknownerror", - "dom-domexception-message", - "invalidaccesserror", - "invalidstateerror", - "operationerror", - "invalidmodificationerror", - "syntaxerror", - "notsupportederror", - "idl-undefined", - "dfn-perform-steps-once-promise-is-settled", - "exceptiondef-typeerror", - "idl-DOMException", - "idl-object", - "default-tojson-steps", - "idl-unsigned-short", - "idl-unsigned-long", - "idl-USVString", - "idl-unsigned-long-long", - "exceptiondef-rangeerror", - "idl-double", - "idl-ArrayBuffer", - "idl-unrestricted-double", - "ArrayBufferView", - "invalidcharactererror", - "idl-long", - "dom-domexception-name", - "dom-domexception-code" - ] - }, - "https://websockets.spec.whatwg.org/": { - "anchors": [ - "websocket", - "enumdef-binarytype", - "dom-websocket-binarytype" - ] - }, - "https://www.w3.org/TR/FileAPI/": { - "anchors": [ - "dfn-Blob" - ] - }, + "https://webidl.spec.whatwg.org/": {}, "https://www.w3.org/TR/WebCryptoAPI/": { "anchors": [ "dfn-AlgorithmIdentifier" ] }, - "https://www.w3.org/TR/hr-time-3/": { - "anchors": [ - "dom-performance", - "dom-performance-timeorigin", - "dom-performance-now", - "dom-epochtimestamp", - "dom-domhighrestimestamp" - ] - }, - "https://www.w3.org/TR/mediacapture-streams/": { - "anchors": [ - "dom-mediastream", - "dom-mediastreamtrack", - "dom-mediastreamconstraints", - "dom-mediastreamtrack-kind", - "dom-mediastream-id", - "dom-mediatrackconstraints", - "dom-mediatracksettings", - "dom-constrainulong", - "dom-constraindouble" - ] - }, "https://www.w3.org/TR/webrtc-stats/": { "anchors": [ "dfn-monitored-object", - "dfn-stats-object", - "dom-rtcrtpstreamstats-ssrc", - "dom-rtcsentrtpstreamstats-bytessent", - "dom-rtcsentrtpstreamstats-packetssent", - "dom-rtcstatstype", - "dom-rtcoutboundrtpstreamstats", - "dom-rtcinboundrtpstreamstats", - "dom-rtcstatstype-codec", - "dom-rtccodecstats", - "dom-rtccodecstats-payloadtype", - "dom-rtccodecstats-mimetype", - "dom-rtccodecstats-clockrate", - "dom-rtccodecstats-channels", - "dom-rtccodecstats-sdpfmtpline", - "dom-rtcstatstype-inbound-rtp", - "dom-rtcrtpstreamstats", - "dom-rtcrtpstreamstats-kind", - "dom-rtcrtpstreamstats-transportid", - "dom-rtcrtpstreamstats-codecid", - "dom-rtcreceivedrtpstreamstats", - "dom-rtcreceivedrtpstreamstats-packetsreceived", - "dom-rtcreceivedrtpstreamstats-packetslost", - "dom-rtcreceivedrtpstreamstats-jitter", - "dom-rtcinboundrtpstreamstats-trackidentifier", - "dom-rtcinboundrtpstreamstats-remoteid", - "dom-rtcinboundrtpstreamstats-framesdecoded", - "dom-rtcinboundrtpstreamstats-framesdropped", - "dom-rtcinboundrtpstreamstats-nackcount", - "dom-rtcinboundrtpstreamstats-framesreceived", - "dom-rtcinboundrtpstreamstats-bytesreceived", - "dom-rtcinboundrtpstreamstats-totalaudioenergy", - "dom-rtcinboundrtpstreamstats-totalsamplesduration", - "dom-rtcinboundrtpstreamstats-packetsdiscarded", - "dom-rtcstatstype-outbound-rtp", - "dom-rtcsentrtpstreamstats", - "dom-rtcoutboundrtpstreamstats-remoteid", - "dom-rtcoutboundrtpstreamstats-framesencoded", - "dom-rtcoutboundrtpstreamstats-nackcount", - "dom-rtcoutboundrtpstreamstats-framessent", - "dom-rtcstatstype-remote-inbound-rtp", - "dom-rtcremoteinboundrtpstreamstats", - "dom-rtcremoteinboundrtpstreamstats-localid", - "dom-rtcremoteinboundrtpstreamstats-roundtriptime", - "dom-rtcstatstype-remote-outbound-rtp", - "dom-rtcremoteoutboundrtpstreamstats", - "dom-rtcremoteoutboundrtpstreamstats-localid", - "dom-rtcremoteoutboundrtpstreamstats-remotetimestamp", - "dom-rtcstatstype-media-source", - "dom-rtcmediasourcestats", - "dom-rtcmediasourcestats-trackidentifier", - "dom-rtcmediasourcestats-kind", - "dom-rtcaudiosourcestats", - "dom-rtcaudiosourcestats-totalaudioenergy", - "dom-rtcaudiosourcestats-totalsamplesduration", - "dom-rtcvideosourcestats", - "dom-rtcvideosourcestats-width", - "dom-rtcvideosourcestats-height", - "dom-rtcvideosourcestats-framespersecond", - "dom-rtcstatstype-peer-connection", - "dom-rtcpeerconnectionstats", - "dom-rtcpeerconnectionstats-datachannelsopened", - "dom-rtcpeerconnectionstats-datachannelsclosed", - "dom-rtcstatstype-data-channel", - "dom-rtcdatachannelstats", - "dom-rtcdatachannelstats-label", - "dom-rtcdatachannelstats-protocol", - "dom-rtcdatachannelstats-datachannelidentifier", - "dom-rtcdatachannelstats-state", - "dom-rtcdatachannelstats-messagessent", - "dom-rtcdatachannelstats-bytessent", - "dom-rtcdatachannelstats-messagesreceived", - "dom-rtcdatachannelstats-bytesreceived", - "dom-rtcstatstype-transport", - "dom-rtctransportstats", - "dom-rtctransportstats-bytessent", - "dom-rtctransportstats-bytesreceived", - "dom-rtctransportstats-selectedcandidatepairid", - "dom-rtctransportstats-localcertificateid", - "dom-rtctransportstats-remotecertificateid", - "dom-rtcstatstype-candidate-pair", - "dom-rtcicecandidatepairstats", - "dom-rtcicecandidatepairstats-transportid", - "dom-rtcicecandidatepairstats-localcandidateid", - "dom-rtcicecandidatepairstats-remotecandidateid", - "dom-rtcicecandidatepairstats-state", - "dom-rtcicecandidatepairstats-nominated", - "dom-rtcicecandidatepairstats-bytessent", - "dom-rtcicecandidatepairstats-bytesreceived", - "dom-rtcicecandidatepairstats-totalroundtriptime", - "dom-rtcicecandidatepairstats-currentroundtriptime", - "dom-rtcstatstype-local-candidate", - "dom-rtcicecandidatestats", - "dom-rtcicecandidatestats-address", - "dom-rtcicecandidatestats-port", - "dom-rtcicecandidatestats-protocol", - "dom-rtcicecandidatestats-candidatetype", - "dom-rtcicecandidatestats-url", - "dom-rtcstatstype-remote-candidate", - "dom-rtcstatstype-certificate", - "dom-rtccertificatestats", - "dom-rtccertificatestats-fingerprint", - "dom-rtccertificatestats-fingerprintalgorithm", - "dom-rtccertificatestats-base64certificate", - "dom-rtccertificatestats-issuercertificateid" - ] - }, - "https://xhr.spec.whatwg.org/": { - "anchors": [ - "xmlhttprequest" + "dfn-stats-object" ] } } diff --git a/tr/refs/presentation-api.json b/tr/refs/presentation-api.json index ba32529fba05..e554bf4d9106 100644 --- a/tr/refs/presentation-api.json +++ b/tr/refs/presentation-api.json @@ -29,6 +29,10 @@ "name": "INDEXEDDB", "url": "https://www.w3.org/TR/IndexedDB/" }, + { + "name": "infra", + "url": "https://infra.spec.whatwg.org/" + }, { "name": "PERMISSIONS", "url": "https://www.w3.org/TR/permissions/" diff --git a/tr/refs/webrtc.json b/tr/refs/webrtc.json index b51113ca4ef8..e81b20b1e7fa 100644 --- a/tr/refs/webrtc.json +++ b/tr/refs/webrtc.json @@ -63,7 +63,7 @@ }, { "name": "RFC3986", - "url": "https://www.rfc-editor.org/rfc/rfc3986" + "url": "https://tools.ietf.org/html/rfc3986" }, { "name": "RFC4566", @@ -151,7 +151,7 @@ }, { "name": "RFC8829", - "url": "https://www.rfc-editor.org/rfc/rfc8829" + "url": "https://tools.ietf.org/html/rfc8829" }, { "name": "RFC8831", @@ -193,6 +193,10 @@ "name": "RFC8863", "url": "https://www.rfc-editor.org/rfc/rfc8863" }, + { + "name": "RFC9429", + "url": "https://www.rfc-editor.org/rfc/rfc9429" + }, { "name": "SDP", "url": "https://www.rfc-editor.org/rfc/rfc3264" @@ -201,22 +205,22 @@ "name": "STUN-PARAMETERS", "url": "https://www.iana.org/assignments/stun-parameters/stun-parameters.xhtml#stun-parameters-6" }, + { + "name": "url", + "url": "https://url.spec.whatwg.org/" + }, { "name": "WebCryptoAPI", "url": "https://www.w3.org/TR/WebCryptoAPI/" }, { "name": "WEBIDL", - "url": "https://webidl.spec.whatwg.org/" + "url": "https://heycam.github.io/webidl/" }, { "name": "WEBRTC-STATS", "url": "https://www.w3.org/TR/webrtc-stats/" }, - { - "name": "websockets", - "url": "https://websockets.spec.whatwg.org/" - }, { "name": "X509V3" }, @@ -257,10 +261,6 @@ { "name": "RFC8828", "url": "https://www.rfc-editor.org/rfc/rfc8828" - }, - { - "name": "xhr", - "url": "https://xhr.spec.whatwg.org/" } ] }