Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(82)

Side by Side Diff: LayoutTests/media/encrypted-media/encrypted-media-playback-multiple-sessions.html

Issue 655603003: Reland: Remove "needkey" event and add its replacement, "encrypted". (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 <!DOCTYPE html> 1 <!DOCTYPE html>
2 <html> 2 <html>
3 <head> 3 <head>
4 <title>Clear Key Playback with Multiple Sessions</title> 4 <title>Clear Key Playback with Multiple Sessions</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>
11 <div id="log"></div> 11 <div id="log"></div>
12 <p>Test playback of encrypted media using Clear Key key system with mult iple sessions.</p> 12 <p>Test playback of encrypted media using Clear Key key system with mult iple sessions.</p>
13 <script> 13 <script>
14 async_test(function(test) 14 async_test(function(test)
15 { 15 {
16 var video = document.getElementById('testVideo'); 16 var video = document.getElementById('testVideo');
17 var audioMediaKeySession = null; 17 var audioMediaKeySession = null;
18 var videoMediaKeySession = null; 18 var videoMediaKeySession = null;
19 var audioKeyProvided = false; 19 var audioKeyProvided = false;
20 var videoKeyProvided = false; 20 var videoKeyProvided = false;
21 21
22 // The 2 streams use different key ids and different keys. 22 // The 2 streams use different key ids and different keys.
23 var audioKeyId = '1234567890123456'; 23 var audioKeyId = '1234567890123456';
24 var audioKey = new Uint8Array([0x30, 0x30, 0x62, 0xF1, 0x68, 0x1 4, 0xD2, 0x7B, 24 var audioKey = new Uint8Array([0x30, 0x30, 0x62, 0xF1, 0x68, 0x1 4, 0xD2, 0x7B,
25 0x68, 0xEF, 0x12, 0x2A, 0xFC, 0xE 4, 0xAE, 0x0A]); 25 0x68, 0xEF, 0x12, 0x2A, 0xFC, 0xE 4, 0xAE, 0x0A]);
26 var videoKeyId = '0123456789012345'; 26 var videoKeyId = '0123456789012345';
27 var videoKey = new Uint8Array([0x7A, 0x7A, 0x62, 0xF1, 0x68, 0x1 4, 0xD2, 0x7B, 27 var videoKey = new Uint8Array([0x7A, 0x7A, 0x62, 0xF1, 0x68, 0x1 4, 0xD2, 0x7B,
28 0x68, 0xEF, 0x12, 0x2A, 0xFC, 0xE 4, 0xAE, 0x0A]); 28 0x68, 0xEF, 0x12, 0x2A, 0xFC, 0xE 4, 0xAE, 0x0A]);
29 29
30 function onNeedKey(event) 30 function onEncrypted(event)
31 { 31 {
32 var keyId = String.fromCharCode.apply(null, event.initData); 32 var keyId = String.fromCharCode.apply(null, new Uint8Array(e vent.initData));
33 33
34 var mediaKeySession = video.mediaKeys.createSession(); 34 var mediaKeySession = video.mediaKeys.createSession();
35 waitForEventAndRunStep('message', mediaKeySession, onMessage , test); 35 waitForEventAndRunStep('message', mediaKeySession, onMessage , test);
36 mediaKeySession.generateRequest(event.contentType, event.ini tData).then(function() { 36 mediaKeySession.generateRequest(event.initDataType, event.in itData).then(function() {
37 if (keyId == videoKeyId) { 37 if (keyId == videoKeyId) {
38 assert_equals(videoMediaKeySession, null); 38 assert_equals(videoMediaKeySession, null);
39 videoMediaKeySession = mediaKeySession; 39 videoMediaKeySession = mediaKeySession;
40 } else { 40 } else {
41 assert_equals(keyId, audioKeyId); 41 assert_equals(keyId, audioKeyId);
42 assert_equals(audioMediaKeySession, null); 42 assert_equals(audioMediaKeySession, null);
43 audioMediaKeySession = mediaKeySession; 43 audioMediaKeySession = mediaKeySession;
44 } 44 }
45 }).catch(function(error) { 45 }).catch(function(error) {
46 forceTestFailureFromPromise(test, error); 46 forceTestFailureFromPromise(test, error);
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
84 84
85 function onTimeUpdate(event) 85 function onTimeUpdate(event)
86 { 86 {
87 if (event.target.currentTime < 0.2) 87 if (event.target.currentTime < 0.2)
88 return; 88 return;
89 89
90 test.done(); 90 test.done();
91 } 91 }
92 92
93 MediaKeys.create('org.w3.clearkey').then(function(mediaKeys) { 93 MediaKeys.create('org.w3.clearkey').then(function(mediaKeys) {
94 waitForEventAndRunStep('needkey', video, onNeedKey, test); 94 waitForEventAndRunStep('encrypted', video, onEncrypted, test );
95 waitForEventAndRunStep('playing', video, onPlaying, test); 95 waitForEventAndRunStep('playing', video, onPlaying, test);
96 video.src = '../content/test-encrypted-different-av-keys.web m'; 96 video.src = '../content/test-encrypted-different-av-keys.web m';
97 return video.setMediaKeys(mediaKeys); 97 return video.setMediaKeys(mediaKeys);
98 }).then(function(result) { 98 }).then(function(result) {
99 video.play(); 99 video.play();
100 }).catch(function(error) { 100 }).catch(function(error) {
101 forceTestFailureFromPromise(test, error); 101 forceTestFailureFromPromise(test, error);
102 }); 102 });
103 }, 'Playback using Clear Key key system with multiple sessions.'); 103 }, 'Playback using Clear Key key system with multiple sessions.');
104 </script> 104 </script>
105 </body> 105 </body>
106 </html> 106 </html>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698