tor-browser

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

test_eme_request_notifications.html (2209B)


      1 <!DOCTYPE HTML>
      2 <html>
      3 <head>
      4  <title>Test Encrypted Media Extensions</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  <script type="text/javascript" src="eme.js"></script>
      9 </head>
     10 <body>
     11 <pre id="test">
     12 <script class="testbody" type="text/javascript">
     13 var manager = new MediaTestManager;
     14 
     15 function SetPrefs(prefs) {
     16  return SpecialPowers.pushPrefEnv({"set": prefs});
     17 }
     18 
     19 function observe() {
     20  return new Promise(function(resolve) {
     21    var observer = function(subject, topic, data) {
     22      SpecialPowers.Services.obs.removeObserver(observer, "mediakeys-request");
     23      resolve(JSON.parse(data).status);
     24    };
     25    SpecialPowers.Services.obs.addObserver(observer, "mediakeys-request");
     26  });
     27 }
     28 
     29 function Test(test) {
     30  var p = test.prefs ? SetPrefs(test.prefs) : Promise.resolve();
     31  var name = "'" + test.keySystem + "'";
     32 
     33  var res = observe().then((status) => {
     34    is(status, test.expectedStatus, name + " expected status");
     35  });
     36 
     37  p.then(() => navigator.requestMediaKeySystemAccess(test.keySystem, gCencMediaKeySystemConfig))
     38   .then((keySystemAccess) => keySystemAccess.createMediaKeys());
     39 
     40  return res;
     41 }
     42 
     43 var tests = [
     44  {
     45    keySystem: CLEARKEY_KEYSYSTEM,
     46    expectedStatus: 'cdm-created',
     47    prefs: [["media.eme.enabled", false]]
     48  },
     49  {
     50    keySystem: "com.widevine.alpha",
     51    expectedStatus: 'api-disabled',
     52    prefs: [["media.eme.enabled", false]]
     53  },
     54  {
     55    keySystem: "com.widevine.alpha",
     56    expectedStatus: 'cdm-disabled',
     57    prefs: [["media.eme.enabled", true], ["media.gmp-widevinecdm.enabled", false]]
     58  },
     59  {
     60    keySystem: "com.widevine.alpha",
     61    expectedStatus: 'cdm-not-installed',
     62    prefs: [["media.eme.enabled", true], ["media.gmp-widevinecdm.enabled", true]]
     63  },
     64  {
     65    keySystem: CLEARKEY_KEYSYSTEM,
     66    expectedStatus: 'cdm-created',
     67    prefs: [["media.eme.enabled", true]]
     68  }
     69 ];
     70 
     71 SimpleTest.waitForExplicitFinish();
     72 tests
     73  .reduce(function(p, c) {
     74    return p.then(function() {
     75      return Test(c);
     76    });
     77  }, Promise.resolve())
     78  .then(SimpleTest.finish);
     79 </script>
     80 </pre>
     81 </body>
     82 </html>