OLD | NEW |
1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
2 <html> | 2 <html> |
3 <head> | 3 <head> |
4 <title>Waiting for a key.</title> | 4 <title>Waiting for a key.</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 // For debugging timeouts, keep track of the number of the | 13 // For debugging timeouts, keep track of the number of the |
14 // various events received. | 14 // various events received. |
15 var debugEncryptedEventCount = 0; | 15 var debugEncryptedEventCount = 0; |
16 var debugWaitingForKeyEventCount = 0; | 16 var debugWaitingForKeyEventCount = 0; |
17 var debugTimeUpdateEventCount = 0; | 17 var debugTimeUpdateEventCount = 0; |
18 var debugMessage = ''; | 18 var debugMessage = ''; |
19 | 19 |
20 promise_test(function(test) | 20 promise_test(function(test) |
21 { | 21 { |
22 var video = document.getElementById('testVideo'); | 22 var video = document.getElementById('testVideo'); |
| 23 var content = '../content/test-encrypted.webm'; |
23 var initData; | 24 var initData; |
24 var initDataType; | 25 var initDataType; |
25 var mediaKeySession; | 26 var mediaKeySession; |
26 | 27 |
27 test.timeout = function() | 28 test.timeout = function() |
28 { | 29 { |
29 var message = 'timeout. message = ' + debugMessage | 30 var message = 'timeout. message = ' + debugMessage |
30 + ', encrypted: ' + debugEncryptedEventCount | 31 + ', encrypted: ' + debugEncryptedEventCount |
31 + ', waitingforkey: ' + debugWaitingForKeyEve
ntCount | 32 + ', waitingforkey: ' + debugWaitingForKeyEve
ntCount |
32 + ', timeupdate: ' + debugTimeUpdateEventCoun
t; | 33 + ', timeupdate: ' + debugTimeUpdateEventCoun
t; |
33 test.force_timeout(); | 34 test.force_timeout(); |
34 test.timeout_id = null; | 35 test.timeout_id = null; |
35 test.set_status(2, message); | 36 test.set_status(2, message); |
36 test.done(); | 37 test.done(); |
37 }; | 38 }; |
38 | 39 |
39 // As this code doesn't wait for the 'message' event to avoid | 40 // As this code doesn't wait for the 'message' event to avoid |
40 // race conditions with 'waitingforkey', specify the key ID and | 41 // race conditions with 'waitingforkey', specify the key ID and |
41 // key used by the encrypted content. | 42 // key used by the encrypted content. |
42 var keyId = stringToUint8Array('0123456789012345'); | 43 var keyId = stringToUint8Array('0123456789012345'); |
43 var rawKey = new Uint8Array([0xeb, 0xdd, 0x62, 0xf1, 0x68, 0x14,
0xd2, 0x7b, | 44 var rawKey = new Uint8Array([0xeb, 0xdd, 0x62, 0xf1, 0x68, 0x14,
0xd2, 0x7b, |
44 0x68, 0xef, 0x12, 0x2a, 0xfc, 0xe4,
0xae, 0x3c]); | 45 0x68, 0xef, 0x12, 0x2a, 0xfc, 0xe4,
0xae, 0x3c]); |
45 | 46 |
46 return navigator.requestMediaKeySystemAccess('org.w3.clearkey',
[{}]).then(function(access) { | 47 return navigator.requestMediaKeySystemAccess('org.w3.clearkey',
getConfigurationForFile(content)).then(function(access) { |
47 debugMessage = 'createMediaKeys()'; | 48 debugMessage = 'createMediaKeys()'; |
48 return access.createMediaKeys(); | 49 return access.createMediaKeys(); |
49 }).then(function(mediaKeys) { | 50 }).then(function(mediaKeys) { |
50 debugMessage = 'setMediaKeys()'; | 51 debugMessage = 'setMediaKeys()'; |
51 return video.setMediaKeys(mediaKeys); | 52 return video.setMediaKeys(mediaKeys); |
52 }).then(function() { | 53 }).then(function() { |
53 video.src = '../content/test-encrypted.webm'; | 54 video.src = content; |
54 video.play(); | 55 video.play(); |
55 debugMessage = 'wait_for_encrypted_event()'; | 56 debugMessage = 'wait_for_encrypted_event()'; |
56 return wait_for_encrypted_event(video); | 57 return wait_for_encrypted_event(video); |
57 }).then(function(e) { | 58 }).then(function(e) { |
58 // Received the 'encrypted' event(s), so keep a copy of | 59 // Received the 'encrypted' event(s), so keep a copy of |
59 // the initdata for use when creating the session later. | 60 // the initdata for use when creating the session later. |
60 initData = e.initData; | 61 initData = e.initData; |
61 initDataType = e.initDataType; | 62 initDataType = e.initDataType; |
62 | 63 |
63 // Wait until the video indicates that it needs a key to | 64 // Wait until the video indicates that it needs a key to |
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
154 if (video.currentTime < 0.2) | 155 if (video.currentTime < 0.2) |
155 return; | 156 return; |
156 video.removeEventListener('timeupdate', listener); | 157 video.removeEventListener('timeupdate', listener); |
157 resolve(e); | 158 resolve(e); |
158 }); | 159 }); |
159 }); | 160 }); |
160 }; | 161 }; |
161 </script> | 162 </script> |
162 </body> | 163 </body> |
163 </html> | 164 </html> |
OLD | NEW |