test_eme_requestMediaKeySystemAccess_origin_check_widevine.html (2436B)
1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <title>MFCDM origin check should not affect Widevine L3</title> 5 <script src="/tests/SimpleTest/SimpleTest.js"></script> 6 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" /> 7 <script type="text/javascript" src="manifest.js"></script> 8 </head> 9 <body> 10 <script class="testbody" type="text/javascript"> 11 12 /** 13 * This test verifies that the MFCDM origin check does not affect the Widevine L3 14 * key system. It attempts to request media key system access for Widevine with 15 * different origin filter settings to ensure compatibility. 16 */ 17 add_task(async function setupTestingPrefs() { 18 await SpecialPowers.pushPrefEnv({ 19 set: [ 20 ["media.wmf.media-engine.enabled", 2], 21 // This is used to trigger Widevine CDM installation check 22 ["media.gmp-widevinecdm-l1.enabled", true], 23 // Use the mock clearkey CDM to create cdm for all other key systems. 24 ["media.eme.wmf.use-mock-cdm-for-external-cdms", true], 25 ], 26 }); 27 }); 28 29 add_task(async function testMFCDMOriginCheckForWidevineL3() { 30 // 0 : disabled, 1 : enabled allowed list, 2 : enabled blocked list 31 for (let prefValue = 0; prefValue <= 2; prefValue++) { 32 await testRequestMediaKeySystemAccess(prefValue); 33 } 34 }); 35 36 async function testRequestMediaKeySystemAccess(prefValue) { 37 const keySystem = "com.widevine.alpha"; 38 const configs = [{ 39 initDataTypes: ['keyids', 'cenc'], 40 videoCapabilities: [ 41 { contentType: 'video/mp4;codecs="avc1.4d401e"', robustness: 'HW_SECURE_ALL' }, 42 { contentType: 'video/mp4;codecs="avc1.4d401e"', robustness: 'HW_SECURE_DECODE' }, 43 { contentType: 'video/mp4;codecs="avc1.4d401e"', robustness: 'HW_SECURE_CRYPTO' }, 44 { contentType: 'video/mp4;codecs="avc1.4d401e"', robustness: 'SW_SECURE_DECODE' }, 45 { contentType: 'video/mp4;codecs="avc1.4d401e"', robustness: 'SW_SECURE_CRYPTO' }, 46 ], 47 sessionTypes: ['temporary'], 48 }]; 49 info(`requestMediaKeySystemAccess for ${keySystem} : with origin-filter-enabled=${prefValue}`); 50 await SpecialPowers.pushPrefEnv({ 51 set: [ 52 ["media.eme.mfcdm.origin-filter.enabled", prefValue], 53 ], 54 }); 55 let access = await navigator.requestMediaKeySystemAccess(keySystem, configs) 56 .catch(() => ok(false, `failed to create key system access`)); 57 ok(access, `success to create key system access`); 58 } 59 60 </script> 61 </body> 62 </html>