[Pkg-mozext-commits] [firetray] 03/09: cleaner observer for accountmanager.accounts
David Prévot
taffit at alioth.debian.org
Wed Nov 6 22:03:55 UTC 2013
This is an automated email from the git hooks/post-receive script.
taffit pushed a commit to branch dfsg-clean
in repository firetray.
commit 088f7f56e4c366275aa386161d59fee39dcb062d
Author: foudfou <foudil.newbie+git at gmail.com>
Date: Sun Nov 3 02:09:07 2013 +0100
cleaner observer for accountmanager.accounts
We also need to start observing the mail.accountmanager.accounts pref *after*
it's fully built.
---
src/modules/FiretrayHandler.jsm | 4 ++++
src/modules/FiretrayMessaging.jsm | 28 ++++++++++++++++++++++++----
2 files changed, 28 insertions(+), 4 deletions(-)
diff --git a/src/modules/FiretrayHandler.jsm b/src/modules/FiretrayHandler.jsm
index 5ba6a30..eacbcc4 100644
--- a/src/modules/FiretrayHandler.jsm
+++ b/src/modules/FiretrayHandler.jsm
@@ -239,6 +239,10 @@ firetray.Handler = {
Ci.nsITimer.TYPE_ONE_SHOT, function() {
firetray.Handler.appStarted = true;
log.info("*** appStarted ***");
+
+ if (firetray.Handler.inMailApp) {
+ firetray.Messaging.addPrefObserver();
+ }
});
},
diff --git a/src/modules/FiretrayMessaging.jsm b/src/modules/FiretrayMessaging.jsm
index 533bbbc..4805794 100644
--- a/src/modules/FiretrayMessaging.jsm
+++ b/src/modules/FiretrayMessaging.jsm
@@ -23,6 +23,8 @@ const FLDRS_UNINTERESTING = {
Virtual: Ci.nsMsgFolderFlags.Virtual
};
+const ACCOUNTS_PREF_BRANCH = "mail.accountmanager.accounts";
+
let log = firetray.Logging.getLogger("firetray.Messaging");
@@ -38,9 +40,9 @@ firetray.Messaging = {
}
log.debug("Enabling Messaging");
- // includes IM accounts
- Services.prefs.addObserver("mail.accountmanager.accounts",
- firetray.Messaging.cleanExcludedAccounts, false);
+ /* addPrefObserver() called after appStarted because it's hazardous to
+ clean our excludedAccounts while mail.accountmanager.accounts is being
+ built dynamically at startup */
let that = this;
MailServices.mailSession.AddFolderListener(that.mailSessionListener,
@@ -55,11 +57,29 @@ firetray.Messaging = {
MailServices.mailSession.RemoveFolderListener(this.mailSessionListener);
- Services.prefs.removeObserver("mail.accountmanager.accounts", this);
+ this.removePrefObserver();
this.initialized = false;
},
+ addPrefObserver: function() {
+ // includes IM accounts
+ Services.prefs.addObserver(ACCOUNTS_PREF_BRANCH, this, false);
+ log.debug("PrefObserver added");
+ },
+ removePrefObserver: function() {
+ Services.prefs.removeObserver(ACCOUNTS_PREF_BRANCH, this);
+ },
+
+ /* could also use a PrefListener, but let's keep it simple for now */
+ observe: function(subject, topic, data) {
+ if (topic === "nsPref:changed" &&
+ data === ACCOUNTS_PREF_BRANCH) {
+ log.debug(ACCOUNTS_PREF_BRANCH+"="+subject.QueryInterface(Ci.nsIPrefBranch).getCharPref(ACCOUNTS_PREF_BRANCH));
+ this.cleanExcludedAccounts();
+ }
+ },
+
/* removes removed accounts from excludedAccounts pref. NOTE: Can't be called
at shutdown because MailServices.accounts no longer available */
cleanExcludedAccounts: function() {
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-mozext/firetray.git
More information about the Pkg-mozext-commits
mailing list