commit 0f9c8fc79b9e0c3411c2aedf18ad24b4596172a0
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Thu Feb 9 11:37:20 2017 -0500
Bug 21201: Avoid accessing contentWindow inside torbutton_resizelistener.
Also, use Cc, Ci, and Cr inside torbutton_resizelistener.
---
src/chrome/content/torbutton.js | 22 +++++++---------------
1 file changed, 7 insertions(+), 15 deletions(-)
diff --git a/src/chrome/content/torbutton.js b/src/chrome/content/torbutton.js
index 44f01f9..f521a6c 100644
--- a/src/chrome/content/torbutton.js
+++ b/src/chrome/content/torbutton.js
@@ -2204,26 +2204,16 @@ var torbutton_resizelistener =
{
QueryInterface: function(aIID)
{
- if (aIID.equals(Components.interfaces.nsIWebProgressListener) ||
- aIID.equals(Components.interfaces.nsISupportsWeakReference) ||
- aIID.equals(Components.interfaces.nsISupports))
+ if (aIID.equals(Ci.nsIWebProgressListener) ||
+ aIID.equals(Ci.nsISupportsWeakReference) ||
+ aIID.equals(Ci.nsISupports))
return this;
- throw Components.results.NS_NOINTERFACE;
+ throw Cr.NS_NOINTERFACE;
},
onLocationChange: function(aProgress, aRequest, aURI) {},
onStateChange: function(aProgress, aRequest, aFlag, aStatus) {
- if (aFlag & Components.interfaces.nsIWebProgressListener.STATE_STOP) {
- var progress =
- Components.classes["@mozilla.org/docloaderservice;1"].
- getService(Components.interfaces.nsIWebProgress);
- var win = getBrowser().contentWindow;
- if (!win || typeof(win) == "undefined") {
- torbutton_log(5, "No initial browser content window?");
- progress.removeProgressListener(this);
- return;
- }
-
+ if (aFlag & Ci.nsIWebProgressListener.STATE_STOP) {
m_tb_resize_handler = function() {
if (window.windowState === 1) {
if (m_tb_prefs.
@@ -2301,6 +2291,8 @@ var torbutton_resizelistener =
// event got fired. Thus, we have the rather klunky setTimeout() call.
window.addEventListener("sizemodechange", m_tb_resize_handler, false);
+ let progress = Cc["@mozilla.org/docloaderservice;1"]
+ .getService(Ci.nsIWebProgress);
progress.removeProgressListener(this);
}
}, // onStateChange