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

Side by Side Diff: third_party/WebKit/LayoutTests/media/encrypted-media/encrypted-media-playback-encrypted-and-clear-sources.html

Issue 2084053002: EME: Update tests so 'audioCapabilities' always provided (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: changes (+rebase) Created 4 years, 5 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>Multiple playbacks alternating between encrypted and clear source s.</title> 4 <title>Multiple playbacks alternating between encrypted and clear source s.</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 <script> 12 <script>
13 async_test(function(test) 13 async_test(function(test)
14 { 14 {
15 var video = document.getElementById('testVideo'); 15 var video = document.getElementById('testVideo');
16 var isUpdatePromiseResolved = false; 16 var isUpdatePromiseResolved = false;
17 var encryptedEventCount = 0; 17 var encryptedEventCount = 0;
18 var playbackCount = 0; 18 var playbackCount = 0;
19 19
20 // Content to be played. These files must be the same format.
21 var encryptedContent = '../content/test-encrypted.webm';
22 var unencryptedContent = '../content/test-vp8-vorbis-webvtt.webm ';
ddorwin 2016/07/20 19:34:20 Any idea why we use this file? It seems we should
23
20 var rawKey = new Uint8Array([0xeb, 0xdd, 0x62, 0xf1, 0x68, 0x14, 0xd2, 0x7b, 24 var rawKey = new Uint8Array([0xeb, 0xdd, 0x62, 0xf1, 0x68, 0x14, 0xd2, 0x7b,
21 0x68, 0xef, 0x12, 0x2a, 0xfc, 0xe4, 0xae, 0x3c]); 25 0x68, 0xef, 0x12, 0x2a, 0xfc, 0xe4, 0xae, 0x3c]);
22 26
23 function onEncrypted(event) 27 function onEncrypted(event)
24 { 28 {
25 assert_equals(event.target, video); 29 assert_equals(event.target, video);
26 assert_true(event instanceof window.MediaEncryptedEvent); 30 assert_true(event instanceof window.MediaEncryptedEvent);
27 assert_equals(event.type, 'encrypted'); 31 assert_equals(event.type, 'encrypted');
28 32
29 // The same decryption key is used by both the audio and 33 // The same decryption key is used by both the audio and
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
85 } 89 }
86 90
87 function resetSrc() { 91 function resetSrc() {
88 encryptedEventCount = 0; 92 encryptedEventCount = 0;
89 video.removeAttribute('src'); 93 video.removeAttribute('src');
90 video.load(); 94 video.load();
91 return video.setMediaKeys(null); 95 return video.setMediaKeys(null);
92 } 96 }
93 97
94 function startPlayback() { 98 function startPlayback() {
99 // Alternate between encrypted and unencrypted files.
95 if (playbackCount % 2) { 100 if (playbackCount % 2) {
96 video.src = '../content/test-vp8-vorbis-webvtt.webm'; 101 // Unencrypted files don't require MediaKeys.
ddorwin 2016/07/20 19:34:20 Since we start with clear, we should probably swit
102 video.src = unencryptedContent;
97 video.play(); 103 video.play();
98 return; 104 return;
99 } 105 }
100 106
101 navigator.requestMediaKeySystemAccess('org.w3.clearkey', [{} ]).then(function(access) { 107 navigator.requestMediaKeySystemAccess('org.w3.clearkey', get ConfigurationForFile(encryptedContent)).then(function(access) {
102 return access.createMediaKeys(); 108 return access.createMediaKeys();
103 }).then(function(mediaKeys) { 109 }).then(function(mediaKeys) {
104 return video.setMediaKeys(mediaKeys); 110 return video.setMediaKeys(mediaKeys);
105 }).then(function(result) { 111 }).then(function(result) {
106 video.src = '../content/test-encrypted.webm'; 112 video.src = encryptedContent;
107 assert_false(video.mediaKeys === null, "video.mediaKeys is null."); 113 assert_false(video.mediaKeys === null, "video.mediaKeys is null.");
108 video.play(); 114 video.play();
109 }).catch(function(error) { 115 }).catch(function(error) {
110 forceTestFailureFromPromise(test, error); 116 forceTestFailureFromPromise(test, error);
111 }); 117 });
112 } 118 }
113 119
114 waitForEventAndRunStep('playing', video, onPlaying, test); 120 waitForEventAndRunStep('playing', video, onPlaying, test);
115 waitForEventAndRunStep('encrypted', video, onEncrypted, test); 121 waitForEventAndRunStep('encrypted', video, onEncrypted, test);
116 startPlayback(); 122 startPlayback();
117 }, 'Multiple playbacks alternating between encrypted and clear sourc es.'); 123 }, 'Multiple playbacks alternating between encrypted and clear sourc es.');
118 </script> 124 </script>
119 </body> 125 </body>
120 </html> 126 </html>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698