From 44beed6216439bb743232c3a177270f181a86511 Mon Sep 17 00:00:00 2001 From: paweldomas Date: Thu, 1 Dec 2016 10:56:35 -0600 Subject: [PATCH] feat: distinguish between network and infra... failure --- conference.js | 9 +++++++-- logging_config.js | 7 +++---- modules/UI/UI.js | 7 +++++-- modules/UI/reload_overlay/PageReloadOverlay.js | 5 ++++- 4 files changed, 19 insertions(+), 9 deletions(-) diff --git a/conference.js b/conference.js index 66c83858e..cec545002 100644 --- a/conference.js +++ b/conference.js @@ -387,7 +387,8 @@ class ConferenceConnector { // the app. Both the errors above are unrecoverable from the library // perspective. room.leave().then(() => connection.disconnect()); - APP.UI.showPageReloadOverlay(err); + APP.UI.showPageReloadOverlay( + false /* not a network type of failure */, err); break; case ConferenceErrors.CONFERENCE_MAX_USERS: @@ -545,12 +546,16 @@ export default { */ _bindConnectionFailedHandler (connection) { const handler = function (error, errMsg) { - if (ConnectionErrors.OTHER_ERROR === error) { + if (ConnectionErrors.OTHER_ERROR === error || + ConnectionErrors.SERVER_ERROR === error) { // - item-not-found // - connection dropped(closed by Strophe unexpectedly // possible due too many transport errors) + const isNetworkFailure + = error !== ConnectionErrors.SERVER_ERROR; logger.error("XMPP connection error: " + errMsg); APP.UI.showPageReloadOverlay( + isNetworkFailure, "xmpp-conn-dropped:" + errMsg); connection.removeEventListener( ConnectionEvents.CONNECTION_FAILED, handler); diff --git a/logging_config.js b/logging_config.js index ab2ef1d76..54103c1e8 100644 --- a/logging_config.js +++ b/logging_config.js @@ -1,10 +1,9 @@ // Logging configuration var loggingConfig = { // eslint-disable-line no-unused-vars //default log level for the app and lib-jitsi-meet - //defaultLogLevel: 'trace', + defaultLogLevel: 'trace', // Option to disable LogCollector (which stores the logs on CallStats) //disableLogCollector: true, - // Examples: - //'modules/version/ComponentsVersions.js': 'info', - //'modules/xmpp/ChatRoom.js': 'log' + // Logging level adjustments for verbose modules: + 'modules/xmpp/strophe.util.js': 'log' }; \ No newline at end of file diff --git a/modules/UI/UI.js b/modules/UI/UI.js index dbd30fdd1..fe61aa21a 100644 --- a/modules/UI/UI.js +++ b/modules/UI/UI.js @@ -1093,12 +1093,15 @@ UI.notifyFocusDisconnected = function (focus, retrySec) { * Notify the user that the video conferencing service is badly broken and * the page should be reloaded. * + * @param {boolean} isNetworkFailure true indicates that it's caused by + * network related failure or false when it's the infrastructure. * @param {string} a label string identifying the reason for the page reload * which will be included in details of the log event. */ -UI.showPageReloadOverlay = function (reason) { +UI.showPageReloadOverlay = function (isNetworkFailure, reason) { // Reload the page after 10 - 30 seconds - PageReloadOverlay.show(10 + RandomUtil.randomInt(0, 20), reason); + PageReloadOverlay.show( + 10 + RandomUtil.randomInt(0, 20), isNetworkFailure, reason); }; /** diff --git a/modules/UI/reload_overlay/PageReloadOverlay.js b/modules/UI/reload_overlay/PageReloadOverlay.js index 856f53f65..7a1d1db37 100644 --- a/modules/UI/reload_overlay/PageReloadOverlay.js +++ b/modules/UI/reload_overlay/PageReloadOverlay.js @@ -113,10 +113,13 @@ export default { * * @param {number} timeoutSeconds how many seconds before the conference * reload will happen. + * @param {boolean} isNetworkFailure true indicates that it's + * caused by network related failure or false when it's + * the infrastructure. * @param {string} reason a label string identifying the reason for the page * reload which will be included in details of the log event */ - show(timeoutSeconds, reason) { + show(timeoutSeconds, isNetworkFailure, reason) { if (!overlay) { overlay = new PageReloadOverlayImpl(timeoutSeconds);