]> git.proxmox.com Git - mirror_novnc.git/blame - tests/vnc_playback.html
Remove unecessary event-related code from Util
[mirror_novnc.git] / tests / vnc_playback.html
CommitLineData
f8990704 1<!DOCTYPE html>
4ed717ad
JM
2<html>
3 <head>
67b4e987 4 <title>VNC Playback</title>
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 <!--
ae510306 36 <script type='text/javascript'
4ed717ad
JM
37 src='http://getfirebug.com/releases/lite/1.2/firebug-lite-compressed.js'></script>
38 -->
39
5e55378b 40 <script type="text/javascript">
ae510306 41 var INCLUDE_URI= "../";
35785a90 42 // TODO: Data file should override
4ee55e01 43 var VNC_frame_encoding = "binary";
5e55378b 44 </script>
ae510306
SR
45 <script src="../core/util.js"></script>
46 <script src="../app/webutil.js"></script>
4ed717ad
JM
47
48 <script>
b8bd88d0 49 var fname, start_time;
4ed717ad
JM
50
51 function message(str) {
52 console.log(str);
ae510306 53 var cell = document.getElementById('messages');
4ed717ad
JM
54 cell.innerHTML += str + "\n";
55 cell.scrollTop = cell.scrollHeight;
56 }
57
8d5d2c82 58 fname = WebUtil.getQueryVar('data', null);
4ed717ad
JM
59 if (fname) {
60 message("Loading " + fname);
6f4b1e40 61 // Load supporting scripts
72bdd06e 62 WebUtil.load_scripts({
ae510306
SR
63 'core': ["base64.js", "websock.js", "des.js", "keysym.js",
64 "keysymdef.js", "xtscancodes.js", "keyboard.js",
65 "input.js", "display.js", "rfb.js", "inflator.js"],
66 'tests': ["playback.js"],
67 'recordings': [fname]});
6f4b1e40 68
4ed717ad
JM
69 } else {
70 message("Must specify data=FOO in query string.");
71 }
72
4ed717ad
JM
73 updateState = function (rfb, state, oldstate, msg) {
74 switch (state) {
75 case 'failed':
76 case 'fatal':
2f6a1c2b 77 message("noVNC sent '" + state + "' state during iteration " + iteration + " frame " + frame_idx);
4ed717ad
JM
78 test_state = 'failed';
79 break;
b8bd88d0 80 case 'loaded':
4ed717ad
JM
81 break;
82 }
83 if (typeof msg !== 'undefined') {
ae510306 84 document.getElementById('VNC_status').innerHTML = msg;
4ed717ad
JM
85 }
86 }
87
b8bd88d0 88 function start() {
ae510306
SR
89 document.getElementById('startButton').value = "Running";
90 document.getElementById('startButton').disabled = true;
4ed717ad 91
ae510306 92 iterations = document.getElementById('iterations').value;
4ed717ad 93 iteration = 0;
4ed717ad
JM
94 start_time = (new Date()).getTime();
95
ae510306 96 if (document.getElementById('mode1').checked) {
b8bd88d0
JM
97 message("Starting performance playback (fullspeed) [" + iterations + " iteration(s)]");
98 mode = 'perftest';
99 } else {
100 message("Starting realtime playback [" + iterations + " iteration(s)]");
101 mode = 'realtime';
4ed717ad
JM
102 }
103
efed2eea
SR
104 //recv_message = rfb.testMode(send_array, VNC_frame_encoding);
105
b8bd88d0 106 next_iteration();
4ed717ad
JM
107 }
108
b8bd88d0
JM
109 function finish() {
110 // Finished with all iterations
111 var total_time, end_time = (new Date()).getTime();
112 total_time = end_time - start_time;
4ed717ad 113
b8bd88d0
JM
114 iter_time = parseInt(total_time / iterations, 10);
115 message(iterations + " iterations took " + total_time + "ms, " +
116 iter_time + "ms per iteration");
fa8f14d5
JM
117 // Shut-off event interception
118 rfb.get_mouse().ungrab();
119 rfb.get_keyboard().ungrab();
ae510306
SR
120 document.getElementById('startButton').disabled = false;
121 document.getElementById('startButton').value = "Start";
4ed717ad 122
4ed717ad
JM
123 }
124
6f4b1e40 125 window.onscriptsload = function () {
8d5d2c82 126 iterations = WebUtil.getQueryVar('iterations', 3);
ae510306 127 document.getElementById('iterations').value = iterations;
8d5d2c82 128 mode = WebUtil.getQueryVar('mode', 3);
b8bd88d0 129 if (mode === 'realtime') {
ae510306 130 document.getElementById('mode2').checked = true;
b8bd88d0 131 } else {
ae510306 132 document.getElementById('mode1').checked = true;
b8bd88d0 133 }
4ed717ad
JM
134 if (fname) {
135 message("VNC_frame_data.length: " + VNC_frame_data.length);
4ed717ad 136 }
ae510306 137 document.getElementById('startButton').disabled = false;
4ed717ad
JM
138 }
139 </script>
140</html>