[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