76 lines
2.6 KiB
HTML
76 lines
2.6 KiB
HTML
<!doctype html>
|
|
<meta charset=utf-8>
|
|
<title>Exposure or remote candidate address on stats</title>
|
|
<script src="/resources/testharness.js"></script>
|
|
<script src="/resources/testharnessreport.js"></script>
|
|
<script src="../webrtc/RTCPeerConnection-helper.js"></script>
|
|
<script>
|
|
promise_test(async (test) => {
|
|
const localPc = new RTCPeerConnection();
|
|
test.add_cleanup(() => localPc.close());
|
|
const remotePc = new RTCPeerConnection();
|
|
test.add_cleanup(() => remotePc.close());
|
|
|
|
const promiseDataChannel = new Promise(resolve => {
|
|
remotePc.addEventListener('datachannel', (event) => {
|
|
resolve(event.channel);
|
|
});
|
|
});
|
|
|
|
const localDataChannel = localPc.createDataChannel('test');
|
|
|
|
localPc.addEventListener('icecandidate', event => {
|
|
if (event.candidate)
|
|
remotePc.addIceCandidate(event.candidate);
|
|
});
|
|
exchangeOfferAnswer(localPc, remotePc);
|
|
|
|
const remoteDataChannel = await promiseDataChannel;
|
|
|
|
localDataChannel.send("test");
|
|
|
|
await new Promise(resolve => {
|
|
remoteDataChannel.onmessage = resolve;
|
|
});
|
|
|
|
const remoteCandidateStats = [...(await localPc.getStats()).values()].find(({type}) => type === 'remote-candidate');
|
|
assert_equals(remoteCandidateStats.address, null, "address should be null");
|
|
}, "Do not expose in stats remote addresses that are not known to be already exposed to JS");
|
|
|
|
promise_test(async (test) => {
|
|
const localPc = new RTCPeerConnection();
|
|
test.add_cleanup(() => localPc.close());
|
|
const remotePc = new RTCPeerConnection();
|
|
test.add_cleanup(() => remotePc.close());
|
|
|
|
const promiseDataChannel = new Promise(resolve => {
|
|
remotePc.addEventListener('datachannel', (event) => {
|
|
resolve(event.channel);
|
|
});
|
|
});
|
|
|
|
const localDataChannel = localPc.createDataChannel('test');
|
|
|
|
localPc.addEventListener('icecandidate', event => {
|
|
if (event.candidate)
|
|
remotePc.addIceCandidate(event.candidate);
|
|
});
|
|
remotePc.addEventListener('icecandidate', event => {
|
|
if (event.candidate)
|
|
localPc.addIceCandidate(event.candidate);
|
|
});
|
|
exchangeOfferAnswer(localPc, remotePc);
|
|
|
|
const remoteDataChannel = await promiseDataChannel;
|
|
|
|
localDataChannel.send("test");
|
|
|
|
await new Promise(resolve => {
|
|
remoteDataChannel.onmessage = resolve;
|
|
});
|
|
|
|
const remoteCandidateStats = [...(await localPc.getStats()).values()].find(({type}) => type === 'remote-candidate');
|
|
assert_not_equals(remoteCandidateStats.address, null, "address should not be null");
|
|
}, "Expose in stats remote addresses that are already exposed to JS");
|
|
|
|
</script>
|