| OLD | NEW |
| 1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
| 2 <html> | 2 <html> |
| 3 <head> | 3 <head> |
| 4 <title>Clear Key Play Two Videos At Same Time</title> | 4 <title>Clear Key Play Two Videos At Same Time</title> |
| 5 <script src="encrypted-media-utils.js"></script> | 5 <script src="encrypted-media-utils.js"></script> |
| 6 <script src="../../resources/testharness.js"></script> | 6 <script src="../../resources/testharness.js"></script> |
| 7 <script src="../../resources/testharnessreport.js"></script> | 7 <script src="../../resources/testharnessreport.js"></script> |
| 8 </head> | 8 </head> |
| 9 <body> | 9 <body> |
| 10 <video id="testVideo"></video> | 10 <video id="testVideo"></video> |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 46 { | 46 { |
| 47 var encryptedEventCount = 0; | 47 var encryptedEventCount = 0; |
| 48 return new Promise(function(resolve) { | 48 return new Promise(function(resolve) { |
| 49 video.addEventListener('encrypted', function listener(e) { | 49 video.addEventListener('encrypted', function listener(e) { |
| 50 // The same decryption key is used by both the audio | 50 // The same decryption key is used by both the audio |
| 51 // and the video streams so only create a session once. | 51 // and the video streams so only create a session once. |
| 52 // Create the session on the second event. This also | 52 // Create the session on the second event. This also |
| 53 // ensures we see both events. | 53 // ensures we see both events. |
| 54 if (++encryptedEventCount != 2) | 54 if (++encryptedEventCount != 2) |
| 55 return; | 55 return; |
| 56 video.removeEventListener(listener); | 56 video.removeEventListener('encrypted', listener); |
| 57 | 57 |
| 58 var mediaKeySession = video.mediaKeys.createSession(); | 58 var mediaKeySession = video.mediaKeys.createSession(); |
| 59 mediaKeySession.generateRequest(e.initDataType, e.initDa
ta).then(function(result) { | 59 mediaKeySession.generateRequest(e.initDataType, e.initDa
ta).then(function(result) { |
| 60 // Don't bother waiting for the 'message' event. | 60 // Don't bother waiting for the 'message' event. |
| 61 // Just call update() since we know the keyId | 61 // Just call update() since we know the keyId |
| 62 // needed. | 62 // needed. |
| 63 var jwkSet = stringToUint8Array(createJWKSet(createJ
WK(keyId, rawKey))); | 63 var jwkSet = stringToUint8Array(createJWKSet(createJ
WK(keyId, rawKey))); |
| 64 return mediaKeySession.update(jwkSet); | 64 return mediaKeySession.update(jwkSet); |
| 65 }).then(function(result) { | 65 }).then(function(result) { |
| 66 resolve(result); | 66 resolve(result); |
| 67 }); | 67 }); |
| 68 }); | 68 }); |
| 69 }); | 69 }); |
| 70 }; | 70 }; |
| 71 | 71 |
| 72 function wait_for_timeupdate_message(video) | 72 function wait_for_timeupdate_message(video) |
| 73 { | 73 { |
| 74 return new Promise(function(resolve) { | 74 return new Promise(function(resolve) { |
| 75 video.addEventListener('timeupdate', function listener(e) { | 75 video.addEventListener('timeupdate', function listener(e) { |
| 76 if (e.target.currentTime < 0.2) | 76 if (e.target.currentTime < 0.2) |
| 77 return; | 77 return; |
| 78 video.removeEventListener(listener); | 78 video.removeEventListener('timeupdate', listener); |
| 79 resolve(e); | 79 resolve(e); |
| 80 }); | 80 }); |
| 81 }); | 81 }); |
| 82 }; | 82 }; |
| 83 </script> | 83 </script> |
| 84 </body> | 84 </body> |
| 85 </html> | 85 </html> |
| OLD | NEW |