Seek operations should be atomic with respect to the various timeouts.
@@ -330,11 +330,14 @@ Guacamole.SessionRecording = function SessionRecording(tunnel) {
*/
var seekToFrame = function seekToFrame(index, callback) {
- var startIndex;
-
// Abort any in-progress seek
abortSeek();
+ // Replay frames asynchronously
+ seekTimeout = window.setTimeout(function continueSeek() {
+
+ var startIndex;
+
// Back up until startIndex represents current state
for (startIndex = index; startIndex >= 0; startIndex--) {
@@ -357,9 +360,6 @@ Guacamole.SessionRecording = function SessionRecording(tunnel) {
// Advance to frame index after current state
startIndex++;
- // Replay frames asynchronously
- seekTimeout = window.setTimeout(function continueSeek() {
-
var startTime = new Date().getTime();
// Replay any applicable incremental frames
