loleaflet/html/loleaflet.html.m4 | 2 ++ loleaflet/src/core/Socket.js | 26 +++++++++++++++++--------- loolwsd.xml.in | 1 + wsd/FileServer.cpp | 8 +++++++- wsd/LOOLWSD.cpp | 1 + 5 files changed, 28 insertions(+), 10 deletions(-)
New commits: commit 98617e40e2bc9ec5c0c1b5637099d74c5aab4515 Author: Michael Meeks <michael.me...@collabora.com> AuthorDate: Fri Nov 15 18:01:02 2019 +0000 Commit: Michael Meeks <michael.me...@collabora.com> CommitDate: Fri Nov 15 18:01:02 2019 +0000 Enable protocol debugging by default in debug mode. Also add a config option for logging.protocol - to help catch early protocol issues during startup. Change-Id: I6f0cc6dcf14b2797bc6b2bd36c44750d74eb0608 diff --git a/loleaflet/html/loleaflet.html.m4 b/loleaflet/html/loleaflet.html.m4 index 7af24cdf1..6fc5afbfa 100644 --- a/loleaflet/html/loleaflet.html.m4 +++ b/loleaflet/html/loleaflet.html.m4 @@ -224,6 +224,7 @@ ifelse(MOBILEAPP,[true], window.outOfFocusTimeoutSecs = 1000000; window.idleTimeoutSecs = 1000000; window.reuseCookies = ''; + window.protocolDebug = false; window.tileSize = 256;], [window.host = '%HOST%'; window.serviceRoot = '%SERVICE_ROOT%'; @@ -234,6 +235,7 @@ ifelse(MOBILEAPP,[true], window.outOfFocusTimeoutSecs = %OUT_OF_FOCUS_TIMEOUT_SECS%; window.idleTimeoutSecs = %IDLE_TIMEOUT_SECS%; window.reuseCookies = '%REUSE_COOKIES%'; + window.protocolDebug = %PROTOCOL_DEBUG%; window.tileSize = 256;]) syscmd([cat ]GLOBAL_JS)dnl </script> diff --git a/loleaflet/src/core/Socket.js b/loleaflet/src/core/Socket.js index 6512dd92d..f391e4108 100644 --- a/loleaflet/src/core/Socket.js +++ b/loleaflet/src/core/Socket.js @@ -140,9 +140,7 @@ L.Socket = L.Class.extend({ // Only attempt to log text frames, not binary ones. if (typeof msg === 'string') { L.Log.log(msg, L.OUTGOING, coords); - if (this._map._docLayer && this._map._docLayer._debug) { - console.log2(+new Date() + ' %cOUTGOING%c: ' + msg.concat(' ').replace(' ', '%c '), 'background:#fbb;color:black', 'color:red', 'color:black'); - } + this._logSocket('OUTGOING', msg); } } else { @@ -155,9 +153,7 @@ L.Socket = L.Class.extend({ // Only attempt to log text frames, not binary ones. if (typeof msg === 'string') { L.Log.log(msg, L.OUTGOING, coords); - if (this._map._docLayer && this._map._docLayer._debug) { - console.log2(+new Date() + ' %cOUTGOING%c: ' + msg.concat(' ').replace(' ', '%c '), 'background:#fbb;color:black', 'color:red', 'color:black'); - } + this._logSocket('OUTGOING', msg); } this.socket.send(msg); @@ -237,6 +233,20 @@ L.Socket = L.Class.extend({ return true; }, + _logSocket: function(type, msg) { + + var fullDebug = this._map._docLayer && this._map._docLayer._debug; + if (!window.protocolDebug && !fullDebug) + return; + + if (!fullDebug && msg.length > 256) // for reasonable performance. + msg = msg.substring(0,256) + '<truncated ' + (msg.length - 256) + 'chars>'; + + var color = type === 'OUTGOING' ? 'color:red' : 'color:blue'; + console.log2(+new Date() + ' %c' + type + '%c: ' + msg.concat(' ').replace(' ', '%c '), + 'background:#ddf;color:black', color, 'color:black'); + }, + _onMessage: function (e) { var imgBytes, index, textMsg, img; @@ -254,9 +264,7 @@ L.Socket = L.Class.extend({ textMsg = String.fromCharCode.apply(null, imgBytes.subarray(0, index)); } - if (this._map._docLayer && this._map._docLayer._debug) { - console.log2(+new Date() + ' %cINCOMING%c: ' + textMsg.concat(' ').replace(' ', '%c '), 'background:#ddf;color:black', 'color:blue', 'color:black'); - } + this._logSocket('INCOMING', textMsg); var command = this.parseServerCmd(textMsg); if (textMsg.startsWith('loolserver ')) { diff --git a/loolwsd.xml.in b/loolwsd.xml.in index 83c35b9ce..79a930d7f 100644 --- a/loolwsd.xml.in +++ b/loolwsd.xml.in @@ -41,6 +41,7 @@ <logging> <color type="bool">true</color> <level type="string" desc="Can be 0-8, or none (turns off logging), fatal, critical, error, warning, notice, information, debug, trace" default="@LOOLWSD_LOGLEVEL@">@LOOLWSD_LOGLEVEL@</level> + <protocol type="bool" descr="Enable minimal client-site JS protocol logging from the start">@ENABLE_DEBUG@</protocol> <file enable="@LOOLWSD_LOG_TO_FILE@"> <property name="path" desc="Log file path.">@LOOLWSD_LOGFILE@</property> <property name="rotation" desc="Log file rotation strategy. See Poco FileChannel.">never</property> diff --git a/wsd/FileServer.cpp b/wsd/FileServer.cpp index 32373f3b0..5f49450c1 100644 --- a/wsd/FileServer.cpp +++ b/wsd/FileServer.cpp @@ -633,6 +633,8 @@ void FileServerRequestHandler::preprocessFile(const HTTPRequest& request, Poco:: } } + const auto& config = Application::instance().config(); + Poco::replaceInPlace(preprocess, std::string("%ACCESS_TOKEN%"), escapedAccessToken); Poco::replaceInPlace(preprocess, std::string("%ACCESS_TOKEN_TTL%"), std::to_string(tokenTtl)); Poco::replaceInPlace(preprocess, std::string("%ACCESS_HEADER%"), escapedAccessHeader); @@ -640,13 +642,17 @@ void FileServerRequestHandler::preprocessFile(const HTTPRequest& request, Poco:: Poco::replaceInPlace(preprocess, std::string("%VERSION%"), std::string(LOOLWSD_VERSION_HASH)); Poco::replaceInPlace(preprocess, std::string("%SERVICE_ROOT%"), LOOLWSD::ServiceRoot); + std::string protocolDebug = "false"; + if (config.getBool("logging.protocol")) + protocolDebug = "true"; + Poco::replaceInPlace(preprocess, std::string("%PROTOCOL_DEBUG%"), protocolDebug); + static const std::string linkCSS("<link rel=\"stylesheet\" href=\"%s/loleaflet/" LOOLWSD_VERSION_HASH "/%s.css\">"); static const std::string scriptJS("<script src=\"%s/loleaflet/" LOOLWSD_VERSION_HASH "/%s.js\"></script>"); std::string brandCSS(Poco::format(linkCSS, LOOLWSD::ServiceRoot, std::string(BRANDING))); std::string brandJS(Poco::format(scriptJS, LOOLWSD::ServiceRoot, std::string(BRANDING))); - const auto& config = Application::instance().config(); #if ENABLE_SUPPORT_KEY const std::string keyString = config.getString("support_key", ""); SupportKey key(keyString); diff --git a/wsd/LOOLWSD.cpp b/wsd/LOOLWSD.cpp index 6672ec6d2..5a0bc7f60 100644 --- a/wsd/LOOLWSD.cpp +++ b/wsd/LOOLWSD.cpp @@ -797,6 +797,7 @@ void LOOLWSD::initialize(Application& self) { "child_root_path", "jails" }, { "file_server_root_path", "loleaflet/.." }, { "lo_jail_subpath", "lo" }, + { "logging.protocol", "false" }, { "logging.anonymize.filenames", "false" }, // Deprecated. { "logging.anonymize.usernames", "false" }, // Deprecated. // { "logging.anonymize.anonymize_user_data", "false" }, // Do not set to fallback on filename/username. _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits