[or-cvs] [torbutton/master 22/31] Simplify the crash recovery code some more.

mikeperry at torproject.org mikeperry at torproject.org
Tue Jan 4 07:02:19 UTC 2011


Author: Mike Perry <mikeperry-git at fscked.org>
Date: Wed, 29 Dec 2010 03:19:23 -0600
Subject: Simplify the crash recovery code some more.
Commit: 2e10d59e271bd02810d76f9733a3ad6706932b2f

Eliminates weird behaviors for updating addons.
---
 src/chrome/content/torbutton.js  |   16 ++++------------
 src/components/crash-observer.js |   30 ++++++++++++------------------
 2 files changed, 16 insertions(+), 30 deletions(-)

diff --git a/src/chrome/content/torbutton.js b/src/chrome/content/torbutton.js
index db9fb45..7f05121 100644
--- a/src/chrome/content/torbutton.js
+++ b/src/chrome/content/torbutton.js
@@ -259,16 +259,6 @@ var torbutton_unique_pref_observer =
 
                 break;
 
-            // These two are set from the Torbutton crash-observer component
-            // (which itself just wrappes the sessionstartup firefox
-            // component to get doRestore notification)
-            case "extensions.torbutton.crashed":
-                torbutton_crash_recover();
-                break;
-            case "extensions.torbutton.noncrashed":
-               torbutton_set_initial_state();
-               break;
-
             case "extensions.torbutton.set_uagent":
                 // If the user turns off the pref, reset their user agent to
                 // vanilla
@@ -3309,9 +3299,9 @@ function torbutton_do_main_window_startup()
 
 function torbutton_set_initial_state() {
     if(m_tb_prefs.getBoolPref("extensions.torbutton.noncrashed")) {
-        var restore_tor = m_tb_prefs.getIntPref("extensions.torbutton.restore_tor");
+        var restore_tor = m_tb_prefs.getBoolPref("extensions.torbutton.restore_tor");
         
-        torbutton_log(3, "Setting initial state to: "+restore_tor);
+        torbutton_log(3, "Setting initial tor state to: "+restore_tor);
 
         torbutton_conditional_set(restore_tor);
 
@@ -3402,6 +3392,7 @@ function torbutton_do_startup()
           torbutton_new_google_cookie();
         }
 
+
         m_tb_prefs.setBoolPref("extensions.torbutton.startup", false);
     }
 }
@@ -3530,6 +3521,7 @@ function torbutton_new_window(event)
 
     torbutton_do_startup();
     torbutton_crash_recover();
+    torbutton_set_initial_state();
 
     torbutton_get_plugin_mimetypes();
 
diff --git a/src/components/crash-observer.js b/src/components/crash-observer.js
index 5f9c291..24ec204 100644
--- a/src/components/crash-observer.js
+++ b/src/components/crash-observer.js
@@ -5,9 +5,7 @@
  * pref event) that the browser in fact crashed.
  *
  * XXX: Cases to test (each during Tor and Non-Tor)
- *    0. Crash
- *       * XXX: Sometimes just saves window list..
- *    2. Upgrade
+ *    2. Upgrade: XXX: Fails to reset tor state.. no crash detected..
  *    1. Uninstall
  *    3. Profile restore without crash
  *    4. Fresh install
@@ -25,17 +23,15 @@ const kMODULE_CID = Components.ID("06322def-6fde-4c06-aef6-47ae8e799629");
 const TORBUTTON_EXTENSION_UUID = "{E0204BD5-9D31-402B-A99D-A6AA8FFEBDCA}";
 
 function CrashObserver() {
-    dump("Crash observer\n\n\n");
     this._uninstall = false;
     this.logger = Components.classes["@torproject.org/torbutton-logger;1"]
          .getService(Components.interfaces.nsISupports).wrappedJSObject;
     this._prefs = Components.classes["@mozilla.org/preferences-service;1"]
          .getService(Components.interfaces.nsIPrefBranch);
-    this.logger.log(3, "AppObserver created");
+    this.logger.log(3, "Crash Observer created");
 
     var observerService = Cc["@mozilla.org/observer-service;1"].
             getService(Ci.nsIObserverService);
-    observerService.addObserver(this, "final-ui-startup", false);
     observerService.addObserver(this, "em-action-requested", false);
     observerService.addObserver(this, "quit-application-granted", false);
 }
@@ -46,22 +42,20 @@ CrashObserver.prototype = {
         if(this._prefs.getBoolPref("extensions.torbutton.fresh_install")) {
           this._prefs.setBoolPref("extensions.torbutton.normal_exit", true);
         }
-      } else if(topic == "final-ui-startup") {
-          this.logger.log(2, "final-ui-startup.");
-          this._prefs.setBoolPref("extensions.torbutton.startup", true);
-          if (this._prefs.getBoolPref("extensions.torbutton.normal_exit")) {
-            this._prefs.setBoolPref("extensions.torbutton.noncrashed", true);
-          } else {
-            this._prefs.setBoolPref("extensions.torbutton.crashed", true);
-          }
-          this._prefs.setBoolPref("extensions.torbutton.normal_exit", false);
+        this._prefs.setBoolPref("extensions.torbutton.startup", true);
+        if (this._prefs.getBoolPref("extensions.torbutton.normal_exit")) {
+          this._prefs.setBoolPref("extensions.torbutton.noncrashed", true);
+        } else {
+          this._prefs.setBoolPref("extensions.torbutton.crashed", true);
+        }
+        this._prefs.setBoolPref("extensions.torbutton.normal_exit", false);
       } else if (topic == "em-action-requested") {
         // http://xulsolutions.blogspot.com/2006/07/creating-uninstall-script-for.html
         subject.QueryInterface(Components.interfaces.nsIUpdateItem);
-        this.logger.log(2, "Uninstall: "+data+" "+subject.id.toUpperCase());
+        this.logger.log(3, "Uninstall: "+data+" "+subject.id.toUpperCase());
 
         if (subject.id.toUpperCase() == TORBUTTON_EXTENSION_UUID) {
-          this.logger.log(2, "Uninstall: "+data);
+          this.logger.log(3, "Uninstall: "+data);
           if (data == "item-uninstalled" || data == "item-disabled") {
             this._uninstall = true;
           } else if (data == "item-cancel-action") {
@@ -69,7 +63,7 @@ CrashObserver.prototype = {
           }
         }
       } else if (topic == "quit-application-granted") {
-        this.logger.log(2, "Got firefox quit event.");
+        this.logger.log(3, "Got firefox quit event.");
         var chrome = null;
         try {
             var wm = Cc["@mozilla.org/appshell/window-mediator;1"]
-- 
1.7.1




More information about the tor-commits mailing list