[tor-commits] [torbutton/master] Bug 13138: ESR31-about:tor shows "Tor is not working"

mikeperry at torproject.org mikeperry at torproject.org
Tue Sep 30 00:23:25 UTC 2014


commit 0467379f524273ed810b5c21d6a8eb16d00445cb
Author: Kathy Brade <brade at pearlcrescent.com>
Date:   Thu Sep 11 14:10:55 2014 -0400

    Bug 13138: ESR31-about:tor shows "Tor is not working"
    
    In Firefox 26 and newer, the BrowserOnAboutPageLoad() function that
    Torbutton previously used to detect about:tor page loads has been removed.
    The new approach is to have about:tor dispatch a custom event (which is
    the same approach Mozilla uses for about:home).
---
 src/chrome/content/aboutTor/aboutTor.xhtml |    7 ++++++-
 src/chrome/content/torbutton.js            |    9 +++++----
 2 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/src/chrome/content/aboutTor/aboutTor.xhtml b/src/chrome/content/aboutTor/aboutTor.xhtml
index f8f829d..c13f60e 100644
--- a/src/chrome/content/aboutTor/aboutTor.xhtml
+++ b/src/chrome/content/aboutTor/aboutTor.xhtml
@@ -21,7 +21,7 @@
   <title>&aboutTor.title;</title>
   <link rel="stylesheet" type="text/css" media="all"
         href="chrome://torbutton/skin/aboutTor.css"/>
-<script type="text/javascript">
+<script type="text/javascript;version=1.7">
  <![CDATA[
 function onLoad()
 {
@@ -125,6 +125,11 @@ function insertPropertyStrings()
   } catch(e) {};
 }
 
+window.addEventListener("pageshow", function() {
+  let evt = new CustomEvent("AboutTorLoad", { bubbles: true });
+  document.dispatchEvent(evt);
+});
+
 ]]>
 </script>
 </head>
diff --git a/src/chrome/content/torbutton.js b/src/chrome/content/torbutton.js
index 4ca6614..9b7ade2 100644
--- a/src/chrome/content/torbutton.js
+++ b/src/chrome/content/torbutton.js
@@ -506,9 +506,10 @@ function torbutton_init() {
 		}
     }
 
-    // Add our hook into about page load
-    m_tb_orig_BrowserOnAboutPageLoad = window.BrowserOnAboutPageLoad;
-    window.BrowserOnAboutPageLoad = torbutton_override_BrowserOnAboutPageLoad;
+    // Add event listener for about:tor page loads.
+    document.addEventListener("AboutTorLoad", function(aEvent) {
+      torbutton_on_abouttor_load(aEvent.target);
+    }, false, true);
 
     // initialize preferences before we start our prefs observer
     torbutton_init_prefs();
@@ -966,7 +967,7 @@ function torbutton_update_abouttor_arrow(aDoc) {
   } catch(e) {}
 }
 
-function torbutton_override_BrowserOnAboutPageLoad(aDoc) {
+function torbutton_on_abouttor_load(aDoc) {
   if (torbutton_is_abouttor_doc(aDoc) &&
       !aDoc.documentElement.hasAttribute("aboutTorLoaded")) {
     aDoc.documentElement.setAttribute("aboutTorLoaded", true);





More information about the tor-commits mailing list