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.');