+/* global VNC_frame_data, VNC_frame_encoding */
+
import * as WebUtil from '../app/webutil.js';
import RecordingPlayer from './playback.js';
-var frames = null;
-var encoding = null;
+let frames = null;
+let encoding = null;
function message(str) {
- console.log(str);
- var cell = document.getElementById('messages');
+ const cell = document.getElementById('messages');
cell.textContent += str + "\n";
cell.scrollTop = cell.scrollHeight;
}
message("Loading " + fname);
return new Promise(function (resolve, reject) {
- var script = document.createElement("script");
+ const script = document.createElement("script");
script.onload = resolve;
script.onerror = reject;
document.body.appendChild(script);
}
function enableUI() {
- var iterations = WebUtil.getQueryVar('iterations', 3);
+ const iterations = WebUtil.getQueryVar('iterations', 3);
document.getElementById('iterations').value = iterations;
- var mode = WebUtil.getQueryVar('mode', 3);
+ const mode = WebUtil.getQueryVar('mode', 3);
if (mode === 'realtime') {
document.getElementById('mode2').checked = true;
} else {
this._nextIteration();
},
- _disconnected: function (rfb, reason, frame) {
- if (reason) {
+ _disconnected: function (clean, frame) {
+ if (!clean) {
this._state = 'failed';
}
- var evt = new Event('rfbdisconnected');
- evt.reason = reason;
+ const evt = new Event('rfbdisconnected');
+ evt.clean = clean;
evt.frame = frame;
+ evt.iteration = this._iteration;
this.onrfbdisconnected(evt);
},
const iterations = document.getElementById('iterations').value;
- var mode;
+ let mode;
if (document.getElementById('mode1').checked) {
message(`Starting performance playback (fullspeed) [${iterations} iteration(s)]`);
message(`Iteration ${evt.number} took ${evt.duration}ms`);
};
player.onrfbdisconnected = function (evt) {
- if (evt.reason) {
+ if (!evt.clean) {
message(`noVNC sent disconnected during iteration ${evt.iteration} frame ${evt.frame}`);
}
};