From 4582f123c3710c31231fd196711f8641edf4b27e Mon Sep 17 00:00:00 2001 From: Michael Jumper Date: Wed, 12 Apr 2017 22:15:22 -0700 Subject: [PATCH] GUACAMOLE-250: Store image URL in client state only if such an image can be generated (non-zero width/height). --- .../src/main/webapp/modules/Client.js | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/guacamole-common-js/src/main/webapp/modules/Client.js b/guacamole-common-js/src/main/webapp/modules/Client.js index 68d218d7f..d4b3b7ebc 100644 --- a/guacamole-common-js/src/main/webapp/modules/Client.js +++ b/guacamole-common-js/src/main/webapp/modules/Client.js @@ -158,13 +158,16 @@ Guacamole.Client = function(tunnel) { var layer = layers[key]; var canvas = layer.toCanvas(); - // Store common layer/buffer data (dimensions and image contents) + // Store layer/buffer dimensions var exportLayer = { 'width' : layer.width, - 'height' : layer.height, - 'url' : canvas.toDataURL('image/png') + 'height' : layer.height }; + // Store layer/buffer image data, if it can be generated + if (layer.width && layer.height) + exportLayer.url = canvas.toDataURL('image/png'); + // Add layer properties if not a buffer nor the default layer if (index > 0) { exportLayer.x = layer.x; @@ -223,10 +226,14 @@ Guacamole.Client = function(tunnel) { var importLayer = state.layers[key]; var layer = getLayer(index); - // Initialize new layer with imported data + // Reset layer size display.resize(layer, importLayer.width, importLayer.height); - display.setChannelMask(layer, Guacamole.Layer.SRC); - display.draw(layer, 0, 0, importLayer.url); + + // Initialize new layer if it has associated data + if (importLayer.url) { + display.setChannelMask(layer, Guacamole.Layer.SRC); + display.draw(layer, 0, 0, importLayer.url); + } // Set layer-specific properties if not a buffer nor the default layer if (index > 0 && importLayer.parent >= 0) {