diff --git a/ed/algorithms/fedcm-1.json b/ed/algorithms/fedcm-1.json index 40c1f8dc0be3..c62b166aad7d 100644 --- a/ed/algorithms/fedcm-1.json +++ b/ed/algorithms/fedcm-1.json @@ -1161,7 +1161,7 @@ ] }, { - "html": "The remote end steps are:", + "html": "The remote end steps are:", "rationale": "if", "steps": [ { @@ -1176,7 +1176,7 @@ ] }, { - "html": "The remote end steps are:", + "html": "The remote end steps are:", "rationale": "if", "steps": [ { @@ -1200,7 +1200,7 @@ ] }, { - "html": "The remote end steps are:", + "html": "The remote end steps are:", "rationale": "if", "steps": [ { @@ -1224,7 +1224,7 @@ ] }, { - "html": "The remote end steps are:", + "html": "The remote end steps are:", "rationale": "if", "steps": [ { @@ -1257,7 +1257,7 @@ ] }, { - "html": "The remote end steps are:", + "html": "The remote end steps are:", "rationale": "if", "steps": [ { @@ -1275,7 +1275,7 @@ ] }, { - "html": "The remote end steps are:", + "html": "The remote end steps are:", "rationale": "if", "steps": [ { @@ -1290,7 +1290,7 @@ ] }, { - "html": "The remote end steps are:", + "html": "The remote end steps are:", "rationale": "if", "steps": [ { @@ -1311,7 +1311,7 @@ ] }, { - "html": "The remote end steps are:", + "html": "The remote end steps are:", "rationale": "if", "steps": [ { diff --git a/ed/algorithms/html.json b/ed/algorithms/html.json index ebf3105aa4b6..8eefa401cd8f 100644 --- a/ed/algorithms/html.json +++ b/ed/algorithms/html.json @@ -20687,9 +20687,9 @@ ] }, { - "name": "match cross-origin opener policy values", + "name": "match opener policy values", "href": "https://html.spec.whatwg.org/multipage/browsers.html#matching-coop", - "html": "To match cross-origin opener policy values, given a\n cross-origin opener policy value A, an origin\n originA, a cross-origin opener policy value B, and an\n origin originB:", + "html": "To match opener policy values, given an opener policy\n value A, an origin originA, an opener policy\n value B, and an origin originB:", "rationale": "if", "steps": [ { @@ -20707,13 +20707,13 @@ ] }, { - "name": "obtain a cross-origin opener policy", + "name": "obtain an opener policy", "href": "https://html.spec.whatwg.org/multipage/browsers.html#obtain-coop", - "html": "To obtain a cross-origin opener policy given a response response and an environment\n reservedEnvironment:", + "html": "To obtain an opener policy given a response response and an environment\n reservedEnvironment:", "rationale": "let", "steps": [ { - "html": "
Let policy be a new cross-origin opener policy.
" + "html": "Let policy be a new opener policy.
" }, { "html": "If reservedEnvironment is a non-secure context, then return\n policy.
" @@ -20786,7 +20786,7 @@ { "name": "check if COOP values require a browsing context group switch", "href": "https://html.spec.whatwg.org/multipage/browsers.html#check-browsing-context-group-switch-coop-value", - "html": "To check if COOP values require a\n browsing context group switch, given a boolean isInitialAboutBlank, two origins responseOrigin and\n activeDocumentNavigationOrigin, and two cross-origin\n opener policy values responseCOOPValue and\n activeDocumentCOOPValue:", + "html": "To check if COOP values require a\n browsing context group switch, given a boolean isInitialAboutBlank, two origins responseOrigin and\n activeDocumentNavigationOrigin, and two opener policy\n values responseCOOPValue and activeDocumentCOOPValue:", "rationale": "if", "steps": [ { @@ -20803,7 +20803,7 @@ { "name": "check if enforcing report-only COOP would require a browsing context group switch", "href": "https://html.spec.whatwg.org/multipage/browsers.html#check-bcg-switch-navigation-report-only", - "html": "To check if enforcing report-only COOP\n would require a browsing context group switch, given a boolean\n isInitialAboutBlank, two origins\n responseOrigin, activeDocumentNavigationOrigin, and two cross-origin opener policies responseCOOP\n and activeDocumentCOOP:", + "html": "To check if enforcing report-only COOP\n would require a browsing context group switch, given a boolean\n isInitialAboutBlank, two origins\n responseOrigin, activeDocumentNavigationOrigin, and two opener policies responseCOOP and activeDocumentCOOP:", "rationale": "if", "steps": [ { @@ -20821,13 +20821,13 @@ ] }, { - "name": "enforce a response's cross-origin opener policy", + "name": "enforce a response's opener policy", "href": "https://html.spec.whatwg.org/multipage/browsers.html#coop-enforce", - "html": "To enforce a response's cross-origin opener policy, given a\n browsing context browsingContext, a URL\n responseURL, an origin responseOrigin, a cross-origin\n opener policy responseCOOP, a cross-origin opener policy enforcement result\n currentCOOPEnforcementResult, and a referrer referrer:", + "html": "To enforce a response's opener policy, given a browsing\n context browsingContext, a URL responseURL, an\n origin responseOrigin, an opener policy\n responseCOOP, an opener policy enforcement\n result currentCOOPEnforcementResult, and a referrer referrer:", "rationale": "let", "steps": [ { - "html": "Let newCOOPEnforcementResult be a new cross-origin opener policy enforcement result with
\n\nLet newCOOPEnforcementResult be a new opener policy enforcement result with
\n\nLet isInitialAboutBlank be browsingContext's active\n document's is initial about:blank
.
If isInitialAboutBlank is true and browsingContext's initial URL is null, set\n browsingContext's initial URL to\n responseURL.
" }, { - "html": "If the result of checking if\n COOP values require a browsing context group switch given\n isInitialAboutBlank, currentCOOPEnforcementResult's cross-origin opener policy's value, currentCOOPEnforcementResult's origin, responseCOOP's value, and responseOrigin is true, then:", + "html": "If the result of checking if\n COOP values require a browsing context group switch given\n isInitialAboutBlank, currentCOOPEnforcementResult's opener policy's value, currentCOOPEnforcementResult's origin, responseCOOP's value, and responseOrigin is true, then:", "rationale": "set", "steps": [ { @@ -20850,14 +20850,14 @@ "html": "Queue a violation report for browsing\n context group switch when navigating to a COOP response with responseCOOP,\n \"enforce
\", responseURL,\n currentCOOPEnforcementResult's url,\n currentCOOPEnforcementResult's origin, responseOrigin, and\n referrer.
Queue a violation report for browsing\n context group switch when navigating away from a COOP response with\n currentCOOPEnforcementResult's cross-origin\n opener policy, \"enforce
\",\n currentCOOPEnforcementResult's url,\n responseURL, currentCOOPEnforcementResult's origin, responseOrigin, and\n currentCOOPEnforcementResult's current\n context is navigation source.
Queue a violation report for browsing\n context group switch when navigating away from a COOP response with\n currentCOOPEnforcementResult's opener\n policy, \"enforce
\", currentCOOPEnforcementResult's\n url, responseURL,\n currentCOOPEnforcementResult's origin, responseOrigin, and\n currentCOOPEnforcementResult's current\n context is navigation source.
Queue a violation report for browsing\n context group switch when navigating to a COOP response with responseCOOP,\n \"reporting
\", responseURL,\n currentCOOPEnforcementResult's url,\n currentCOOPEnforcementResult's origin, responseOrigin, and\n referrer.
Queue a violation report for browsing\n context group switch when navigating away from a COOP response with\n currentCOOPEnforcementResult's cross-origin\n opener policy, \"reporting
\",\n currentCOOPEnforcementResult's url,\n responseURL, currentCOOPEnforcementResult's origin, responseOrigin, and\n currentCOOPEnforcementResult's current\n context is navigation source.
Queue a violation report for browsing\n context group switch when navigating away from a COOP response with\n currentCOOPEnforcementResult's opener\n policy, \"reporting
\",\n currentCOOPEnforcementResult's url,\n responseURL, currentCOOPEnforcementResult's origin, responseOrigin, and\n currentCOOPEnforcementResult's current\n context is navigation source.
If accessor's top-level browsing context's\n opener browsing context is accessed or is an ancestor of accessed, then set\n accessorAccessedRelationship to accessor is\n openee.
" }, { - "html": "Queue violation reports for accesses, given\n accessorAccessedRelationship, accessorTopDocument's cross-origin opener policy,\n accessedTopDocument's cross-origin opener\n policy, accessor's active document's URL, accessed's active document's\n URL, accessor's top-level browsing context's initial URL, accessed's top-level browsing context's initial URL, accessor's active\n document's origin, accessed's\n active document's origin,\n accessor's top-level browsing context's opener origin at creation, accessed's top-level browsing context's opener origin at creation,\n accessorTopDocument's referrer,\n accessedTopDocument's referrer,\n P, and environment.
" + "html": "Queue violation reports for accesses, given\n accessorAccessedRelationship, accessorTopDocument's opener policy, accessedTopDocument's opener policy, accessor's active\n document's URL, accessed's\n active document's URL,\n accessor's top-level browsing context's initial URL, accessed's top-level browsing context's initial URL, accessor's active\n document's origin, accessed's\n active document's origin,\n accessor's top-level browsing context's opener origin at creation, accessed's top-level browsing context's opener origin at creation,\n accessorTopDocument's referrer,\n accessedTopDocument's referrer,\n P, and environment.
" } ] }, @@ -20996,7 +20996,7 @@ { "name": "queue a violation report for browsing context group switch when navigating to a COOP response", "href": "https://html.spec.whatwg.org/multipage/browsers.html#coop-violation-navigation-to", - "html": "To queue a violation report for browsing context\n group switch when navigating to a COOP response given a cross-origin opener policy coop, a string disposition, a\n URL coopURL, a URL previousResponseURL, two origins coopOrigin and previousResponseOrigin, and a\n referrer referrer:", + "html": "To queue a violation report for browsing context\n group switch when navigating to a COOP response given an opener\n policy coop, a string disposition, a URL\n coopURL, a URL previousResponseURL, two origins coopOrigin and previousResponseOrigin, and a\n referrer referrer:", "rationale": "if", "steps": [ { @@ -21025,7 +21025,7 @@ { "name": "queue a violation report for browsing context group switch when navigating away from a COOP response", "href": "https://html.spec.whatwg.org/multipage/browsers.html#coop-violation-navigation-from", - "html": "To queue a violation report for browsing context\n group switch when navigating away from a COOP response given a cross-origin opener policy coop, a string\n disposition, a URL coopURL, a URL\n nextResponseURL, two origins coopOrigin and\n nextResponseOrigin, and a boolean isCOOPResponseNavigationSource:", + "html": "To queue a violation report for browsing context\n group switch when navigating away from a COOP response given an opener policy coop, a string disposition, a URL\n coopURL, a URL nextResponseURL, two origins coopOrigin and nextResponseOrigin, and a\n boolean isCOOPResponseNavigationSource:", "rationale": "if", "steps": [ { @@ -21048,7 +21048,7 @@ { "name": "queue violation reports for accesses", "href": "https://html.spec.whatwg.org/multipage/browsers.html#coop-violation-access", - "html": "To queue violation reports for accesses, given an\n accessor-accessed relationship accessorAccessedRelationship, two\n cross-origin opener policies\n accessorCOOP and accessedCOOP, four URLs\n accessorURL, accessedURL, accessorInitialURL,\n accessedInitialURL, four origins\n accessorOrigin, accessedOrigin, accessorCreatorOrigin and\n accessedCreatorOrigin, two referrers\n accessorReferrer and accessedReferrer, a string propertyName, and\n an environment settings object environment:", + "html": "To queue violation reports for accesses, given an\n accessor-accessed relationship accessorAccessedRelationship, two opener policies accessorCOOP and accessedCOOP,\n four URLs accessorURL, accessedURL,\n accessorInitialURL, accessedInitialURL, four origins accessorOrigin, accessedOrigin,\n accessorCreatorOrigin and accessedCreatorOrigin, two referrers accessorReferrer and\n accessedReferrer, a string propertyName, and an environment settings\n object environment:", "rationale": "if", "steps": [ { @@ -21101,7 +21101,7 @@ { "name": "queue a violation report for access to the opener", "href": "https://html.spec.whatwg.org/multipage/browsers.html#coop-violation-access-to-opener", - "html": "To queue a violation report for access to the\n opener, given a cross-origin opener\n policy coop, two URLs coopURL and\n openerURL, two origins coopOrigin and\n openerOrigin, a string propertyName, a referrer referrer, and an environment\n settings object environment:", + "html": "To queue a violation report for access to the\n opener, given an opener policy coop, two\n URLs coopURL and openerURL, two origins coopOrigin and openerOrigin, a string\n propertyName, a referrer\n referrer, and an environment settings object environment:", "rationale": "let", "steps": [ { @@ -21124,7 +21124,7 @@ { "name": "queue a violation report for access to an opened window", "href": "https://html.spec.whatwg.org/multipage/browsers.html#coop-violation-access-to-opened", - "html": "To queue a violation report for access to an\n opened window, given a cross-origin opener\n policy coop, three URLs coopURL,\n openedWindowURL and initialWindowURL, three origins coopOrigin, openedWindowOrigin, and\n openerInitialOrigin, a string propertyName, and an environment\n settings object environment:", + "html": "To queue a violation report for access to an\n opened window, given an opener policy coop,\n three URLs coopURL, openedWindowURL and\n initialWindowURL, three origins coopOrigin,\n openedWindowOrigin, and openerInitialOrigin, a string\n propertyName, and an environment settings object\n environment:", "rationale": "let", "steps": [ { @@ -21141,7 +21141,7 @@ { "name": "queue a violation report for access to another window", "href": "https://html.spec.whatwg.org/multipage/browsers.html#coop-violation-access-to-other", - "html": "To queue a violation report for access to another\n window, given a cross-origin opener policy\n coop, two URLs coopURL and\n otherURL, two origins coopOrigin and\n otherOrigin, a string propertyName, and an environment settings\n object environment:", + "html": "To queue a violation report for access to another\n window, given an opener policy coop, two\n URLs coopURL and otherURL, two origins coopOrigin and otherOrigin, a string\n propertyName, and an environment settings object\n environment:", "rationale": "let", "steps": [ { @@ -21158,7 +21158,7 @@ { "name": "queue a violation report for access from the opener", "href": "https://html.spec.whatwg.org/multipage/browsers.html#coop-violation-access-from-opener", - "html": "To queue a violation report for access from the\n opener, given a cross-origin opener policy\n coop, two URLs coopURL and\n openerURL, two origins coopOrigin and\n openerOrigin, a string propertyName, and a referrer referrer:", + "html": "To queue a violation report for access from the\n opener, given an opener policy coop, two\n URLs coopURL and openerURL, two origins coopOrigin and openerOrigin, a string\n propertyName, and a referrer\n referrer:", "rationale": "if", "steps": [ { @@ -21181,7 +21181,7 @@ { "name": "queue a violation report for access from an opened window", "href": "https://html.spec.whatwg.org/multipage/browsers.html#coop-violation-access-from-opened", - "html": "To queue a violation report for access from an\n opened window, given a cross-origin opener\n policy coop, three URLs coopURL,\n openedWindowURL and initialWindowURL, three origins coopOrigin, openedWindowOrigin, and\n openerInitialOrigin, and a string propertyName:", + "html": "To queue a violation report for access from an\n opened window, given an opener policy coop,\n three URLs coopURL, openedWindowURL and\n initialWindowURL, three origins coopOrigin,\n openedWindowOrigin, and openerInitialOrigin, and a string\n propertyName:", "rationale": "if", "steps": [ { @@ -21198,7 +21198,7 @@ { "name": "queue a violation report for access from another window", "href": "https://html.spec.whatwg.org/multipage/browsers.html#coop-violation-access-from-other", - "html": "To queue a violation report for access from another\n window, given a cross-origin opener policy\n coop, two URLs coopURL and otherURL, two\n origins coopOrigin and otherOrigin, and a string\n propertyName:", + "html": "To queue a violation report for access from\n another window, given an opener policy coop,\n two URLs coopURL and otherURL, two origins coopOrigin and otherOrigin, and a string\n propertyName:", "rationale": "if", "steps": [ { @@ -25794,7 +25794,7 @@ "html": "Set document's policy\n container to a clone of\n creator's policy\n container.
" }, { - "html": "If creator's origin is\n same origin with creator's relevant settings object's\n top-level origin, then set document's cross-origin opener policy to creator's browsing context's top-level\n browsing context's active document's cross-origin opener policy.
" + "html": "If creator's origin is\n same origin with creator's relevant settings object's\n top-level origin, then set document's opener policy to creator's browsing context's top-level\n browsing context's active document's opener policy.
" } ] }, @@ -26451,13 +26451,13 @@ "html": "Let responseOrigin be the result of determining the origin\n given response's URL,\n finalSandboxFlags, and documentState's initiator origin.
" }, { - "html": "Let coop be a new cross-origin opener policy.
" + "html": "Let coop be a new opener policy.
" }, { - "html": "Let coopEnforcementResult be a new cross-origin opener policy enforcement result\n with
\n\nLet coopEnforcementResult be a new opener policy enforcement result\n with
\n\nSet navigationParams to a new navigation params, with
\n\nnavigate
\"Set navigationParams to a new navigation params, with
\n\nnavigate
\"Let coop be targetNavigable's active\n document's cross-origin opener\n policy.
" }, { - "html": "Let coopEnforcementResult be a new cross-origin opener policy enforcement result with
\n\nLet coopEnforcementResult be a new opener\n policy enforcement result with
\n\nLet navigationParams be a new navigation params, with
\n\nDocument
\n to be null; is that correct?navigate
\"Let navigationParams be a new navigation params, with
\n\nDocument
\n to be null; is that correct?navigate
\"Return the result of loading an HTML document given\n navigationParams.
" @@ -27412,16 +27412,16 @@ "html": "Let responseOrigin be the result of determining the origin given\n response's URL,\n targetSnapshotParams's sandboxing\n flags, and entry's document state's\n origin.
" }, { - "html": "Let coop be a new cross-origin opener policy.
" + "html": "Let coop be a new opener policy.
" }, { - "html": "Let coopEnforcementResult be a new cross-origin opener policy enforcement result with
\n\nLet coopEnforcementResult be a new opener\n policy enforcement result with
\n\nLet policyContainer be the result of determining navigation params policy container given\n response's URL, entry's document state's history policy container, null,\n navigable's container document's policy container, and null.
" }, { - "html": "Return a new navigation params, with
\n\nReturn a new navigation params, with
\n\nLet fetchController be null.
" }, { - "html": "Let coopEnforcementResult be a new cross-origin opener policy enforcement result, with
\n\nLet coopEnforcementResult be a new opener\n policy enforcement result, with
\n\nLet finalSandboxFlags be an empty sandboxing flag set.
" @@ -27498,7 +27498,7 @@ "html": "Let responsePolicyContainer be null.
" }, { - "html": "Let responseCOOP be a new cross-origin opener policy.
" + "html": "Let responseCOOP be a new opener policy.
" }, { "html": "Let locationURL be null.
" @@ -27607,10 +27607,10 @@ "rationale": "set", "steps": [ { - "html": "Set responseCOOP to the result of obtaining a\n cross-origin opener policy given response and request's reserved client.
" + "html": "Set responseCOOP to the result of obtaining an\n opener policy given response and request's reserved client.
" }, { - "html": "Set coopEnforcementResult to the result of enforcing the response's cross-origin opener policy given\n navigable's active browsing context,\n response's URL,\n responseOrigin, responseCOOP, coopEnforcementResult and\n request's referrer.
" + "html": "Set coopEnforcementResult to the result of enforcing the response's opener policy given\n navigable's active browsing context,\n response's URL,\n responseOrigin, responseCOOP, coopEnforcementResult and\n request's referrer.
" }, { "html": "If finalSandboxFlags is not empty and responseCOOP's value is not \"unsafe-none
\", then set response to an\n appropriate network error and break.
If navigable's container is an\n iframe
, and response's timing allow passed flag is set, then\n set container's pending resource-timing start time to\n null.
Return a new navigation params, with
\n\nReturn a new navigation params, with
\n\nLet loadTimingInfo be a new document load timing info with its\n navigation start time set to navigationParams's response's timing info's start time.
" }, { - "html": "Let document be a new Document
, with
loading
\"Let document be a new Document
, with
loading
\"Set window's associated\n Document
to document.
Let origin be a new opaque\n origin.
" }, { - "html": "Let coop be a new cross-origin opener policy.
" + "html": "Let coop be a new opener policy.
" }, { - "html": "Let coopEnforcementResult be a new cross-origin opener policy enforcement result with
\n\nLet coopEnforcementResult be a new opener\n policy enforcement result with
\n\nLet navigationParams be a new navigation params with
\n\nLet navigationParams be a new navigation params with
\n\nLet document be the result of creating and initializing a Document
\n object given \"html
\", \"text/html
\", and\n navigationParams.
\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
\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
\n Let connection be a newly created\n RTCPeerConnection
object.\n
\n If the value of\n certificate.expires
is less\n than the current time, throw an\n InvalidAccessError
.\n
\n If the value of\n certificate.expires
is less\n than the current time, throw an\n InvalidAccessError
.\n
\n If certificate.[[Origin]]
is not\n same origin with\n connection.[[DocumentOrigin]]
, throw an InvalidAccessError
.\n
\n If certificate.[[Origin]]
is not\n same origin with\n connection.[[DocumentOrigin]]
, throw an InvalidAccessError
.\n
\n Store certificate.\n
" @@ -68,7 +68,7 @@ "html": "\n Let connection have an\n [[SctpTransport]] internal slot, initialized to\n null
.\n
\n Let connection have a\n [[DataChannels]] internal slot, initialized to\n an empty ordered set.\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
" @@ -127,7 +127,7 @@ "html": "\n Let connection be the RTCPeerConnection
\n object.\n
\n If connection.[[IsClosed]]
is\n true
, return a promise rejected with a\n newly created InvalidStateError
.\n
\n If connection.[[IsClosed]]
is\n true
, return a promise rejected with a\n newly created InvalidStateError
.\n
\n Let operation be the operation to be chained.\n
" @@ -205,7 +205,7 @@ "html": "\n Set connection.[[ConnectionState]]
to\n newState.\n
\n Fire an event named connectionstatechange
at\n connection.\n
\n Fire an event named connectionstatechange
at\n connection.\n
\n Let p be a new promise.\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
\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
\n Let jsepSetOfTransceivers be a shallow copy of\n connection's set of transceivers.\n
" @@ -241,7 +241,7 @@ "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
\n If connection.[[IsClosed]]
is\n true
, then abort these steps.\n
\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
\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
\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
\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
\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
\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
\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
\n If the content of description is invalid,\n then reject p with a newly created InvalidAccessError
and abort\n these steps.\n
\n If the content of description is invalid,\n then reject p with a newly created InvalidAccessError
and abort\n these steps.\n
\n For all other errors, reject p with\n a newly created OperationError
.\n
\n For all other errors, reject p with\n a newly created OperationError
.\n
\n Set\n transceiver.[[Sender]]
.[[LastStableStateSenderTransport]]
\n to\n transceiver.[[Sender]]
.[[SenderTransport]]
.\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 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 Set\n transceiver.[[Receiver]]
.[[LastStableStateReceiverTransport]]
\n to\n transceiver.[[Receiver]]
.[[ReceiverTransport]]
.\n
\n If direction is\n \"sendrecv
\" or\n \"recvonly
\",\n set\n transceiver.[[Receptive]]
\n to true
, otherwise set it to\n false
.\n
[[Receiver]]
.[[ReceiveCodecs]]
."
- },
- {
- "html": "If the matching codec description is not found, abort these steps."
- },
- {
- "html": "Set the \"enabled\" flag in the matching codec description to \"true\"."
- }
- ]
+ "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
answer
\" or\n \"pranswer
\", then run the\n following steps:",
@@ -437,22 +425,7 @@
]
},
{
- "html": "For each of the codecs that description negotiates for sending, execute the following steps:",
- "rationale": "if",
- "steps": [
- {
- "html": "Locate the matching codec description in transceiver.[[Sender]]
.[[SendCodecs]]
."
- },
- {
- "html": "If the matching codec description is not found, abort these steps."
- },
- {
- "html": "Set the \"enabled\" flag in the matching codec description to \"true\"."
- }
- ]
- },
- {
- "html": "Set transceiver.[[Sender]]
.[[LastReturnedParameters]]
\n to null
.\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
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:",
@@ -497,7 +470,7 @@
"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
\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
\n Process remote tracks with\n transceiver, direction,\n msids, addList,\n removeList, and\n trackEventInits.\n
" }, { - "html": "For each of the codecs that description negotiates for receiving, execute the following steps:", - "rationale": "if", - "steps": [ - { - "html": "Locate the matching codec description in transceiver.[[Receiver]]
.[[ReceiveCodecs]]
."
- },
- {
- "html": "If the matching codec description is not found, abort these steps."
- },
- {
- "html": "Set the \"enabled\" flag in the matching codec description to \"true\"."
- }
- ]
+ "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
answer
\" or\n \"pranswer
\", then run the\n following steps:",
- "rationale": "for",
+ "rationale": "set",
"steps": [
{
- "html": "For each of the codecs that description negotiates for sending, execute the following steps:",
- "rationale": "if",
- "steps": [
- {
- "html": "Locate the matching codec description in transceiver.[[Sender]]
.[[SendCodecs]]
."
- },
- {
- "html": "If the matching codec description is not found, abort these steps."
- },
- {
- "html": "Set the \"enabled\" flag in the matching codec description to \"true\"."
- }
- ]
+ "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
\n Set\n transceiver.[[CurrentDirection]]
\n to direction.\n
\n Set\n transceiver.[[Sender]]
.[[SenderTransport]]
\n to\n transceiver.[[Sender]]
.[[LastStableStateSenderTransport]]
.\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 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 Set\n transceiver.[[Receiver]]
.[[ReceiverTransport]]
\n to\n transceiver.[[Receiver]]
.[[LastStableStateReceiverTransport]]
.\n
\n Let msids be a list of the\n id
s of all\n MediaStream
objects in\n transceiver.[[Receiver]]
.[[LastStableStateAssociatedRemoteMediaStreams]]
,\n or an empty list if there are none.\n
\n Let msids be a list of the\n id
s of all\n MediaStream
objects in\n transceiver.[[Receiver]]
.[[LastStableStateAssociatedRemoteMediaStreams]]
,\n or an empty list if there are none.\n
\n Process remote tracks with\n transceiver,\n transceiver.[[CurrentDirection]]
,\n msids, addList,\n removeList, and\n trackEventInits.\n
For each encoding in\n transceiver.[[Sender]]
.[[SendEncodings]]
,\n if encoding.codec
does not\n match any entry in codecs,\n remove encoding[codec
].
For each encoding in\n transceiver.[[Sender]]
.[[SendEncodings]]
,\n if encoding.codec
does not\n match any entry in codecs,\n remove encoding[codec
].
\n If connection.[[SignalingState]]
\n changed above, fire an event named\n signalingstatechange
at connection.\n
\n If connection.[[SignalingState]]
\n changed above, fire an event named\n signalingstatechange
at connection.\n
\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
\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
\n For each track in muteTracks,\n set the muted state of track to the\n value true
.\n
\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
\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
\n Resolve p with\n undefined
.\n
\n Let oldConfig be\n connection.[[Configuration]]
.\n
null
, run the\n following steps, and if any of them fail, throw\n an InvalidModificationError
:",
+ "html": "If oldConfig is not null
, run the\n following steps, and if any of them fail, throw\n an InvalidModificationError
:",
"rationale": "if",
"steps": [
{
@@ -786,7 +735,7 @@
"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
\n If urls is empty, throw a\n \"SyntaxError
\" DOMException
.\n
Let parsedURL be the result of\n parsing\n url.
" }, { - "html": "If any of the following conditions apply, then throw a\n \"SyntaxError
\" DOMException
:
\"stun\"
,\n \"stuns\"
, \"turn\"
, nor \"turns\"
\"stun\"
or \"stuns\"
,\n and parsedURL's' query is non-nullIf any of the following conditions apply, then throw a\n \"SyntaxError
\" DOMException
:
\"stun\"
,\n \"stuns\"
, \"turn\"
, nor \"turns\"
\"stun\"
or \"stuns\"
,\n and parsedURL's' query is non-nullIf parsedURL's scheme is not implemented by the\n user agent, then throw a NotSupportedError
.
If parsedURL's scheme is not implemented by the\n user agent, then throw a NotSupportedError
.
Let hostAndPortURL be result of\n parsing the concatenation of\n \"https://\"
and parsedURL's path.
Let hostAndPortURL be result of\n parsing the concatenation of\n \"https://\"
and parsedURL's path.
If hostAndPortURL is failure, then throw a\n \"SyntaxError
\" DOMException
.
If hostAndPortURL is failure, then throw a\n \"SyntaxError
\" DOMException
.
If parsedURL's query is non-null, run the following\n sub-steps:
", + "html": "If parsedURL's query is non-null, run the following\n sub-steps:
", "ignored": [ "TODO: validate ?transport=udp|tcp" ] }, { - "html": "\n If parsedURL's' scheme is \"turn\"
or\n \"turns\"
, and either of\n server.username
or\n server.credential
do\n not exist, then throw an\n InvalidAccessError
.\n
\n If parsedURL's' scheme is \"turn\"
or\n \"turns\"
, and either of\n server.username
or\n server.credential
do\n not exist, then throw an\n InvalidAccessError
.\n
\n Let connection be the RTCPeerConnection
\n object on which the method was invoked.\n
\n If connection.[[IsClosed]]
is\n true
, return a promise rejected with\n a newly created InvalidStateError
.\n
\n If connection.[[IsClosed]]
is\n true
, return a promise rejected with\n a newly created InvalidStateError
.\n
\n Return the result of chaining the result of creating an offer with connection to\n connection's operations chain.\n
" @@ -858,7 +807,7 @@ "rationale": ".algorithm", "steps": [ { - "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
\n If connection.[[SignalingState]]
is\n neither \"stable
\" nor\n \"have-local-offer
\", return a\n promise rejected with a newly created InvalidStateError
.\n
\n Let p be a new promise.\n
" @@ -884,7 +833,7 @@ "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
\n If this inspection failed for any reason, reject\n p with a newly created\n OperationError
and abort these steps.\n
\n Queue a task that runs the final steps to create an offer given connection and p.\n
" @@ -915,16 +864,16 @@ "rationale": "let", "steps": [ { - "html": "Let kind be transceiver's\n [[Receiver]]
's\n [[ReceiverTrack]]
's\n kind
.
Let kind be transceiver's\n [[Receiver]]
's\n [[ReceiverTrack]]
's\n kind
.
\n If\n transceiver.direction
\n is \"sendonly
\"\n or \"sendrecv
\",\n include all codecs in the transceiver's [[Sender]]
's [[SendCodecs]]
for which the \"enabled\" flag is \"true\".\n kind.\n
\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
\n If\n transceiver.direction
\n is \"recvonly
\"\n or \"sendrecv
\",\n include all codecs in the transceiver's [[Receiver]]
's [[ReceiveCodecs]]
for which the \"enabled\" flag is \"true\".\n
\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
\n Let connection be the RTCPeerConnection
\n object on which the method was invoked.\n
\n If connection.[[IsClosed]]
is\n true
, return a promise rejected with\n a newly created InvalidStateError
.\n
\n If connection.[[IsClosed]]
is\n true
, return a promise rejected with\n a newly created InvalidStateError
.\n
\n Return the result of chaining the result of creating an answer with connection to\n connection's operations chain.\n
" @@ -968,7 +917,7 @@ "rationale": ".algorithm", "steps": [ { - "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
\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
\n Let p be a new promise.\n
" @@ -994,7 +943,7 @@ "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
\n If this inspection failed for any reason, reject\n p with a newly created\n OperationError
and abort these steps.\n
\n Queue a task that runs the final steps to create an answer given p.\n
" @@ -1022,13 +971,13 @@ "rationale": "let", "steps": [ { - "html": "Let kind be transceiver's\n [[Receiver]]
's\n [[ReceiverTrack]]
's\n kind
.
Let kind be transceiver's\n [[Receiver]]
's\n [[ReceiverTrack]]
's\n kind
.
\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
\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
\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
\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
\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
\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 Exclude from the media section in the answer any\n RID not found in the corresponding transceiver's\n [[Sender]]
.[[SendEncodings]]
.\n
\n
" } ] } @@ -1083,10 +1032,10 @@ "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
\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
\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
\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
\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
offer
\", then run\n the following sub steps:",
@@ -1096,7 +1045,7 @@
"html": "\n Set sdp to the value of\n connection.[[LastCreatedOffer]]
.\n
\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
" } ] }, @@ -1108,7 +1057,7 @@ "html": "\n Set sdp to the value of\n connection.[[LastCreatedAnswer]]
.\n
\n Let p be the result of setting the local session description indicated by\n {type:\n \"
.\n rollback
\"}
\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
" } ] }, @@ -1176,21 +1125,21 @@ "html": "\n Let connection be the RTCPeerConnection
\n object on which the method was invoked.\n
\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
\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
\n If remoteDescription
is\n null
return a promise rejected\n with a newly created\n InvalidStateError
.\n
\n If remoteDescription
is\n null
return a promise rejected\n with a newly created\n InvalidStateError
.\n
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
\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
\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
\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
\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
\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
\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
\n Let p be a new promise.\n
" @@ -1224,7 +1173,7 @@ "html": "\n If\n connection.[[IsClosed]]
\n is true
, then abort these\n steps.\n
\n Reject p with a newly created OperationError
and\n abort these steps.\n
\n Reject p with a newly created OperationError
and\n abort these steps.\n
\n Let connection be the RTCPeerConnection
\n on which the method was invoked.\n
\n If connection.[[IsClosed]]
is\n true
, throw an\n InvalidStateError
.\n
\n If connection.[[IsClosed]]
is\n true
, throw an\n InvalidStateError
.\n
\n Set the configuration specified by\n configuration.\n
" @@ -1572,7 +1521,7 @@ "html": "\n Set connection.[[NegotiationNeeded]]
to\n true
.\n
\n Fire an event named negotiationneeded
at\n connection.\n
\n Fire an event named negotiationneeded
at\n connection.\n
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
" @@ -1746,7 +1695,7 @@ "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
\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
\n Let p be a new promise.\n
" @@ -1842,7 +1791,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."
}
]
},
@@ -1868,7 +1817,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."
}
]
},
@@ -1901,19 +1850,19 @@
"html": "\n Let connection be the RTCPeerConnection
\n object on which this method was invoked.\n
\n Let track be the MediaStreamTrack
object\n indicated by the method's first argument.\n
\n Let track be the MediaStreamTrack
object\n indicated by the method's first argument.\n
\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
\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
\n If connection.[[IsClosed]]
is\n true
, throw an\n InvalidStateError
.\n
\n If connection.[[IsClosed]]
is\n true
, throw an\n InvalidStateError
.\n
\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
\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
\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 If any RTCRtpSender
object in senders\n matches all the following criteria, let sender\n be that object, or null
otherwise:\n
\n The sender's track is null.\n
\n\n The transceiver kind of the\n RTCRtpTransceiver
, associated with the sender,\n matches kind.\n
\n The [[Stopping]]
slot of the\n RTCRtpTransceiver
associated with the sender is\n false
.\n
\n The sender has never been used to send. More\n precisely, the [[CurrentDirection]]
slot of\n the RTCRtpTransceiver
associated with the sender\n has never had a value of\n \"sendrecv
\" or\n \"sendonly
\".\n
\n Let connection be the RTCPeerConnection
\n object on which the method was invoked.\n
\n If connection.[[IsClosed]]
is\n true
, throw an\n InvalidStateError
.\n
\n If connection.[[IsClosed]]
is\n true
, throw an\n InvalidStateError
.\n
\n If sender was not created by\n connection, throw an\n InvalidAccessError
.\n
\n If sender was not created by\n connection, throw an\n InvalidAccessError
.\n
\n Let transceiver be the RTCRtpTransceiver
\n object corresponding to sender.\n
\n If kind is neither \"audio\"
nor \"video\"
,\n throw a TypeError
.\n
\n If kind is neither \"audio\"
nor \"video\"
,\n throw a TypeError
.\n
\n Let track be null
.\n
\n If the first argument is a MediaStreamTrack
, let\n track be the first argument and let kind be\n track.kind
.\n
\n If the first argument is a MediaStreamTrack
, let\n track be the first argument and let kind be\n track.kind
.\n
\n If connection.[[IsClosed]]
is\n true
, throw an\n InvalidStateError
.\n
\n If connection.[[IsClosed]]
is\n true
, throw an\n InvalidStateError
.\n
RTCRtpEncodingParameters
\n dictionary in it is an \"encoding\":",
"rationale": "if",
"steps": [
{
- "html": "If any of the following conditions are met,\n throw a TypeError
:\n rid
member whose value\n does not conform to the grammar requirements specified\n in Section 10 of [RFC8851].\n rid
member.\n rid
member whose value\n is the same as that of a rid
\n contained in another encoding in\n sendEncodings.\n TypeError
:\n rid
member whose value\n does not conform to the grammar requirements specified\n in Section 10 of [RFC8851].\n rid
member.\n rid
member whose value\n is the same as that of a rid
\n contained in another encoding in\n sendEncodings.\n \n If any encoding contains a read-only\n parameter other than\n rid
, throw\n an InvalidAccessError
.\n
\n If any encoding contains a read-only\n parameter other than\n rid
, throw\n an InvalidAccessError
.\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 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
.
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
.
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 If kind is \"audio\"
, remove the\n scaleResolutionDownBy
and\n maxFramerate
\n members from all encodings that contain any of\n them.\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 If any encoding contains a\n scaleResolutionDownBy
\n member whose value is less than 1.0
, throw a RangeError
.\n
\n If any encoding contains a\n scaleResolutionDownBy
\n member whose value is less than 1.0
, throw a RangeError
.\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 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 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
\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
\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
\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
\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
\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
\n Set the associated remote streams with\n transceiver.[[Receiver]]
, msids,\n addList, and removeList.\n
\n Set the associated remote streams with\n transceiver.[[Receiver]]
, msids,\n addList, and removeList.\n
\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
\n Let receiver be\n transceiver.[[Receiver]]
.\n
\n Let receiver be\n transceiver.[[Receiver]]
.\n
\n Let track be\n receiver.[[ReceiverTrack]]
.\n
\n Let receiver be\n transceiver.[[Receiver]]
.\n
\n Let receiver be\n transceiver.[[Receiver]]
.\n
\n Let track be\n receiver.[[ReceiverTrack]]
.\n
\n Let connection be the RTCPeerConnection
object\n associated with receiver.\n
\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
\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
\n Let streams be a list of the MediaStream
objects\n created for this connection with the id
s corresponding to msids.\n
\n Let streams be a list of the MediaStream
objects\n created for this connection with the id
s corresponding to msids.\n
\n Let track be\n receiver.[[ReceiverTrack]]
.\n
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:",
+ "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": [
{
@@ -2230,7 +2179,7 @@
"html": "\n If kind is \"audio\"
then create an\n RTCDTMFSender dtmf and set the [[Dtmf]]
\n internal slot to dtmf.\n
\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
\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
\n Set sender.[[AssociatedMediaStreamIds]]
to an\n empty set.\n
\n Let sender have a\n [[LastStableRidlessSendEncodings]] internal slot\n initialized to null
.\n
\n Let sender have a [[SendCodecs]] internal\n slot, representing a list of tuples, each containing an RTCRtpCodecParameters
\n dictionary and an \"enabled\" boolean, and initialized to the\n list of implemented send codecs, with the \"enabled\" flag\n set in an implementation defined manner.\n
\n Let sender have a [[SendCodecs]] internal\n slot, representing a list of RTCRtpCodecParameters
\n dictionaries, and initialized to an empty list.\n
\n Let sender have a\n [[LastReturnedParameters]] internal slot, which will\n be used to match getParameters
and\n setParameters
transactions.\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": "If transceiver.[[Stopping]]
is\n true
, return a promise rejected with a\n newly created InvalidStateError
."
+ "html": "If transceiver.[[Stopping]]
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\n \n setParameters validation steps:",
@@ -2319,22 +2268,22 @@
"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 encodings.length
is\n different from N.\n [[LastReturnedParameters]]
.\n Note that this also applies to\n transactionId.\n InvalidModificationError
:\n encodings.length
is\n different from N.\n [[LastReturnedParameters]]
.\n Note that this also applies to\n transactionId.\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 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 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 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 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
\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
\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 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
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
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
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
."
}
]
}
@@ -2395,7 +2344,7 @@
"html": "\n If sender.[[LastReturnedParameters]]
\n is not null
, return\n sender.[[LastReturnedParameters]]
, and\n abort these steps.\n
\n Let result be a new RTCRtpSendParameters
\n dictionary constructed as follows:\n
transactionId
is set to a new\n unique identifier.\n encodings
is set to the value of\n the [[SendEncodings]]
internal slot.\n headerExtensions
sequence is\n populated based on the header extensions that have been\n negotiated for sending.\n codecs
is set to the codecs from the\n [[SendCodecs]]
internal slot where the\n \"enabled\" flag is true.\n rtcp
.cname
is\n set to the CNAME of the associated RTCPeerConnection
.\n rtcp
.reducedSize
\n is set to true
if reduced-size RTCP has been\n negotiated for sending, and false
otherwise.\n \n Let result be a new RTCRtpSendParameters
\n dictionary constructed as follows:\n
transactionId
is set to a new\n unique identifier.\n encodings
is set to the value of\n the [[SendEncodings]]
internal slot.\n headerExtensions
sequence is\n populated based on the header extensions that have been\n negotiated for sending.\n codecs
is set to the value of the\n [[SendCodecs]]
internal slot.\n rtcp
.cname
is\n set to the CNAME of the associated RTCPeerConnection
.\n rtcp
.reducedSize
\n is set to true
if reduced-size RTCP has been\n negotiated for sending, and false
otherwise.\n \n Set sender.[[LastReturnedParameters]]
\n to result.\n
\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
\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
\n If transceiver.[[Stopping]]
is\n true
, return a promise rejected\n with a newly created\n InvalidStateError
.\n
\n If transceiver.[[Stopping]]
is\n true
, return a promise rejected\n with a newly created\n InvalidStateError
.\n
\n Let p be a new promise.\n
" @@ -2450,7 +2399,7 @@ "html": "\n If sending is true
, and\n withTrack is null
, have\n the sender stop sending.\n
\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
\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
\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
\n Let connection be the RTCPeerConnection
\n object on which this method was invoked.\n
\n If connection.[[IsClosed]]
is\n true
, throw an\n InvalidStateError
.\n
\n If connection.[[IsClosed]]
is\n true
, throw an\n InvalidStateError
.\n
\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
\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
\n Set\n sender.[[AssociatedMediaStreamIds]]
to\n an empty set.\n
\n Let receiver be a new RTCRtpReceiver
object.\n
\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
\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
\n Initialize track.kind to kind.\n
" @@ -2556,7 +2505,7 @@ "html": "\n Initialize track.readyState to live
.\n
\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
\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
\n Let receiver have a [[ReceiverTrack]]\n internal slot initialized to track.\n
" @@ -2568,13 +2517,13 @@ "html": "\n Let receiver have a\n [[LastStableStateReceiverTransport]] internal slot\n initialized to null
.\n
\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
\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
\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 tuples, each containing a RTCRtpCodecParameters
\n dictionaries, and initialized to an list containing all the codecs in the\n list of implemented receive codecs for kind, and with the \"enabled\" flag\n set in an implementation defined manner.\n
\n Let receiver have a [[ReceiveCodecs]]\n internal slot, representing a list of RTCRtpCodecParameters
\n dictionaries, and initialized to an empty list.\n
\n Let receiver have a\n [[LastStableStateReceiveCodecs]] internal slot and\n initialize it to an empty list.\n
" @@ -2600,7 +2549,7 @@ "html": "Let target be the argument to the setter.
" }, { - "html": "If target is negative or larger than 4000 milliseconds, then\n throw a RangeError
.
If target is negative or larger than 4000 milliseconds, then\n throw a RangeError
.
Set receiver's [[JitterBufferTarget]]
\n to target.
\n Let connection be the RTCPeerConnection
\n object associated with transceiver.\n
\n If transceiver.[[Stopping]]
is\n true
, throw an\n InvalidStateError
.\n
\n If transceiver.[[Stopping]]
is\n true
, throw an\n InvalidStateError
.\n
\n Let newDirection be the argument to the\n setter.\n
" @@ -2751,7 +2700,7 @@ "html": "\n If newDirection is equal to\n transceiver.[[Direction]]
, abort these\n steps.\n
\n If newDirection is equal to\n \"stopped
\", throw a TypeError
.\n
\n If newDirection is equal to\n \"stopped
\", throw a TypeError
.\n
\n Set transceiver.[[Direction]]
to\n newDirection.\n
\n Let connection be the RTCPeerConnection
\n object associated with transceiver.\n
\n If connection.[[IsClosed]]
is\n true
, throw an\n InvalidStateError
.\n
\n If connection.[[IsClosed]]
is\n true
, throw an\n InvalidStateError
.\n
\n If transceiver.[[Stopping]]
is\n true
, abort these steps.\n
\n Let sender be\n transceiver.[[Sender]]
.\n
\n Let receiver be\n transceiver.[[Receiver]]
.\n
\n Let sender be\n transceiver.[[Sender]]
.\n
\n Stop sending media with sender.\n
" + "html": "\n Let receiver be\n transceiver.[[Receiver]]
.\n
\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
If codec does not match any codec\n in codecCapabilities, throw InvalidModificationError
.\n
If codec does not match any codec\n in codecCapabilities, throw InvalidModificationError
.\n
\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
\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
\n Set transceiver.[[PreferredCodecs]]
to\n codecs.\n
\n If first.mimeType
is not an\n ASCII case-insensitive match for\n second.mimeType
, return false
.\n
\n If first.mimeType
is not an\n ASCII case-insensitive match for\n second.mimeType
, return false
.\n
\n If first.clockRate
is different from\n second.clockRate
, return false
.\n
\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
\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
\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
\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
\n Return true
.\n
\n Set transport.[[DtlsTransportState]]
to\n \"failed
\".\n
\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
\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
\n Fire an event named statechange
at\n transport.\n
\n Fire an event named statechange
at\n transport.\n
\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
\n Fire an event named statechange
at\n transport.\n
\n Fire an event named statechange
at\n transport.\n
Do not read or modify state beyond this point.
" }, { - "html": "\n Fire an event named gatheringstatechange
at\n transport.\n
\n Fire an event named gatheringstatechange
at\n transport.\n
\n If connectionIceGatheringStateChanged is\n true
, fire an event named\n icegatheringstatechange
at connection.\n
\n If connectionIceGatheringStateChanged is\n true
, fire an event named\n icegatheringstatechange
at connection.\n
\n Let endOfGatheringCandidate 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 to \"\"
.\n
\n Fire an event named icecandidate
using the\n RTCPeerConnectionIceEvent
interface with the candidate\n attribute set to endOfGatheringCandidate at\n connection.\n
\n Fire an event named icecandidate
using the\n RTCPeerConnectionIceEvent
interface with the candidate\n attribute set to endOfGatheringCandidate at\n connection.\n
Do not read or modify state beyond this point.
" }, { - "html": "\n Fire an event named gatheringstatechange
at\n transport.\n
\n Fire an event named gatheringstatechange
at\n transport.\n
\n If connectionIceGatheringStateChanged is\n true
, fire an event named\n icegatheringstatechange
at connection.\n
\n If connectionIceGatheringStateChanged is\n true
, fire an event named\n icegatheringstatechange
at connection.\n
\n Fire an event\n named icecandidate
using the\n RTCPeerConnectionIceEvent
interface with the candidate\n attribute set to null
at connection.\n
\n Fire an event\n named icecandidate
using the\n RTCPeerConnectionIceEvent
interface with the candidate\n attribute set to null
at connection.\n
\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
\n Fire an event named icecandidate
using the\n RTCPeerConnectionIceEvent
interface with the candidate\n attribute set to newCandidate at\n connection.\n
\n If selectedCandidatePairChanged is true
,\n fire an event named selectedcandidatepairchange
at\n transport.\n
\n If selectedCandidatePairChanged is true
,\n fire an event named selectedcandidatepairchange
at\n transport.\n
\n If transportIceConnectionStateChanged is\n true
, fire an event named statechange
at\n transport.\n
\n If transportIceConnectionStateChanged is\n true
, fire an event named statechange
at\n transport.\n
\n If connectionIceConnectionStateChanged is\n true
, fire an event named\n iceconnectionstatechange
at connection.\n
\n If connectionIceConnectionStateChanged is\n true
, fire an event named\n iceconnectionstatechange
at connection.\n
\n If connectionStateChanged is true
, fire an event named connectionstatechange
at\n connection.\n
\n If connectionStateChanged is true
, fire an event named connectionstatechange
at\n connection.\n
\n Let connection be the RTCPeerConnection
\n object on which the method is invoked.\n
\n If connection.[[IsClosed]]
is\n true
, throw an\n InvalidStateError
.\n
\n If connection.[[IsClosed]]
is\n true
, throw an\n InvalidStateError
.\n
\n Create an RTCDataChannel, channel.\n
" @@ -3221,7 +3167,7 @@ "html": "\n Initialize\n channel.[[DataChannelLabel]]
to the\n value of the first argument.\n
\n If the UTF-8 representation of\n [[DataChannelLabel]]
is longer than 65535 bytes,\n throw a TypeError
.\n
\n If the UTF-8 representation of\n [[DataChannelLabel]]
is longer than 65535 bytes,\n throw a TypeError
.\n
\n Let options be the second argument.\n
" @@ -3239,7 +3185,7 @@ "html": "\n Initialize\n channel.[[DataChannelProtocol]]
to\n option.protocol
.\n
\n If the UTF-8 representation of\n [[DataChannelProtocol]]
is longer than 65535\n bytes, throw a TypeError
.\n
\n If the UTF-8 representation of\n [[DataChannelProtocol]]
is longer than 65535\n bytes, throw a TypeError
.\n
\n Initialize channel.[[Negotiated]]
to\n option.negotiated
.\n
\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
\n If [[Negotiated]]
is true
and\n [[DataChannelId]]
is null
, throw a TypeError
.\n
\n If [[Negotiated]]
is true
and\n [[DataChannelId]]
is null
, throw a TypeError
.\n
\n If both [[MaxPacketLifeTime]]
and\n [[MaxRetransmits]]
attributes are set (not null),\n throw a TypeError
.\n
\n If both [[MaxPacketLifeTime]]
and\n [[MaxRetransmits]]
attributes are set (not null),\n throw a TypeError
.\n
\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
\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
\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
\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
\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
\n Let transport be\n connection.[[SctpTransport]]
.\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
\n Let transport be\n connection.[[SctpTransport]]
.\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
\n If channel is the first RTCDataChannel
\n created on connection, update the negotiation-needed flag for connection.\n
\n Append channel to\n connection.[[DataChannels]]
.\n
\n Append channel to\n connection.[[DataChannels]]
.\n
\n Return channel and continue the following\n steps in parallel.\n
" @@ -3359,7 +3305,7 @@ ] }, { - "html": "\n Fire an event named statechange
at\n transport.\n
\n Fire an event named statechange
at\n transport.\n
\n Set channel.[[ReadyState]]
to\n \"open
\".\n
\n Fire an event named open
at channel.\n
\n Fire an event named open
at channel.\n
\n Initialize channel.[[Negotiated]]
to\n false
.\n
\n Append channel to\n connection.[[DataChannels]]
.\n
\n Append channel to\n connection.[[DataChannels]]
.\n
\n Set channel.[[ReadyState]]
to\n \"open
\" (but do not fire the open
\n event, yet).\n
\n Fire an event named datachannel
using the\n RTCDataChannelEvent
interface with the\n channel
attribute set to\n channel at connection.\n
\n Fire an event named datachannel
using the\n RTCDataChannelEvent
interface with the\n channel
attribute set to\n channel at connection.\n
\n Announce the data channel as open.\n
" @@ -3458,10 +3404,10 @@ "html": "\n Let connection be the RTCPeerConnection
object\n associated with channel.\n
\n Remove channel from connection.[[DataChannels]]
.\n
\n Remove channel from connection.[[DataChannels]]
.\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
\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
\n Set channel.[[ReadyState]]
to\n \"closed
\".\n
\n Remove channel from connection.[[DataChannels]]
\n if it is still there.\n
\n Remove channel from connection.[[DataChannels]]
\n if it is still there.\n
\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
\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
\n Fire an event named close at channel.\n
" + "html": "\n Fire an event named close at channel.\n
" } ] }, @@ -3522,10 +3468,10 @@ "html": "\n Set channel.[[ReadyState]]
to\n \"closed
\".\n
\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
\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
\n Fire an event named close at channel.\n
" + "html": "\n Fire an event named close at channel.\n
" } ] }, @@ -3543,10 +3489,10 @@ "html": "\n If channel.[[ReadyState]]
is not\n \"open
\", abort these steps and discard\n rawData.\n
\n Execute the sub step by switching on type and\n channel.binaryType
:\n
\n If type indicates that rawData is a\n string
:\n
\n Let data be a DOMString that represents the result\n of decoding rawData as UTF-8.\n
\n\n If type indicates that rawData is\n binary and binaryType
is \"blob\"
:\n
\n Let data be a new Blob
object containing\n rawData as its raw data source.\n
\n If type indicates that rawData is\n binary and binaryType
is \"arraybuffer\"
:\n
\n Let data be a new ArrayBuffer
object\n containing rawData as its raw data source.\n
\n Execute the sub step by switching on type and\n channel.binaryType
:\n
\n If type indicates that rawData is a\n string
:\n
\n Let data be a DOMString that represents the result\n of decoding rawData as UTF-8.\n
\n\n If type indicates that rawData is\n binary and binaryType
is \"blob\"
:\n
\n Let data be a new Blob
object containing\n rawData as its raw data source.\n
\n If type indicates that rawData is\n binary and binaryType
is \"arraybuffer\"
:\n
\n Let data be a new ArrayBuffer
object\n containing rawData as its raw data source.\n
\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
\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
\n Let channel be the RTCDataChannel
object on\n which data is to be sent.\n
\n If channel.[[ReadyState]]
is not\n \"open
\", throw an\n InvalidStateError
.\n
\n If channel.[[ReadyState]]
is not\n \"open
\", throw an\n InvalidStateError
.\n
\n Execute the sub step that corresponds to the type of the\n methods argument:\n
\n\n string
object:\n
\n Let data be a byte buffer that represents the\n result of encoding the method's argument as UTF-8.\n
\n\n Blob
object:\n
\n Let data be the raw data represented by the\n Blob
object.\n
\n ArrayBuffer
object:\n
\n Let data be the data stored in the buffer\n described by the ArrayBuffer
object.\n
\n ArrayBufferView
object:\n
\n Let data be the data stored in the section of\n the buffer described by the ArrayBuffer
object that\n the ArrayBufferView
object references.\n
\n Execute the sub step that corresponds to the type of the\n methods argument:\n
\n\n string
object:\n
\n Let data be a byte buffer that represents the\n result of encoding the method's argument as UTF-8.\n
\n\n Blob
object:\n
\n Let data be the raw data represented by the\n Blob
object.\n
\n ArrayBuffer
object:\n
\n Let data be the data stored in the buffer\n described by the ArrayBuffer
object.\n
\n ArrayBufferView
object:\n
\n Let data be the data stored in the section of\n the buffer described by the ArrayBuffer
object that\n the ArrayBufferView
object references.\n
\n If the byte size of data exceeds the value of\n maxMessageSize
on channel's\n associated RTCSctpTransport
, throw a\n TypeError
.\n
\n If the byte size of data exceeds the value of\n maxMessageSize
on channel's\n associated RTCSctpTransport
, throw a\n TypeError
.\n
\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
\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
\n Increase the value of the [[BufferedAmount]]
slot by\n the byte size of data.\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."
@@ -3644,7 +3590,7 @@
"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."
@@ -3678,7 +3624,7 @@
"html": "If determine if DTMF can be sent for\n dtmf returns false
, abort these\n steps."
},
{
- "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 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": "Remove the first character from the\n [[ToneBuffer]]
slot and let that character be\n tone."
@@ -3690,7 +3636,7 @@
"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."
+ "html": "Fire an event named tonechange
using the\n RTCDTMFToneChangeEvent
interface with the\n tone
attribute set to\n tone at the RTCDTMFSender
object."
}
]
}
@@ -3750,7 +3696,7 @@
"html": "\n If selectorArg is null
, let\n selector be null
.\n
\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
\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
\n Let p be a new promise.\n
" @@ -3785,10 +3731,10 @@ "html": "If\n selector isnull
,\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 RTCOutboundRtpStreamStats
objects representing RTP\n streams being sent by selector.\n RTCOutboundRtpStreamStats
objects added.\n RTCRtpSender
, gather stats for and\n add the following objects to result:\n RTCOutboundRtpStreamStats
objects representing RTP\n streams being sent by selector.\n RTCOutboundRtpStreamStats
objects added.\n RTCRtpReceiver
, gather stats for and\n add the following objects to result:\n RTCInboundRtpStreamStats
objects representing RTP\n streams being received by selector.\n RTCInboundRtpStreamStats
added.\n RTCRtpReceiver
, gather stats for and\n add the following objects to result:\n RTCInboundRtpStreamStats
objects representing RTP\n streams being received by selector.\n RTCInboundRtpStreamStats
added.\n \n Let e be a new RTCError
object.\n
\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
\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
\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