commit e123feb185fa7cb8bf9daced6718c9801fe3e808 Author: Arthur Edelstein arthuredelstein@gmail.com Date: Wed Jan 6 10:59:45 2016 -0800
Bug 16990: Correctly get proxyInfo from multi-part channel --- src/chrome/content/tor-circuit-display.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/src/chrome/content/tor-circuit-display.js b/src/chrome/content/tor-circuit-display.js index 94a5346..d5ef3d3 100644 --- a/src/chrome/content/tor-circuit-display.js +++ b/src/chrome/content/tor-circuit-display.js @@ -228,11 +228,11 @@ let getSOCKSCredentialsForBrowser = function (browser) { if (docShell === null) return null; let channel = docShell.currentDocumentChannel; if (channel === null) return null; - try { - channel.QueryInterface(Ci.nsIProxiedChannel); - } catch (e) { - return null; + if (channel instanceof Ci.nsIMultiPartChannel) { + channel = channel.baseChannel; } + if (channel === null) return null; + if (!(channel instanceof Ci.nsIProxiedChannel)) return null; let proxyInfo = channel.proxyInfo; if (proxyInfo === null) return null; return proxyInfo.username + ":" + proxyInfo.password; @@ -271,6 +271,8 @@ let updateCircuitDisplay = function () { "<li>" + uiString("internet") + "</li>"; document.getElementById("circuit-nodes").innerHTML = nodeInnerHTML; } + } else { + logger.eclog(5, "no SOCKS credentials found for current document."); } // Only show the Tor circuit if we have credentials and node data. showCircuitDisplay(credentials && nodeData);