| <!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( |
| 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> |