From 27b0f7357f5941115ca02b263c766d5bbefb36f5 Mon Sep 17 00:00:00 2001 From: Jacob Hoffman-Andrews Date: Fri, 5 Dec 2014 15:07:07 -0800 Subject: [PATCH 1/3] Convert SSL Observatory to use getBrowserForChannel. --- .../test_profile_skeleton/prefs.js | 6 ++++++ src/components/ssl-observatory.js | 15 +++++++++++---- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/https-everywhere-tests/test_profile_skeleton/prefs.js b/https-everywhere-tests/test_profile_skeleton/prefs.js index eeb551300b4b..4ea4f53ce0d8 100644 --- a/https-everywhere-tests/test_profile_skeleton/prefs.js +++ b/https-everywhere-tests/test_profile_skeleton/prefs.js @@ -12,3 +12,9 @@ user_pref("general.warnOnAboutConfig", false); // Minimize unnecesary requests. user_pref("browser.safebrowsing.enabled", false); user_pref("browser.safebrowsing.malware.enabled", false); +// These two preferences allow debugging the extension +// using Tools > Web Developer > Browser Toolbox +// (Note: Since this is not an SDK extension, you can't use the Addon +// Debugger, but the Browser Toolbox is just about as good). +user_pref("devtools.chrome.enabled", true); +user_pref("devtools.debugger.remote-enabled", true); diff --git a/src/components/ssl-observatory.js b/src/components/ssl-observatory.js index f23a0f28dbd7..7d57ebae7d98 100644 --- a/src/components/ssl-observatory.js +++ b/src/components/ssl-observatory.js @@ -502,10 +502,13 @@ SSLObservatory.prototype = { // active now return this.everSeenPrivateBrowsing; } - var win = this.HTTPSEverywhere.getWindowForChannel(channel); - if (!win) return this.everSeenPrivateBrowsing; // windowless request + var browser = this.HTTPSEverywhere.getBrowserForChannel(channel); + // windowless request + if (!browser || !browser.contentWindow) { + return this.everSeenPrivateBrowsing; + } - if (PrivateBrowsingUtils.isWindowPrivate(win)) { + if (PrivateBrowsingUtils.isWindowPrivate(browser.contentWindow)) { this.everSeenPrivateBrowsing = true; return true; } @@ -816,7 +819,11 @@ SSLObservatory.prototype = { var that = this; // We have neither SSLObservatory nor this in scope in the lambda - var win = channel ? this.HTTPSEverywhere.getWindowForChannel(channel) : null; + var win = null + if (channel) { + var browser = this.HTTPSEverywhere.getBrowserForChannel(channel); + var win = browser.contentWindow; + } var req = this.buildRequest(params); req.timeout = TIMEOUT; From 78a8c441bd11b3fe2f163567a93789e2b3f64f36 Mon Sep 17 00:00:00 2001 From: Jacob Hoffman-Andrews Date: Thu, 8 Jan 2015 16:44:22 -0800 Subject: [PATCH 2/3] Only dereference browser if it is defined. --- src/components/ssl-observatory.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/components/ssl-observatory.js b/src/components/ssl-observatory.js index 7e6d0046cff4..6499cd006b1b 100644 --- a/src/components/ssl-observatory.js +++ b/src/components/ssl-observatory.js @@ -621,7 +621,9 @@ SSLObservatory.prototype = { var win = null if (channel) { var browser = this.HTTPSEverywhere.getBrowserForChannel(channel); - var win = browser.contentWindow; + if (browser) { + var win = browser.contentWindow; + } } var req = this.buildRequest(params); req.timeout = TIMEOUT; From 63fc0c367220576a64f95f25f063dea7d508f223 Mon Sep 17 00:00:00 2001 From: Jacob Hoffman-Andrews Date: Mon, 12 Jan 2015 17:14:38 -0800 Subject: [PATCH 3/3] Add semicolon. --- addon-sdk | 2 +- src/components/ssl-observatory.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/addon-sdk b/addon-sdk index 05dab6aeb509..12f7d53e8b5f 160000 --- a/addon-sdk +++ b/addon-sdk @@ -1 +1 @@ -Subproject commit 05dab6aeb50918d4c788df9c5da39007b4fca335 +Subproject commit 12f7d53e8b5fc015a15fa4a30fa588e81e9e9b2e diff --git a/src/components/ssl-observatory.js b/src/components/ssl-observatory.js index 6499cd006b1b..454ce50b11d6 100644 --- a/src/components/ssl-observatory.js +++ b/src/components/ssl-observatory.js @@ -618,7 +618,7 @@ SSLObservatory.prototype = { var HTTPSEverywhere = CC["@eff.org/https-everywhere;1"] .getService(Components.interfaces.nsISupports) .wrappedJSObject; - var win = null + var win = null; if (channel) { var browser = this.HTTPSEverywhere.getBrowserForChannel(channel); if (browser) {