From 6441cef2358b2104cdaaf2b51951db46cf7a931f Mon Sep 17 00:00:00 2001 From: foudfou Date: Sun, 30 Dec 2012 22:43:42 +0100 Subject: [PATCH] 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