tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

RTCRtpSendParameters-degradationPreference.html (4917B)


      1 <!doctype html>
      2 <meta charset=utf-8>
      3 <title>RTCRtpSendParameters degradationPreference</title>
      4 <script src="/resources/testharness.js"></script>
      5 <script src="/resources/testharnessreport.js"></script>
      6 <script>
      7  'use strict';
      8 
      9 promise_test(async t => {
     10  const pc = new RTCPeerConnection();
     11  t.add_cleanup(() => pc.close());
     12  const { sender } = pc.addTransceiver('video');
     13 
     14  let param = sender.getParameters();
     15 
     16  assert_equals(param.degradationPreference, undefined,
     17    'Expect initial param.degradationPreference to be undefined');
     18 
     19  param.degradationPreference = 'maintain-framerate';
     20  await sender.setParameters(param);
     21  param = sender.getParameters();
     22  assert_equals(param.degradationPreference, 'maintain-framerate');
     23 
     24  param.degradationPreference = 'maintain-resolution';
     25  await sender.setParameters(param);
     26  param = sender.getParameters();
     27  assert_equals(param.degradationPreference, 'maintain-resolution');
     28 
     29  param.degradationPreference = 'balanced';
     30  await sender.setParameters(param);
     31  param = sender.getParameters();
     32  assert_equals(param.degradationPreference, 'balanced');
     33 
     34  param.degradationPreference = 'maintain-framerate-and-resolution';
     35  await sender.setParameters(param);
     36  param = sender.getParameters();
     37  assert_equals(param.degradationPreference, 'maintain-framerate-and-resolution');
     38 
     39  param.degradationPreference = undefined;
     40  await sender.setParameters(param);
     41  param = sender.getParameters();
     42  assert_equals(param.degradationPreference, undefined);
     43 }, 'setParameters with degradationPreference set should succeed on video transceiver');
     44 
     45 promise_test(async t => {
     46  const pc = new RTCPeerConnection();
     47  t.add_cleanup(() => pc.close());
     48  const { sender } = pc.addTransceiver('video');
     49 
     50  let param = sender.getParameters();
     51 
     52  assert_equals(param.degradationPreference, undefined,
     53    'Expect initial param.degradationPreference to be undefined');
     54 
     55  param.degradationPreference = undefined;
     56 
     57  await sender.setParameters(param);
     58 
     59  param = sender.getParameters();
     60  assert_equals(param.degradationPreference, undefined);
     61 }, 'setParameters with degradationPreference unset should succeed on video transceiver');
     62 
     63 promise_test(async t => {
     64  const pc = new RTCPeerConnection();
     65  t.add_cleanup(() => pc.close());
     66  const { sender } = pc.addTransceiver('video');
     67 
     68  let param = sender.getParameters();
     69  param.degradationPreference = 'invalid';
     70 
     71  return promise_rejects_js(t, TypeError, sender.setParameters(param));
     72 }, 'setParameters with invalid degradationPreference should throw TypeError on video transceiver');
     73 
     74 promise_test(async t => {
     75  const pc = new RTCPeerConnection();
     76  t.add_cleanup(() => pc.close());
     77  const { sender } = pc.addTransceiver('audio');
     78 
     79  let param = sender.getParameters();
     80 
     81  assert_equals(param.degradationPreference, undefined,
     82    'Expect initial param.degradationPreference to be undefined');
     83 
     84  param.degradationPreference = 'maintain-framerate';
     85  await sender.setParameters(param);
     86  param = sender.getParameters();
     87  assert_equals(param.degradationPreference, 'maintain-framerate');
     88 
     89  param.degradationPreference = 'maintain-resolution';
     90  await sender.setParameters(param);
     91  param = sender.getParameters();
     92  assert_equals(param.degradationPreference, 'maintain-resolution');
     93 
     94  param.degradationPreference = 'balanced';
     95  await sender.setParameters(param);
     96  param = sender.getParameters();
     97  assert_equals(param.degradationPreference, 'balanced');
     98 
     99  param.degradationPreference = 'maintain-framerate-and-resolution';
    100  await sender.setParameters(param);
    101  param = sender.getParameters();
    102  assert_equals(param.degradationPreference, 'maintain-framerate-and-resolution');
    103 
    104  param.degradationPreference = undefined;
    105  await sender.setParameters(param);
    106  param = sender.getParameters();
    107  assert_equals(param.degradationPreference, undefined);
    108 }, 'setParameters with degradationPreference set should succeed on audio transceiver');
    109 
    110 promise_test(async t => {
    111  const pc = new RTCPeerConnection();
    112  t.add_cleanup(() => pc.close());
    113  const { sender } = pc.addTransceiver('audio');
    114 
    115  let param = sender.getParameters();
    116 
    117  assert_equals(param.degradationPreference, undefined,
    118    'Expect initial param.degradationPreference to be undefined');
    119 
    120  param.degradationPreference = undefined;
    121 
    122  await sender.setParameters(param);
    123 
    124  param = sender.getParameters();
    125  assert_equals(param.degradationPreference, undefined);
    126 }, 'setParameters with degradationPreference unset should succeed on audio transceiver');
    127 
    128 promise_test(async t => {
    129  const pc = new RTCPeerConnection();
    130  t.add_cleanup(() => pc.close());
    131  const { sender } = pc.addTransceiver('audio');
    132 
    133  let param = sender.getParameters();
    134  param.degradationPreference = 'invalid';
    135 
    136  return promise_rejects_js(t, TypeError, sender.setParameters(param));
    137 }, 'setParameters with invalid degradationPreference should throw TypeError on audio transceiver');
    138 
    139 </script>