[Libreoffice-commits] online.git: Branch 'distro/collabora/collabora-online-2-1' - loleaflet/src

Ashod Nakashian ashod.nakashian at collabora.co.uk
Tue May 23 09:12:59 UTC 2017


 loleaflet/src/core/Socket.js |    6 ++++++
 loleaflet/src/map/Map.js     |   13 +++++++++++++
 2 files changed, 19 insertions(+)

New commits:
commit 12d542a9e8eb2d4d97c860b041a723e44de990b6
Author: Ashod Nakashian <ashod.nakashian at collabora.co.uk>
Date:   Sun May 21 21:51:49 2017 -0400

    loleaflet: correctly reload after server recycling
    
    When the server recylces, the client should
    transparently restore connection when the
    server is back on. This was broken because
    of the different times when moving in and out
    of focus for dimming/inactivity purposes.
    
    Here we track server recycling state
    separately, and skip the dimming/inactivity
    checks in that case.
    
    Reviewed-on: https://gerrit.libreoffice.org/37892
    Reviewed-by: Ashod Nakashian <ashnakash at gmail.com>
    Tested-by: Ashod Nakashian <ashnakash at gmail.com>
    (cherry picked from commit 7bc5989aca61b128ff721f52070b1b5b19adbf94)
    
    Change-Id: I432b97b3278b5a6846c8d2c4fa964184f156d5f3
    Reviewed-on: https://gerrit.libreoffice.org/37901
    Reviewed-by: Jan Holesovsky <kendy at collabora.com>
    Tested-by: Jan Holesovsky <kendy at collabora.com>

diff --git a/loleaflet/src/core/Socket.js b/loleaflet/src/core/Socket.js
index a2ef4f27..0e8374d4 100644
--- a/loleaflet/src/core/Socket.js
+++ b/loleaflet/src/core/Socket.js
@@ -16,6 +16,7 @@ L.Socket = L.Class.extend({
 	},
 
 	initialize: function (map) {
+		console.debug('socket.initialize:');
 		this._map = map;
 		try {
 			if (map.options.permission) {
@@ -109,6 +110,8 @@ L.Socket = L.Class.extend({
 	},
 
 	_onSocketOpen: function () {
+		console.debug('_onSocketOpen:');
+		this._map._serverRecycling = false;
 		// Always send the protocol version number.
 		// TODO: Move the version number somewhere sensible.
 		this._doSend('loolclient ' + this.ProtocolVersionNumber);
@@ -236,6 +239,7 @@ L.Socket = L.Class.extend({
 				msg = _('Server is recycling and will be available shortly');
 
 				this._map._active = false;
+				this._map._serverRecycling = true;
 
 				// Prevent reconnecting the world at the same time.
 				var min = 5000;
@@ -552,11 +556,13 @@ L.Socket = L.Class.extend({
 	},
 
 	_onSocketError: function () {
+		console.debug('_onSocketError:');
 		this._map.hideBusy();
 		// Let onclose (_onSocketClose) report errors.
 	},
 
 	_onSocketClose: function (e) {
+		console.debug('_onSocketClose:');
 		var isActive = this._map._active;
 		this._map.hideBusy();
 		this._map._active = false;
diff --git a/loleaflet/src/map/Map.js b/loleaflet/src/map/Map.js
index 0e8d6311..090bafab 100644
--- a/loleaflet/src/map/Map.js
+++ b/loleaflet/src/map/Map.js
@@ -71,6 +71,7 @@ L.Map = L.Evented.extend({
 		this._fatal = false;
 		this._enabled = true;
 		this._debugAlwaysActive = false; // disables the dimming / document inactivity when true
+		this._serverRecycling = false;
 
 		vex.dialogID = -1;
 
@@ -777,6 +778,10 @@ L.Map = L.Evented.extend({
 	},
 
 	_activate: function () {
+		if (this._serverRecycling) {
+			return;
+		}
+
 		console.debug('_activate:');
 		clearTimeout(vex.timer);
 
@@ -867,6 +872,10 @@ L.Map = L.Evented.extend({
 	},
 
 	_startInactiveTimer: function () {
+		if (this._serverRecycling) {
+			return;
+		}
+
 		console.debug('_startInactiveTimer:');
 		clearTimeout(vex.timer);
 		var map = this;
@@ -876,6 +885,10 @@ L.Map = L.Evented.extend({
 	},
 
 	_deactivate: function () {
+		if (this._serverRecycling) {
+			return;
+		}
+
 		console.debug('_deactivate:');
 		clearTimeout(vex.timer);
 


More information about the Libreoffice-commits mailing list