Fixed vnc_perf.html

This commit updates vnc_perf.html so that it works with the current
version of noVNC.  It also introduces a utility to convert noVNC session
recordings recorded in base64-mode to binary-mode recordings, since noVNC
no longer supports base64-mode.

Fixes #479.
This commit is contained in:
Solly Ross 2016-01-06 13:26:26 -05:00
parent b56cdf279d
commit 7be8dae27e
3 changed files with 32 additions and 11 deletions

View File

@ -38,17 +38,23 @@
<script type="text/javascript">
var INCLUDE_URI= "../include/";
// TODO: Data file should override
var VNC_frame_encoding = "base64";
var VNC_frame_encoding = "binary";
</script>
<script src="../include/util.js"></script>
<script src="../include/playback.js"></script>
<script src="../data/multi.js"></script>
<script src="../include/webutil.js"></script>
<script>
// Load supporting scripts
Util.load_scripts(["webutil.js", "base64.js", "websock.js", "des.js",
"keysymdef.js", "keyboard.js", "input.js", "display.js",
"rfb.js"]);
var fname = WebUtil.getQueryVar('data', null);
if (fname) {
msg("Loading " + fname);
// Load supporting scripts
Util.load_scripts(["base64.js", "websock.js", "des.js", "keysym.js",
"keysymdef.js", "keyboard.js", "input.js", "display.js",
"rfb.js", "playback.js", "inflator.js", fname]);
} else {
msg("Must specifiy data=FOO.js in query string.");
}
var start_time, VNC_frame_data, pass, passes, encIdx,
encOrder = ['raw', 'rre', 'hextile', 'tightpng', 'copyrect'],
@ -201,9 +207,7 @@
enc = encOrder[i];
dbgmsg(" " + enc + ": " + VNC_frame_data_multi[enc].length);
}
rfb = new RFB({'target': $D('VNC_canvas'),
'onUpdateState': updateState});
rfb.testMode(send_array, VNC_frame_encoding);
$D('startButton').disabled = false;
}
</script>
</html>

View File

@ -40,7 +40,7 @@
<script type="text/javascript">
var INCLUDE_URI= "../include/";
// TODO: Data file should override
var VNC_frame_encoding = "base64";
var VNC_frame_encoding = "binary";
</script>
<script src="../include/util.js"></script>
<script src="../include/webutil.js"></script>

17
utils/b64-to-binary.pl Executable file
View File

@ -0,0 +1,17 @@
#!/usr/bin/env perl
use MIME::Base64;
for (<>) {
unless (/^'([{}])(\d+)\1(.+?)',$/) {
print;
next;
}
my ($dir, $amt, $b64) = ($1, $2, $3);
my $decoded = MIME::Base64::decode($b64) or die "Could not base64-decode line `$_`";
my $decoded_escaped = join "", map { "\\x$_" } unpack("(H2)*", $decoded);
print "'${dir}${amt}${dir}${decoded_escaped}',\n";
}