mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-10 10:18:38 +09:00
Bug 516464 - Remove passwords from cache when password manager contents are changed to prevent stale password attempts.
Tag #1273
This commit is contained in:
parent
d0d5ec75d5
commit
86d4e9d3a6
4 changed files with 54 additions and 10 deletions
|
|
@ -49,6 +49,7 @@
|
|||
#include "nsIMsgFilter.h"
|
||||
#include "nsIArray.h"
|
||||
#include "nsArrayUtils.h"
|
||||
#include "nsIObserverService.h"
|
||||
|
||||
#define PORT_NOT_SET -1
|
||||
|
||||
|
|
@ -64,12 +65,51 @@ nsMsgIncomingServer::nsMsgIncomingServer():
|
|||
{
|
||||
}
|
||||
|
||||
nsresult nsMsgIncomingServer::Init()
|
||||
{
|
||||
// We need to know when the password manager changes.
|
||||
nsCOMPtr<nsIObserverService> observerService =
|
||||
mozilla::services::GetObserverService();
|
||||
NS_ENSURE_TRUE(observerService, NS_ERROR_UNEXPECTED);
|
||||
|
||||
observerService->AddObserver(this, "passwordmgr-storage-changed", false);
|
||||
observerService->AddObserver(this, NS_XPCOM_SHUTDOWN_OBSERVER_ID, false);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
nsMsgIncomingServer::~nsMsgIncomingServer()
|
||||
{
|
||||
}
|
||||
|
||||
NS_IMPL_ISUPPORTS(nsMsgIncomingServer, nsIMsgIncomingServer,
|
||||
nsISupportsWeakReference)
|
||||
nsISupportsWeakReference, nsIObserver)
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsMsgIncomingServer::Observe(nsISupports *aSubject, const char* aTopic,
|
||||
const char16_t *aData)
|
||||
{
|
||||
nsresult rv;
|
||||
|
||||
// When the state of the password manager changes we need to clear the
|
||||
// password from the cache in case the user just removed it.
|
||||
if (strcmp(aTopic, "passwordmgr-storage-changed") == 0)
|
||||
{
|
||||
rv = ForgetSessionPassword();
|
||||
NS_ENSURE_SUCCESS(rv,rv);
|
||||
}
|
||||
else if (strcmp(aTopic, NS_XPCOM_SHUTDOWN_OBSERVER_ID) == 0)
|
||||
{
|
||||
// Now remove ourselves from the observer service as well.
|
||||
nsCOMPtr<nsIObserverService> observerService =
|
||||
mozilla::services::GetObserverService();
|
||||
NS_ENSURE_TRUE(observerService, NS_ERROR_UNEXPECTED);
|
||||
|
||||
observerService->RemoveObserver(this, "passwordmgr-storage-changed");
|
||||
observerService->RemoveObserver(this, NS_XPCOM_SHUTDOWN_OBSERVER_ID);
|
||||
}
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsMsgIncomingServer::SetServerBusy(bool aServerBusy)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue