blob: 4cf5ffb5274a1da93d7ba95e3f1de5b78851d0b9 [file] [log] [blame]
<!DOCTYPE html>
<meta charset="utf-8">
<title>JitterBufferDelayHint - property exposed on RTCRtpReceiver by origin trial</title>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script src="../../resources/origin-trials-helper.js"></script>
<script>
if (!self.internals.runtimeFlags.rtcJitterBufferDelayHintEnabled) {
test(t => {
OriginTrialsHelper.check_properties_missing(
this, {'RTCRtpReceiver': ['jitterBufferDelayHint']});
}, 'RTCRtpReceiver jitterBufferDelayHint is not available without token');
}
// Generated with command:
// tools/origin_trials/generate_token.py http://127.0.0.1:8000 RtcJitterBufferDelayHint --expire-timestamp=2000000000
const token = 'AooRFiyDVrZyXNbm9GQp3TYVKdLvpH99sd/OKrMUHQ8FSxG4ok5MAff2Wqu9j6rXMfuaIITeQvifdQLIvR5bTwkAAAB1eyJvcmlnaW4iOiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiwgImlzU3ViZG9tYWluIjogdHJ1ZSwgImZlYXR1cmUiOiAiUnRjSml0dGVyQnVmZmVyRGVsYXlIaW50IiwgImV4cGlyeSI6IDIwMDAwMDAwMDB9';
OriginTrialsHelper.add_token(token);
test(t => {
OriginTrialsHelper.check_properties_exist(
this, {'RTCRtpReceiver': ['jitterBufferDelayHint']});
}, 'RTCRtpReceiver jitterBufferDelayHint is in Origin-Trial enabled document');
promise_test(async t => {
const pc = new RTCPeerConnection();
t.add_cleanup(() => pc.close());
pc.addTransceiver('audio', {direction:'recvonly'});
pc.addTransceiver('video', {direction:'recvonly'});
for (let receiver of pc.getReceivers()) {
assert_equals(receiver.jitterBufferDelayHint, null,
'jitterBufferDelayHint null by default');
receiver.jitterBufferDelayHint = 0.5;
assert_equals(receiver.jitterBufferDelayHint, 0.5,
'jitterBufferDelayHint saves correct value');
receiver.jitterBufferDelayHint = 20.5;
assert_equals(receiver.jitterBufferDelayHint, 20.5,
'jitterBufferDelayHint saves large value');
assert_throws('InvalidAccessError', () => {
receiver.jitterBufferDelayHint = -0.5;
}, 'jitterBufferDelayHint accepts only positive values and 0.0');
assert_equals(receiver.jitterBufferDelayHint, 20.5,
'jitterBufferDelayHint returns last valid value');
receiver.jitterBufferDelayHint = null;
assert_equals(receiver.jitterBufferDelayHint, null,
'jitterBufferDelayHint resets value to null');
}
}, 'RTCRtpReceiver jitterBufferDelayHint validation');
</script>