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