[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