tor-browser

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

test_eme_detach_media_keys.html (1826B)


      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 <video id="v" controls></video>
     13 <script class="testbody" type="text/javascript">
     14 
     15 SimpleTest.waitForExplicitFinish();
     16 
     17 function createAndSet() {
     18  return new Promise(function(resolve) {
     19    var m;
     20    navigator.requestMediaKeySystemAccess(CLEARKEY_KEYSYSTEM, gCencMediaKeySystemConfig)
     21    .then(function (access) {
     22      return access.createMediaKeys();
     23    })
     24    .then(function (mediaKeys) {
     25      m = mediaKeys;
     26      return document.getElementById("v").setMediaKeys(mediaKeys);
     27    })
     28    .then(function() {
     29      resolve(m);
     30    });
     31  }
     32 )}
     33 
     34 var m1,m2;
     35 
     36 // Test that if we create and set two MediaKeys on one video element,
     37 // that if the first MediaKeys we set on the media elemnt is still usable
     38 // after the second MediaKeys has been set on the media element.
     39 
     40 createAndSet().then((m) => {
     41  m1 = m; // Stash MediaKeys.
     42  return createAndSet();
     43 })
     44 .then((m) => {
     45  m2 = m;
     46  is(document.getElementById("v").mediaKeys, m2, "Should have set MediaKeys on media element");
     47  ok(document.getElementById("v").mediaKeys != m1, "First MediaKeys should no longer be set on media element");
     48  var s = m1.createSession("temporary");
     49  return s.generateRequest("webm", StringToArrayBuffer(atob('YAYeAX5Hfod+V9ANHtANHg==')));
     50 })
     51 .then(() => {
     52  ok(true, "Was able to generateRequest using second CDM");
     53  SimpleTest.finish();
     54 }, () => {
     55  ok(false, "Was *NOT* able to generateRequest using second CDM");
     56  SimpleTest.finish();
     57 });
     58 
     59  
     60 </script>
     61 </pre>
     62 </body>
     63 </html>