From 81f50f092822ffd27c4cff2ac38f8fbe4b0f0f6f Mon Sep 17 00:00:00 2001 From: Youenn Fablet Date: Wed, 31 Oct 2018 11:38:25 +0100 Subject: [PATCH 1/5] Add a note controlling exposure of remote candidate addresses --- webrtc-stats.html | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/webrtc-stats.html b/webrtc-stats.html index df8180ed..f3e85477 100644 --- a/webrtc-stats.html +++ b/webrtc-stats.html @@ -2989,6 +2989,17 @@

addresses, and fully qualified domain names (FQDNs). See [[!RFC5245]] section 15.1 for details.

+
+ A user agent should make sure to limit exposure of remote candidate addresses to + the ones already known to the web application, in particular peer reflexive remote + candidate addresses. If a user agent cannot tell whether a remote candidate + address is known to the web application, it MUST NOT surface this address value in + any RTCICECandidateStats dictionary. Once a RTCPeerConnection instance is notified + by the web application of an address using addIceCandidate + the user agent can surface the 'address' member in any remote RTCIceCandidateStats + dictionary of the corresponding RTCPeerConnection. +
port of type long From a4a483d03ea7169f674e920a988a9ba8aae4c2a5 Mon Sep 17 00:00:00 2001 From: Youenn Fablet Date: Mon, 5 Nov 2018 16:32:30 +0700 Subject: [PATCH 2/5] Move from a note to a regular paragraph. Make it clear that the 'address' member is not set --- webrtc-stats.html | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/webrtc-stats.html b/webrtc-stats.html index f3e85477..4307f808 100644 --- a/webrtc-stats.html +++ b/webrtc-stats.html @@ -2989,17 +2989,18 @@

addresses, and fully qualified domain names (FQDNs). See [[!RFC5245]] section 15.1 for details.

-
+

A user agent should make sure to limit exposure of remote candidate addresses to the ones already known to the web application, in particular peer reflexive remote candidate addresses. If a user agent cannot tell whether a remote candidate - address is known to the web application, it MUST NOT surface this address value in - any RTCICECandidateStats dictionary. Once a RTCPeerConnection instance is notified - by the web application of an address using addIceCandidate the user agent can surface the 'address' member in any remote RTCIceCandidateStats dictionary of the corresponding RTCPeerConnection. -

+

port of type long From c7c0366e51556c9f1a29bc046c9dd98be6bde206 Mon Sep 17 00:00:00 2001 From: Youenn Fablet Date: Mon, 5 Nov 2018 16:36:56 +0700 Subject: [PATCH 3/5] Improve wording for exposing once learning address is available --- webrtc-stats.html | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/webrtc-stats.html b/webrtc-stats.html index 4307f808..3fe7efa8 100644 --- a/webrtc-stats.html +++ b/webrtc-stats.html @@ -2995,11 +2995,12 @@

candidate addresses. If a user agent cannot tell whether a remote candidate address is known to the web application, it MUST leave the 'address' member as undefined in the corresponding RTCICECandidateStats dictionary. Once a - RTCPeerConnection instance is notified by the web application of an address using + RTCPeerConnection instance learns on an address by the web application using addIceCandidate - the user agent can surface the 'address' member in any remote RTCIceCandidateStats - dictionary of the corresponding RTCPeerConnection. + the user agent can expose the 'address' member value in any remote RTCIceCandidateStats + dictionary of the corresponding RTCPeerConnection that matches the newly learnt + address.

From 0632f8954e082b1f8096cbbe429088013cf8716e Mon Sep 17 00:00:00 2001 From: Youenn Fablet Date: Fri, 30 Nov 2018 09:24:16 -0800 Subject: [PATCH 4/5] Mandating RTCPeerConnection scoped visibility --- webrtc-stats.html | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/webrtc-stats.html b/webrtc-stats.html index 3fe7efa8..0224dc6b 100644 --- a/webrtc-stats.html +++ b/webrtc-stats.html @@ -2990,17 +2990,17 @@

[[!RFC5245]] section 15.1 for details.

- A user agent should make sure to limit exposure of remote candidate addresses to - the ones already known to the web application, in particular peer reflexive remote - candidate addresses. If a user agent cannot tell whether a remote candidate - address is known to the web application, it MUST leave the 'address' member as - undefined in the corresponding RTCICECandidateStats dictionary. Once a - RTCPeerConnection instance learns on an address by the web application using - addIceCandidate - the user agent can expose the 'address' member value in any remote RTCIceCandidateStats - dictionary of the corresponding RTCPeerConnection that matches the newly learnt - address. + The user agent should make sure that only remote candidate addresses that the web + application has configured on the corresponding RTCPeerConnection are exposed; + This is especially important for peer reflexive remote candidates. + + By default, the user agent MUST leave the 'address' member as undefined in the + RTCICECandidateStats dictionary of any remote candidate. Once a RTCPeerConnection + instance learns on an address by the web application using addIceCandidate, + the user agent can expose the 'address' member value in any remote + RTCIceCandidateStats dictionary of the corresponding RTCPeerConnection that + matches the newly learnt address.

From 7cd9f7172b91f89842e6cbf5d3524534c46d7db0 Mon Sep 17 00:00:00 2001 From: Youenn Fablet Date: Thu, 6 Dec 2018 08:10:02 -0800 Subject: [PATCH 5/5] Hiding address using null instead of undefined --- webrtc-stats.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/webrtc-stats.html b/webrtc-stats.html index 0224dc6b..57f3d835 100644 --- a/webrtc-stats.html +++ b/webrtc-stats.html @@ -2936,7 +2936,7 @@

dictionary RTCIceCandidateStats : RTCStats {
              DOMString                transportId;
              RTCNetworkType           networkType;
-             DOMString                address;
+             DOMString?               address;
              long                     port;
              DOMString                protocol;
              RTCIceCandidateType      candidateType;
@@ -2994,7 +2994,7 @@ 

application has configured on the corresponding RTCPeerConnection are exposed; This is especially important for peer reflexive remote candidates. - By default, the user agent MUST leave the 'address' member as undefined in the + By default, the user agent MUST leave the 'address' member as null in the RTCICECandidateStats dictionary of any remote candidate. Once a RTCPeerConnection instance learns on an address by the web application using addIceCandidate,