[Pkg-mozext-commits] [firetray] 335/399: nsISupportsArray replaced by nsIArray (Bug 820377)
David Prévot
taffit at alioth.debian.org
Tue Oct 29 18:24:09 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 6441cef2358b2104cdaaf2b51951db46cf7a931f
Author: foudfou <foudil.newbie+git at gmail.com>
Date: Sun Dec 30 22:43:42 2012 +0100
nsISupportsArray replaced by nsIArray (Bug 820377)
---
src/modules/FiretrayMessaging.jsm | 47 ++++++++++++++++++++++++++++++-------
1 file changed, 38 insertions(+), 9 deletions(-)
diff --git a/src/modules/FiretrayMessaging.jsm b/src/modules/FiretrayMessaging.jsm
index 39a8816..5ee47a1 100644
--- a/src/modules/FiretrayMessaging.jsm
+++ b/src/modules/FiretrayMessaging.jsm
@@ -350,19 +350,48 @@ firetray.Messaging.Accounts = function(sortByTypeAndName) {
this.sortByTypeAndName = sortByTypeAndName;
};
+
+// https://bugzilla.mozilla.org/show_bug.cgi?id=820377
+firetray.Messaging._accountsRef = MailServices.accounts.accounts;
+if (firetray.Messaging._accountsRef instanceof Ci.nsIArray) {
+
+ function _getAccountServersAsJSArray() {
+ let accountServers = [];
+ let accEnumerator = firetray.Messaging._accountsRef.enumerate();
+ while (accEnumerator.hasMoreElements()) {
+ let account = accEnumerator.getNext().QueryInterface(Ci.nsIMsgAccount);
+ log.debug("account="+account);
+ let accountServer = account.incomingServer;
+ accountServers.push(accountServer);
+ }
+ log.debug("accountServers="+accountServers.length);
+ return accountServers;
+ }
+
+} else if (firetray.Messaging._accountsRef instanceof Ci.nsISupportsArray) {
+
+ function _getAccountServersAsJSArray() {
+ let accountServers = [];
+ for (let i=0, len=firetray.Messaging._accountsRef.Count(); i<len; ++i) {
+ let account = firetray.Messaging._accountsRef.QueryElementAt(i, Ci.nsIMsgAccount);
+ let accountServer = account.incomingServer;
+ accountServers[i] = accountServer;
+ }
+ log.debug("accountServers="+accountServers.length);
+ return accountServers;
+ }
+
+} else {
+ throw TypeError("unknown type for MailServices.accounts.accounts");
+}
+
firetray.Messaging.Accounts.prototype.__iterator__ = function() {
- let accounts = MailServices.accounts.accounts;
log.debug("sortByTypeAndName="+this.sortByTypeAndName);
/* NOTE: sort() not provided by nsIMsgAccountManager.accounts
- (nsISupportsArray, nsICollection). Should be OK to re-build a JS-Array for
- few accounts */
- let accountServers = [];
- for (let i=0, len=accounts.Count(); i<len; ++i) {
- let account = accounts.QueryElementAt(i, Ci.nsIMsgAccount);
- let accountServer = account.incomingServer;
- accountServers[i] = accountServer;
- }
+ (nsISupportsArray or nsIArray if xulrunner >= 20.0). Should be OK to
+ re-build a JS-Array for few accounts */
+ let accountServers = _getAccountServersAsJSArray();
let mailAccounts = firetray.Utils.getObjPref('mail_accounts');
let serverTypes = mailAccounts["serverTypes"];
--
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