Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / chrome / test / data / media / encrypted_media_player.html
1 <!DOCTYPE html>
2 <html>
3   <head>
4     <title>Encrypted Media Player</title>
5   </head>
6   <body onload="runTest();">
7     <video controls></video>
8     <script src="media_utils.js" type="text/javascript"></script>
9     <script src="media_source_utils.js" type="text/javascript"></script>
10     <script src="encrypted_media_utils.js" type="text/javascript"></script>
11     <script type="text/javascript">
12       var video = document.querySelector('video');
13
14       function onTimeUpdate() {
15         if (video.currentTime < 1)
16           return;
17         // For loadSession() tests, addKey() will not be called after
18         // loadSession() (the key is loaded internally). Do not check keyadded
19         // and heartbeat for these tests.
20         if (!sessionToLoad) {
21           // keyadded may be fired around the start of playback; check for it
22           // after a delay to avoid timing issues.
23           if (!video.receivedKeyAdded)
24             failTest('Key added event not received.');
25           if (video.isHeartbeatExpected && !video.receivedHeartbeat)
26             failTest('Heartbeat keymessage event not received.');
27         }
28         video.removeEventListener('ended', failTest);
29         installTitleEventHandler(video, 'ended');
30         video.removeEventListener('timeupdate', onTimeUpdate);
31       }
32
33       // The test completes after playing the encrypted media for 1 second and
34       // getting the ended event or when an error occurs at any time.
35       function runTest() {
36         loadEncryptedMediaFromURL(video);
37         video.addEventListener('timeupdate', onTimeUpdate);
38         video.play();
39       }
40     </script>
41   </body>
42 </html>