Skip to content

Commit

Permalink
Merge pull request #9941 from fippo/better-dtmf-test-helper
Browse files Browse the repository at this point in the history
webrtc: improve Firefox compability of RTCDTMFHelper
  • Loading branch information
alvestrand committed Mar 11, 2018
2 parents 5e377e2 + d77d53e commit 9c9d8f2
Showing 1 changed file with 7 additions and 7 deletions.
14 changes: 7 additions & 7 deletions webrtc/RTCDTMFSender-helper.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
// Connect the PeerConnection to another PC and wait until it is
// properly connected, so that DTMF can be sent.
function createDtmfSender(pc = new RTCPeerConnection()) {
var dtmfSender;
let dtmfSender;
return getTrackFromUserMedia('audio')
.then(([track, mediaStream]) => {
const sender = pc.addTrack(track, mediaStream);
Expand All @@ -28,14 +28,17 @@ function createDtmfSender(pc = new RTCPeerConnection()) {
exchangeIceCandidates(pc, pc2);
return doSignalingHandshake(pc, pc2);
}).then(() => {
if (!('canInsertDTMF' in dtmfSender)) {
return Promise.resolve();
}
// Wait until dtmfSender.canInsertDTMF becomes true.
// Up to 150 ms has been observed in test. Wait 1 second
// in steps of 10 ms.
// Note: Using a short timeout and rejected promise in order to
// make test return a clear error message on failure.
return new Promise((resolve, reject) => {
let counter = 0;
let checkfunc = function() {
step_timeout(function checkCanInsertDTMF() {
if (dtmfSender.canInsertDTMF) {
resolve();
} else {
Expand All @@ -44,14 +47,11 @@ function createDtmfSender(pc = new RTCPeerConnection()) {
return;
}
++counter;
step_timeout(checkfunc, 10);
step_timeout(checkCanInsertDTMF, 10);
}
};
checkfunc();
}, 0);
});
}).then(() => {
assert_true(dtmfSender.canInsertDTMF,
'Failed to create usable dtmfSender:');
return dtmfSender;
});
}
Expand Down

0 comments on commit 9c9d8f2

Please sign in to comment.