summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSolly Ross <sross@redhat.com>2016-01-06 13:26:26 -0500
committerSolly Ross <sross@redhat.com>2016-01-06 13:32:05 -0500
commit4ee55e01266769ea0711f74464162ba190a7e3a9 (patch)
treec551b2871e800fc8d7e663b755ea3e31c642ff99
parent464944844f039eea05fa19b0d1747d7ac28c4ac3 (diff)
downloadnovnc-4ee55e01266769ea0711f74464162ba190a7e3a9.tar.gz
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.
-rw-r--r--tests/vnc_perf.html24
-rw-r--r--tests/vnc_playback.html2
-rwxr-xr-xutils/b64-to-binary.pl17
3 files changed, 32 insertions, 11 deletions
diff --git a/tests/vnc_perf.html b/tests/vnc_perf.html
index 5129578..9acea88 100644
--- a/tests/vnc_perf.html
+++ b/tests/vnc_perf.html
@@ -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>
diff --git a/tests/vnc_playback.html b/tests/vnc_playback.html
index f36f1e6..cfc5953 100644
--- a/tests/vnc_playback.html
+++ b/tests/vnc_playback.html
@@ -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>
diff --git a/utils/b64-to-binary.pl b/utils/b64-to-binary.pl
new file mode 100755
index 0000000..280e28c
--- /dev/null
+++ b/utils/b64-to-binary.pl
@@ -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";
+}