tor-browser

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

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>