]> git.proxmox.com Git - mirror_novnc.git/blame - tests/vnc_playback.html
No exception if noVNC_logo is undefined.
[mirror_novnc.git] / tests / vnc_playback.html
CommitLineData
4ed717ad
JM
1<html>
2 <head>
67b4e987 3 <title>VNC Playback</title>
5e55378b 4 <link rel="stylesheet" href="../include/plain.css">
4ed717ad
JM
5 </head>
6 <body>
7
b8bd88d0
JM
8 Iterations: <input id='iterations' style='width:50'>&nbsp;
9 Perftest:<input type='radio' id='mode1' name='mode' checked>&nbsp;
10 Realtime:<input type='radio' id='mode2' name='mode'>&nbsp;&nbsp;
4ed717ad
JM
11
12 <input id='startButton' type='button' value='Start' style='width:100px'
13 onclick="start();" disabled>&nbsp;
14
15 <br><br>
16
b8bd88d0
JM
17 Results:<br>
18 <textarea id="messages" style="font-size: 9;" cols=80 rows=25></textarea>
19
20 <br><br>
21
4ed717ad
JM
22 <div id="VNC_screen">
23 <div id="VNC_status_bar" class="VNC_status_bar" style="margin-top: 0px;">
24 <table border=0 width=100%><tr>
25 <td><div id="VNC_status">Loading</div></td>
26 </tr></table>
27 </div>
28 <canvas id="VNC_canvas" width="640px" height="20px">
29 Canvas not supported.
30 </canvas>
31 </div>
32
4ed717ad
JM
33 </body>
34
35 <!--
36 <script type='text/javascript'
37 src='http://getfirebug.com/releases/lite/1.2/firebug-lite-compressed.js'></script>
38 -->
39
5e55378b
JM
40 <script type="text/javascript">
41 var INCLUDE_URI= "../include/";
42 </script>
43 <script src="../include/vnc.js"></script>
44 <script src="../include/playback.js"></script>
4ed717ad
JM
45
46 <script>
b8bd88d0 47 var fname, start_time;
4ed717ad
JM
48
49 function message(str) {
50 console.log(str);
e4671910 51 var cell = $D('messages');
4ed717ad
JM
52 cell.innerHTML += str + "\n";
53 cell.scrollTop = cell.scrollHeight;
54 }
55
8d5d2c82 56 fname = WebUtil.getQueryVar('data', null);
4ed717ad
JM
57
58 if (fname) {
59 message("Loading " + fname);
60 document.write('<script src="' + fname + '"><\/script>');
61 } else {
62 message("Must specify data=FOO in query string.");
63 }
64
4ed717ad
JM
65 updateState = function (rfb, state, oldstate, msg) {
66 switch (state) {
67 case 'failed':
68 case 'fatal':
2f6a1c2b 69 message("noVNC sent '" + state + "' state during iteration " + iteration + " frame " + frame_idx);
4ed717ad
JM
70 test_state = 'failed';
71 break;
b8bd88d0 72 case 'loaded':
e4671910 73 $D('startButton').disabled = false;
4ed717ad
JM
74 break;
75 }
76 if (typeof msg !== 'undefined') {
e4671910 77 $D('VNC_status').innerHTML = msg;
4ed717ad
JM
78 }
79 }
80
b8bd88d0 81 function start() {
e4671910
JM
82 $D('startButton').value = "Running";
83 $D('startButton').disabled = true;
4ed717ad 84
e4671910 85 iterations = $D('iterations').value;
4ed717ad 86 iteration = 0;
4ed717ad
JM
87 start_time = (new Date()).getTime();
88
e4671910 89 if ($D('mode1').checked) {
b8bd88d0
JM
90 message("Starting performance playback (fullspeed) [" + iterations + " iteration(s)]");
91 mode = 'perftest';
92 } else {
93 message("Starting realtime playback [" + iterations + " iteration(s)]");
94 mode = 'realtime';
4ed717ad
JM
95 }
96
b8bd88d0 97 next_iteration();
4ed717ad
JM
98 }
99
b8bd88d0
JM
100 function finish() {
101 // Finished with all iterations
102 var total_time, end_time = (new Date()).getTime();
103 total_time = end_time - start_time;
4ed717ad 104
b8bd88d0
JM
105 iter_time = parseInt(total_time / iterations, 10);
106 message(iterations + " iterations took " + total_time + "ms, " +
107 iter_time + "ms per iteration");
108 rfb.get_canvas().stop(); // Shut-off event interception
e4671910
JM
109 $D('startButton').disabled = false;
110 $D('startButton').value = "Start";
4ed717ad 111
4ed717ad
JM
112 }
113
114 window.onload = function() {
8d5d2c82 115 iterations = WebUtil.getQueryVar('iterations', 3);
e4671910 116 $D('iterations').value = iterations;
8d5d2c82 117 mode = WebUtil.getQueryVar('mode', 3);
b8bd88d0 118 if (mode === 'realtime') {
e4671910 119 $D('mode2').checked = true;
b8bd88d0 120 } else {
e4671910 121 $D('mode1').checked = true;
b8bd88d0 122 }
4ed717ad
JM
123 if (fname) {
124 message("VNC_frame_data.length: " + VNC_frame_data.length);
e4671910
JM
125 rfb = new RFB({'target': $D('VNC_canvas'),
126 'updateState': updateState});
4ed717ad 127 rfb.testMode(send_array);
4ed717ad
JM
128 }
129 }
130 </script>
131</html>