commit 40751d8580192902227a447ee89d8018a34800c9 Author: Kathy Brade brade@pearlcrescent.com Date: Thu Jul 31 14:18:56 2014 -0400
Bug 9516: Show Tor log in TorBrowser
Provide a stopgap solution: route all tor messages captured by Tor Launcher to the Browser Console. --- src/components/tl-protocol.js | 16 ++++++++++++++++ 1 file changed, 16 insertions(+)
diff --git a/src/components/tl-protocol.js b/src/components/tl-protocol.js index bcff6ab..0e78736 100644 --- a/src/components/tl-protocol.js +++ b/src/components/tl-protocol.js @@ -25,6 +25,12 @@ function TorProtocolService()
try { + this.mConsoleSvc = Cc["@mozilla.org/consoleservice;1"] + .getService(Ci.nsIConsoleService); + } catch (e) {} + + try + { var env = Cc["@mozilla.org/process/environment;1"] .getService(Ci.nsIEnvironment);
@@ -497,6 +503,7 @@ TorProtocolService.prototype =
// Private Member Variables //////////////////////////////////////////////// + mConsoleSvc: null, mControlPort: null, mControlHost: null, mControlPassword: null, // JS string that contains hex-encoded password. @@ -1275,6 +1282,15 @@ TorProtocolService.prototype = this.mTorLog.splice(0, 1); } this.mTorLog.push(logObj); + + // We could use console.info(), console.error(), and console.warn() + // but when those functions are used the console output includes + // extraneous double quotes. See Mozilla bug # 977586. + if (this.mConsoleSvc) + { + let s = "Tor " + logObj.type + ": " + logObj.msg; + this.mConsoleSvc.logStringMessage(s); + } break; case "STATUS_CLIENT": this._parseBootstrapStatus(msg);