diff --git a/index.html b/index.html index 97e3189..439a0b7 100644 --- a/index.html +++ b/index.html @@ -599,10 +599,9 @@

  • - Let |candidatePair:RTCIceCandidatePair| be a new {{RTCIceCandidatePair}} dictionary - with its {{RTCIceCandidatePair/local}} and {{RTCIceCandidatePair/remote}} members - initialized to new {{RTCIceCandidate}}s representing the local and remote part of the - [= formed =] pair respectively. + Let |candidatePair:RTCIceCandidatePair| be the result of [= creating an RTCIceCandidatePair =] with + |local:RTCIceCandidate| and |remote:RTCIceCandidate|, representing the local and remote candidates of the [= formed =] + pair respectively.

  • @@ -612,21 +611,20 @@

  • - [=Assert=]: |candidatePair| does not [= candidate pair match | match =] any - item in |transport|.{{RTCIceTransport/[[CandidatePairs]]}} + [=Assert=]: |transport|.{{RTCIceTransport/[[CandidatePairs]]}} does not [= list/contain =] |candidatePair|.

  • - [= list/Append =] |candidatePair| to {{RTCIceTransport/[[CandidatePairs]]}}. + [= list/Append =] |candidatePair| to |transport|.{{RTCIceTransport/[[CandidatePairs]]}}.

  • [= Fire an event =] named {{RTCIceTransport/icecandidatepairadd}} at |transport|, using {{RTCIceCandidatePairEvent}}, - with the {{RTCIceCandidatePairEvent/local}} and {{RTCIceCandidatePairEvent/remote}} attributes - initialized to the local and remote candidates, respectively, of |candidatePair|. + with the {{RTCIceCandidatePairEvent/candidatePair}} attribute + initialized to |candidatePair|.

  • @@ -667,9 +665,8 @@

    Let |accepted:boolean| be the result of [= fire an event | firing an event =] named {{RTCIceTransport/icecandidatepairnominate}} at |transport|, using {{RTCIceCandidatePairEvent}}, with the - {{Event/cancelable}} attribute initialized to true, and the {{RTCIceCandidatePairEvent/local}} and - {{RTCIceCandidatePairEvent/remote}} attributes initialized to the local and remote candidates, respectively, of - |candidatePair|. + {{Event/cancelable}} attribute initialized to true, and the {{RTCIceCandidatePairEvent/candidatePair}} attribute + initialized to |candidatePair|.

  • @@ -733,9 +730,8 @@

    Let |accepted:boolean| be the result of [= fire an event | firing an event =] named {{RTCIceTransport/icecandidatepairremove}} at |transport|, using {{RTCIceCandidatePairEvent}}, with the - {{Event/cancelable}} attribute initialized to cancelable, and the {{RTCIceCandidatePairEvent/local}} - and {{RTCIceCandidatePairEvent/remote}} attributes initialized to the local and remote candidates, respectively, - of |candidatePair|. + {{Event/cancelable}} attribute initialized to cancelable, and the {{RTCIceCandidatePairEvent/candidatePair}} attribute + initialized to |candidatePair|.

  • @@ -867,8 +863,7 @@

    Methods

  • - If |candidatePair| does not [= candidate pair match | match =] any item in [=this=]. - {{RTCIceTransport/[[CandidatePairs]]}}, [= exception/throw =] a {{NotFoundError}}. + If [=this=].{{RTCIceTransport/[[CandidatePairs]]}} does not [= list/contain =] |candidatePair|, [= exception/throw =] a {{NotFoundError}}.

  • @@ -957,15 +952,13 @@

    Methods

  • - If |candidatePair| does not [= candidate pair match | match =] any item in [=this=]. - {{RTCIceTransport/[[CandidatePairs]]}}, [= exception/throw =] a {{NotFoundError}}. + If [=this=].{{RTCIceTransport/[[CandidatePairs]]}} does not [= list/contain =] |candidatePair|, [= exception/throw =] a {{NotFoundError}}.

  • - [= list/Remove =] the item in - [=this=].{{RTCIceTransport/[[CandidatePairs]]}} that - [= candidate pair match | matches =] |candidatePair|. + [= list/Remove =] |candidatePair| from + [=this=].{{RTCIceTransport/[[CandidatePairs]]}}.

  • @@ -985,7 +978,7 @@

    Methods

    1. - [= Fire an event =] named {{RTCIceTransport/icecandidatepairremove}} at |transport|, using {{RTCIceCandidatePairEvent}}, with the {{Event/cancelable}} attribute initialized to false, and the {{RTCIceCandidatePairEvent/local}} and {{RTCIceCandidatePairEvent/remote}} attributes initialized to the {{RTCIceCandidatePair/local}} and {{RTCIceCandidatePair/remote}} candidates, respectively, of candidatePair. + [= Fire an event =] named {{RTCIceTransport/icecandidatepairremove}} at |transport|, using {{RTCIceCandidatePairEvent}}, with the {{Event/cancelable}} attribute initialized to false, and the {{RTCIceCandidatePairEvent/candidatePair}} attribute initialized to |candidatePair|.

    2. @@ -1011,15 +1004,15 @@

      RTCIceCandidatePairEvent

      - The {{RTCIceTransport/icecandidatepairadd}} and {{RTCIceTransport/icecandidatepairremove}} events use the + The {{RTCIceTransport/icecandidatepairadd}}, {{RTCIceTransport/icecandidatepairnominate}} and + {{RTCIceTransport/icecandidatepairremove}} events use the {{RTCIceCandidatePairEvent}} interface.

      [Exposed=Window]
         interface RTCIceCandidatePairEvent : Event {
           constructor(DOMString type, RTCIceCandidatePairEventInit eventInitDict);
      -    readonly attribute RTCIceCandidate local;
      -    readonly attribute RTCIceCandidate remote;
      +    readonly attribute RTCIceCandidatePair candidatePair;
         };

      Constructors

      @@ -1032,21 +1025,11 @@

      Constructors

      Attributes

      - local of type {{RTCIceCandidate}}, readonly + candidatePair of type {{RTCIceCandidatePair}}, readonly

      - The {{local}} attribute represents the local {{RTCIceCandidate}} of the candidate pair associated with the - event. -

      -
      -
      - remote of type {{RTCIceCandidate}}, readonly -
      -
      -

      - The {{remote}} attribute represents the remote {{RTCIceCandidate}} of the candidate pair associated with - the event. + The {{candidatePair}} attribute represents the candidate pair associated with the event.

      @@ -1055,105 +1038,87 @@

      Attributes

         dictionary RTCIceCandidatePairEventInit : EventInit {
      -    required RTCIceCandidate local;
      -    required RTCIceCandidate remote;
      +    required RTCIceCandidatePair candidatePair;
         };

      Dictionary RTCIceCandidatePairEventInit Members

      - local of type {{RTCIceCandidate}}, required -
      -
      -

      - The local {{RTCIceCandidate}} of the candidate pair announced by the event. -

      -
      -
      - remote of type {{RTCIceCandidate}}, required + candidatePair of type {{RTCIceCandidatePair}}, required

      - The remote {{RTCIceCandidate}} of the candidate pair announced by the event. + The candidate pair announced by the event.

      -

      - The candidate match algorithm given two {{RTCIceCandidate}} |first:RTCIceCandidate| and - |second:RTCIceCandidate| is as follows: -

      -
        -
      1. -

        - If |first|.{{RTCIceCandidate/candidate}} is not [= string/identical to =] |second|.{{RTCIceCandidate/candidate}}, return false. -

        -
      2. -
      3. -

        - If either (but not both) of |first|.{{RTCIceCandidate/sdpMid}} and |second|.{{RTCIceCandidate/sdpMid}} is - null, return false. -

        -
      4. -
      5. -

        - If neither of |first|.{{RTCIceCandidate/sdpMid}} and |second|.{{RTCIceCandidate/sdpMid}} is null, and |first|.{{RTCIceCandidate/sdpMid}} is not [= string/identical to =] - |second|.{{RTCIceCandidate/sdpMid}}, return false. -

        -
      6. -
      7. -

        - If either (but not both) of |first|.{{RTCIceCandidate/sdpMLineIndex}} and |second|.{{RTCIceCandidate/sdpMLineIndex}} is - null, return false. -

        -
      8. -
      9. -

        - If neither of |first|.{{RTCIceCandidate/sdpMLineIndex}} and |second|.{{RTCIceCandidate/sdpMLineIndex}} is null and |first|.{{RTCIceCandidate/sdpMLineIndex}} is not equal to - |second|.{{RTCIceCandidate/sdpMLineIndex}}, return false. -

        -
      10. -
      11. -

        - If either (but not both) of |first|.{{RTCIceCandidate/usernameFragment}} and |second|.{{RTCIceCandidate/usernameFragment}} is - null, return false. -

        -
      12. -
      13. -

        - If neither of |first|.{{RTCIceCandidate/usernameFragment}} and |second|.{{RTCIceCandidate/usernameFragment}} is null and |first|.{{RTCIceCandidate/usernameFragment}} is not [= string/identical to =] - |second|.{{RTCIceCandidate/usernameFragment}}, return false. -

        -
      14. -
      15. -

        - Return true. -

        -
      16. -
      -

      - The candidate pair match algorithm given two {{RTCIceCandidatePair}} |first:RTCIceCandidatePair| and |second:RTCIceCandidatePair| is as follows: -

      -
        -
      1. -

        - If |first|.{{RTCIceCandidatePair/local}} does not [= candidate match | match =] |second|.{{RTCIceCandidatePair/local}}, return false. -

        -
      2. -
      3. -

        - If |first|.{{RTCIceCandidatePair/remote}} does not [= candidate match | match =] |second|.{{RTCIceCandidatePair/remote}}, return false. -

        -
      4. -
      5. -

        - Return true. -

        -
      6. -
      +
      +

      Modifications to existing procedures

      +

      + In the steps to [=RTCIceTransport/change the selected candidate pair and state=], if the selected candidate pair was changed, modify the first step to the following: +

      +
        +
      1. + Let newCandidatePair be the [= list/item =] [= list/contained =] in |this|.{{RTCIceTransport/[[CandidatePairs]]}} whose {{RTCIceCandidatePair/local}} and {{RTCIceCandidatePair/remote}} attributes respectively [= candidate match | match =] the local and remote candidates of the indicated pair if one is selected, and null otherwise. +
      2. +
      +

      + The candidate match algorithm given two {{RTCIceCandidate}} |first:RTCIceCandidate| and + |second:RTCIceCandidate| is as follows: +

      +
        +
      1. +

        + If |first|.{{RTCIceCandidate/candidate}} is not [= string/identical to =] |second|.{{RTCIceCandidate/candidate}}, return false. +

        +
      2. +
      3. +

        + If either (but not both) of |first|.{{RTCIceCandidate/sdpMid}} and |second|.{{RTCIceCandidate/sdpMid}} is + null, return false. +

        +
      4. +
      5. +

        + If neither of |first|.{{RTCIceCandidate/sdpMid}} and |second|.{{RTCIceCandidate/sdpMid}} is null, and |first|.{{RTCIceCandidate/sdpMid}} is not [= string/identical to =] + |second|.{{RTCIceCandidate/sdpMid}}, return false. +

        +
      6. +
      7. +

        + If either (but not both) of |first|.{{RTCIceCandidate/sdpMLineIndex}} and |second|.{{RTCIceCandidate/sdpMLineIndex}} is + null, return false. +

        +
      8. +
      9. +

        + If neither of |first|.{{RTCIceCandidate/sdpMLineIndex}} and |second|.{{RTCIceCandidate/sdpMLineIndex}} is null and |first|.{{RTCIceCandidate/sdpMLineIndex}} is not equal to + |second|.{{RTCIceCandidate/sdpMLineIndex}}, return false. +

        +
      10. +
      11. +

        + If either (but not both) of |first|.{{RTCIceCandidate/usernameFragment}} and |second|.{{RTCIceCandidate/usernameFragment}} is + null, return false. +

        +
      12. +
      13. +

        + If neither of |first|.{{RTCIceCandidate/usernameFragment}} and |second|.{{RTCIceCandidate/usernameFragment}} is null and |first|.{{RTCIceCandidate/usernameFragment}} is not [= string/identical to =] + |second|.{{RTCIceCandidate/usernameFragment}}, return false. +

        +
      14. +
      15. +

        + Return true. +

        +
      16. +
      +