[tor-commits] [torbutton/master] Bug 16730: Reset NoScript whitelist on upgrade

gk at torproject.org gk at torproject.org
Fri Aug 7 19:25:22 UTC 2015


commit 59ef74948aeea8d73f8833ab9e918cd1b70b6a32
Author: Georg Koppen <gk at torproject.org>
Date:   Fri Aug 7 15:09:42 2015 +0000

    Bug 16730: Reset NoScript whitelist on upgrade
    
    This fixes 16722 as well and resets the toolbar UI to kill
    "Share this page", but that still requires another restart :/.
    
    This is basically Mike's idea and code.
---
 src/chrome/content/torbutton.js         |   38 +++++++++++++++++++++++++++++++
 src/defaults/preferences/preferences.js |    3 +++
 2 files changed, 41 insertions(+)

diff --git a/src/chrome/content/torbutton.js b/src/chrome/content/torbutton.js
index 1d81960..28da420 100644
--- a/src/chrome/content/torbutton.js
+++ b/src/chrome/content/torbutton.js
@@ -2864,6 +2864,41 @@ function torbutton_restore_cookies(tor_enabled)
     }
 }
 
+// Bug 1506 P1: This function just cleans up prefs that got set badly in previous releases
+function torbutton_fixup_old_prefs()
+{
+    if(m_tb_prefs.getIntPref('extensions.torbutton.pref_fixup_version') < 1) {
+        // TBB 5.0a3 had bad Firefox code that silently flipped this pref on us
+        if (m_tb_prefs.prefHasUserValue("browser.newtabpage.enhanced")) {
+            m_tb_prefs.clearUserPref("browser.newtabpage.enhanced");
+            // TBB 5.0a3 users had all the necessary data cached in
+            // directoryLinks.json. This meant that resetting the pref above
+            // alone was not sufficient as the tiles features uses the cache
+            // even if the pref indicates that feature should be disabled.
+            // We flip the preference below as this forces a refetching which
+            // effectively results in an empty JSON file due to our spoofed
+            // URLs.
+            let matchOS = m_tb_prefs.getBoolPref("intl.locale.matchOS");
+            m_tb_prefs.setBoolPref("intl.locale.matchOS", !matchOS);
+            m_tb_prefs.setBoolPref("intl.locale.matchOS", matchOS);
+        }
+
+        // Prior to TBB 5.0, NoScript was allowed to update its whitelist. This caused
+        // odd things to appear in people's whitelists.
+        if (m_tb_prefs.prefHasUserValue("capability.policy.maonoscript.sites")) {
+            m_tb_prefs.clearUserPref("capability.policy.maonoscript.sites");
+        }
+
+        // For some reason, the Share This Page button also survived the
+        // TBB 5.0a4 update's attempt to remove it.
+        if (m_tb_prefs.prefHasUserValue("browser.uiCustomization.state")) {
+            m_tb_prefs.clearUserPref("browser.uiCustomization.state");
+        }
+
+        m_tb_prefs.setIntPref('extensions.torbutton.pref_fixup_version', 1);
+    }
+}
+
 // ---------------------- Event handlers -----------------
 
 // Bug 1506 P1/P3: This removes any platform-specific junk
@@ -2971,6 +3006,9 @@ function torbutton_do_startup()
           prompts.alert(null, title, warning);
         }
 
+        // For general pref fixups to handle pref damage in older versions
+        torbutton_fixup_old_prefs();
+
         m_tb_prefs.setBoolPref("extensions.torbutton.startup", false);
     }
 }
diff --git a/src/defaults/preferences/preferences.js b/src/defaults/preferences/preferences.js
index 6b4ec0c..ce66d0e 100644
--- a/src/defaults/preferences/preferences.js
+++ b/src/defaults/preferences/preferences.js
@@ -225,3 +225,6 @@ pref("spellchecker.dictionary", "chrome://torbutton/locale/browser.properties");
 
 pref("extensions.torbutton.window.maxHeight", 1000);
 pref("extensions.torbutton.window.maxWidth", 1000);
+
+// This pref specifies an ad-hoc "version" for various pref update hacks we need to do
+pref("extensions.torbutton.pref_fixup_version", 0);



More information about the tor-commits mailing list