зеркало из https://github.com/mozilla/gecko-dev.git
prevent biff from firing during shutdown r=naving, sr=sspitzer 101209
This commit is contained in:
Родитель
100dafd417
Коммит
222fbba877
|
@ -26,9 +26,10 @@
|
|||
[scriptable, uuid(17275D52-1622-11d3-8A84-0060B0FC04D2)]
|
||||
interface nsIMsgBiffManager : nsISupports {
|
||||
|
||||
void AddServerBiff(in nsIMsgIncomingServer server);
|
||||
void RemoveServerBiff(in nsIMsgIncomingServer server);
|
||||
void ForceBiff(in nsIMsgIncomingServer server);
|
||||
void ForceBiffAll();
|
||||
void addServerBiff(in nsIMsgIncomingServer server);
|
||||
void removeServerBiff(in nsIMsgIncomingServer server);
|
||||
void forceBiff(in nsIMsgIncomingServer server);
|
||||
void forceBiffAll();
|
||||
void shutdown();
|
||||
};
|
||||
|
||||
|
|
|
@ -182,10 +182,16 @@ nsresult nsMsgAccountManager::Init()
|
|||
|
||||
nsresult nsMsgAccountManager::Shutdown()
|
||||
{
|
||||
if(m_msgFolderCache)
|
||||
{
|
||||
WriteToFolderCache(m_msgFolderCache);
|
||||
}
|
||||
nsresult rv;
|
||||
|
||||
if(m_msgFolderCache)
|
||||
{
|
||||
WriteToFolderCache(m_msgFolderCache);
|
||||
}
|
||||
nsCOMPtr<nsIMsgBiffManager> biffService = do_GetService(NS_MSGBIFFMANAGER_CONTRACTID, &rv);
|
||||
if (NS_SUCCEEDED(rv) && biffService)
|
||||
biffService->Shutdown();
|
||||
|
||||
CloseCachedConnections();
|
||||
UnloadAccounts();
|
||||
|
||||
|
@ -194,6 +200,8 @@ nsresult nsMsgAccountManager::Shutdown()
|
|||
m_prefs = 0;
|
||||
}
|
||||
|
||||
m_msgFolderCache = nsnull;
|
||||
|
||||
m_haveShutdown = PR_TRUE;
|
||||
return NS_OK;
|
||||
}
|
||||
|
@ -1233,7 +1241,7 @@ nsMsgAccountManager::LoadAccounts()
|
|||
|
||||
//Ensure biff service has started
|
||||
nsCOMPtr<nsIMsgBiffManager> biffService =
|
||||
do_GetService(kMsgBiffManagerCID, &rv);
|
||||
do_GetService(NS_MSGBIFFMANAGER_CONTRACTID, &rv);
|
||||
|
||||
// mail.accountmanager.accounts is the main entry point for all accounts
|
||||
|
||||
|
|
|
@ -28,7 +28,6 @@
|
|||
#include "nsIObserverService.h"
|
||||
#include "nsStatusBarBiffManager.h"
|
||||
|
||||
static NS_DEFINE_CID(kMsgAccountManagerCID, NS_MSGACCOUNTMANAGER_CID);
|
||||
static NS_DEFINE_CID(kStatusBarBiffManagerCID, NS_STATUSBARBIFFMANAGER_CID);
|
||||
|
||||
NS_IMPL_ISUPPORTS4(nsMsgBiffManager, nsIMsgBiffManager, nsIIncomingServerListener, nsIObserver, nsISupportsWeakReference)
|
||||
|
@ -88,7 +87,7 @@ nsresult nsMsgBiffManager::Init()
|
|||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
|
||||
nsCOMPtr<nsIMsgAccountManager> accountManager =
|
||||
do_GetService(kMsgAccountManagerCID, &rv);
|
||||
do_GetService(NS_MSGACCOUNTMANAGER_CONTRACTID, &rv);
|
||||
if (NS_SUCCEEDED(rv))
|
||||
{
|
||||
accountManager->AddIncomingServerListener(this);
|
||||
|
@ -110,20 +109,25 @@ nsresult nsMsgBiffManager::Init()
|
|||
return NS_OK;
|
||||
}
|
||||
|
||||
nsresult nsMsgBiffManager::Shutdown()
|
||||
NS_IMETHODIMP nsMsgBiffManager::Shutdown()
|
||||
{
|
||||
nsresult rv;
|
||||
nsCOMPtr<nsIMsgAccountManager> accountManager =
|
||||
do_GetService(kMsgAccountManagerCID, &rv);
|
||||
if (NS_SUCCEEDED(rv))
|
||||
{
|
||||
accountManager->RemoveIncomingServerListener(this);
|
||||
}
|
||||
|
||||
mHaveShutdown = PR_TRUE;
|
||||
return NS_OK;
|
||||
if (mBiffTimer)
|
||||
{
|
||||
mBiffTimer->Cancel();
|
||||
mBiffTimer = nsnull;
|
||||
}
|
||||
nsresult rv;
|
||||
nsCOMPtr<nsIMsgAccountManager> accountManager = do_GetService(NS_MSGACCOUNTMANAGER_CONTRACTID, &rv);
|
||||
if (NS_SUCCEEDED(rv))
|
||||
{
|
||||
accountManager->RemoveIncomingServerListener(this);
|
||||
}
|
||||
|
||||
mHaveShutdown = PR_TRUE;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
NS_IMETHODIMP nsMsgBiffManager::AddServerBiff(nsIMsgIncomingServer *server)
|
||||
{
|
||||
nsresult rv;
|
||||
|
|
|
@ -56,7 +56,6 @@ public:
|
|||
NS_DECL_NSIOBSERVER
|
||||
|
||||
nsresult Init();
|
||||
nsresult Shutdown();
|
||||
nsresult PerformBiff();
|
||||
|
||||
protected:
|
||||
|
|
Загрузка…
Ссылка в новой задаче