tor-browser

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

MediaDevices-setCaptureHandleConfig.https.window.js (2117B)


      1 'use strict';
      2 
      3 test(() => {
      4  assert_true(!!navigator.mediaDevices.setCaptureHandleConfig);
      5  navigator.mediaDevices.setCaptureHandleConfig({handle: 'X'.repeat(1024)});
      6 }, 'setCaptureHandleConfig does not throw if handle length is 1024.');
      7 
      8 test(() => {
      9  assert_true(!!navigator.mediaDevices.setCaptureHandleConfig);
     10  assert_throws_js(
     11      TypeError,
     12      () => navigator.mediaDevices.setCaptureHandleConfig(
     13          {handle: 'X'.repeat(1025)}),
     14      'handle length must be 1024 characters or less');
     15 }, 'setCaptureHandleConfig raises TypeError if handle is invalid.');
     16 
     17 test(() => {
     18  assert_true(!!navigator.mediaDevices.setCaptureHandleConfig);
     19  navigator.mediaDevices.setCaptureHandleConfig({permittedOrigins: ['*']});
     20 }, 'setCaptureHandleConfig does not throw if asterisk character appears only once.');
     21 
     22 test(() => {
     23  assert_true(!!navigator.mediaDevices.setCaptureHandleConfig);
     24  assert_throws_dom(
     25      'NotSupportedError',
     26      () => navigator.mediaDevices.setCaptureHandleConfig(
     27          {permittedOrigins: ['*', '*']}),
     28      'two asterisk characters are not allowed');
     29 
     30  assert_throws_dom(
     31      'NotSupportedError',
     32      () => navigator.mediaDevices.setCaptureHandleConfig(
     33          {permittedOrigins: ['*', 'http://example.com']}),
     34      'asterisk character is not allowed with valid origins');
     35 
     36  assert_throws_dom(
     37      'NotSupportedError',
     38      () => navigator.mediaDevices.setCaptureHandleConfig(
     39          {permittedOrigins: ['about://blank']}),
     40      'origins must be valid');
     41 }, 'setCaptureHandleConfig raises NotSupportedError if permittedOrigins is invalid.');
     42 
     43 
     44 test(() => {
     45  assert_true(!!navigator.mediaDevices.setCaptureHandleConfig);
     46  const iframe = document.createElement('iframe');
     47  document.body.appendChild(iframe);
     48  const mediaDevices = iframe.contentWindow.navigator.mediaDevices;
     49  const iframeDOMException = iframe.contentWindow.DOMException;
     50 
     51  assert_throws_dom('InvalidStateError', iframeDOMException, () => {
     52    mediaDevices.setCaptureHandleConfig();
     53  });
     54 }, 'setCaptureHandleConfig raises InvalidStateError if not from top-level browsing context.');