[tor-commits] [torbirdy/develop] Reflect TorBirdy's state in UI after uninstall/disable (#10683)
sukhbir at torproject.org
sukhbir at torproject.org
Fri Nov 25 05:54:48 UTC 2016
commit 26a0def110411e65f0abad893533a705d30a4424
Author: Sukhbir Singh <sukhbir at torproject.org>
Date: Mon May 16 17:28:35 2016 -0400
Reflect TorBirdy's state in UI after uninstall/disable (#10683)
When TorBirdy is uninstalled or disabled, the status bar text and colour is
updated to reflect TorBirdy's current state. Prior to this commit, if a user
uninstalled/disabled TorBirdy, the status bar text would still say "TorBirdy
Enabled". Now the status bar is updated as TorBirdy's state changes to avoid
confusing the user.
---
chrome/content/overlay.js | 2 +-
chrome/locale/en/torbirdy.properties | 1 +
components/torbirdy.js | 31 +++++++++++++++++++++++++------
install.rdf | 2 +-
4 files changed, 28 insertions(+), 8 deletions(-)
diff --git a/chrome/content/overlay.js b/chrome/content/overlay.js
index f8b1051..1f72c9d 100644
--- a/chrome/content/overlay.js
+++ b/chrome/content/overlay.js
@@ -67,7 +67,7 @@
prefs.setBoolPref("extensions.torbirdy.whonix_run", false);
}
else {
- myPanel.label = strbundle.getString("torbirdy.enabled.disabled");
+ myPanel.label = strbundle.getString("torbirdy.disabled");
myPanel.style.color = "red";
}
}
diff --git a/chrome/locale/en/torbirdy.properties b/chrome/locale/en/torbirdy.properties
index 2e01136..4f645eb 100644
--- a/chrome/locale/en/torbirdy.properties
+++ b/chrome/locale/en/torbirdy.properties
@@ -6,6 +6,7 @@ torbirdy.enabled.custom=TorBirdy Enabled: Custom Proxy
torbirdy.enabled.torification=TorBirdy Enabled: Transparent Torification
torbirdy.enabled.whonix=TorBirdy Enabled: Whonix
torbirdy.disabled=TorBirdy: Disabled!
+torbirdy.enabled=TorBirdy: Enabled
torbirdy.email.prompt=TorBirdy has disabled Thunderbird's auto-configuration wizard to protect your anonymity.\n\nThe recommended security settings for %S have been set.\n\nYou can now configure the other account settings manually.
diff --git a/components/torbirdy.js b/components/torbirdy.js
index ead2508..eb64df6 100644
--- a/components/torbirdy.js
+++ b/components/torbirdy.js
@@ -1,9 +1,8 @@
-Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
-Components.utils.import("resource://gre/modules/AddonManager.jsm");
+var { interfaces: Ci, utils: Cu, classes: Cc } = Components;
-var Ci = Components.interfaces;
-var Cc = Components.classes;
-var Cr = Components.results;
+Cu.import("resource://gre/modules/XPCOMUtils.jsm");
+Cu.import("resource://gre/modules/imXPCOMUtils.jsm");
+Cu.import("resource://gre/modules/AddonManager.jsm");
var SERVICE_CTRID = "@torproject.org/torbirdy;1";
var SERVICE_ID = Components.ID("{ebd85413-18c8-4265-a708-a8890ec8d1ed}");
@@ -14,6 +13,10 @@ var kPrefBranch = "extensions.torbirdy.custom.";
var kRestoreBranch = "extensions.torbirdy.restore.";
var kTorBirdyBranch = "extensions.torbirdy.";
+XPCOMUtils.defineLazyGetter(this, "_", () =>
+ l10nHelper("chrome://castironthunderbirdclub/locale/torbirdy.properties")
+);
+
// Default preference values for TorBirdy.
// These preferences values will be "enforced": even if the user decides to
// change the preferences listed below, they will be reset to the TorBirdy
@@ -380,7 +383,7 @@ var TorBirdyOldPrefs = [
// is rounded down to the nearest minute.
function sanitizeDateHeaders() {
// Import the jsmime module that is used to generate mail headers.
- let { jsmime } = Components.utils.import("resource:///modules/jsmime.jsm");
+ let { jsmime } = Cu.import("resource:///modules/jsmime.jsm");
// Inject our own structured encoder to the default header emitter,
// to override the default Date encoder with a rounded-down version.
jsmime.headeremitter.addStructuredEncoder("Date", function (date) {
@@ -438,7 +441,22 @@ TorBirdy.prototype = {
// This is a hack to cause Thunderbird to instantiate us ASAP!
_xpcom_categories: [{ category: "profile-after-change"}, ],
+ onStateChange: function() {
+ let panel = Cc['@mozilla.org/appshell/window-mediator;1']
+ .getService(Ci.nsIWindowMediator)
+ .getMostRecentWindow('mail:3pane').document.getElementById("torbirdy-my-panel");
+ if (this._uninstall) {
+ panel.label = _("torbirdy.enabled");
+ panel.style.color = "green";
+ }
+ else {
+ panel.label = _("torbirdy.disabled");
+ panel.style.color = "red";
+ }
+ },
+
onUninstalling: function(addon, needsRestart) {
+ this.onStateChange();
if (addon.id == TB_ID) {
dump("Nooo! TorBirdy uninstall requested\n");
this._uninstall = true;
@@ -447,6 +465,7 @@ TorBirdy.prototype = {
},
onOperationCancelled: function(addon) {
+ this.onStateChange();
if (addon.id == TB_ID) {
dump("Uninstall requested cancelled. Yayay!\n");
this._uninstall = false;
diff --git a/install.rdf b/install.rdf
index 34c634c..ffe53cd 100644
--- a/install.rdf
+++ b/install.rdf
@@ -12,7 +12,7 @@
<!-- Thunderbird -->
<Description>
<em:id>{3550f703-e582-4d05-9a08-453d09bdfdc6}</em:id>
- <em:minVersion>38.*</em:minVersion>
+ <em:minVersion>37.*</em:minVersion>
<em:maxVersion>45.*</em:maxVersion>
</Description>
</em:targetApplication>
More information about the tor-commits
mailing list