From 40a355a42d4a9444dc753c04c6608dade2f06a23 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Fri, 19 Apr 2024 03:13:27 +0200 Subject: Adding upstream version 125.0.1. Signed-off-by: Daniel Baumann --- .../IdentityCredentialStorageService.cpp | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) (limited to 'toolkit/components/credentialmanagement/IdentityCredentialStorageService.cpp') diff --git a/toolkit/components/credentialmanagement/IdentityCredentialStorageService.cpp b/toolkit/components/credentialmanagement/IdentityCredentialStorageService.cpp index f3994d1a86..f1549ad4f8 100644 --- a/toolkit/components/credentialmanagement/IdentityCredentialStorageService.cpp +++ b/toolkit/components/credentialmanagement/IdentityCredentialStorageService.cpp @@ -125,18 +125,23 @@ IdentityCredentialStorageService::GetAsyncShutdownBarrier() const { nsresult IdentityCredentialStorageService::Init() { AssertIsOnMainThread(); - if (AppShutdown::IsInOrBeyond(ShutdownPhase::AppShutdownConfirmed)) { + nsCOMPtr asc = GetAsyncShutdownBarrier(); + if (!asc) { + return NS_ERROR_NOT_AVAILABLE; + } + + // We should only allow this service to start before its + // shutdown barrier is closed, so it never leaks. + bool closed; + nsresult rv = asc->GetIsClosed(&closed); + if (closed || NS_WARN_IF(NS_FAILED(rv))) { MonitorAutoLock lock(mMonitor); mShuttingDown.Flip(); return NS_ERROR_ILLEGAL_DURING_SHUTDOWN; } - nsCOMPtr asc = GetAsyncShutdownBarrier(); - if (!asc) { - return NS_ERROR_NOT_AVAILABLE; - } - nsresult rv = asc->AddBlocker(this, NS_LITERAL_STRING_FROM_CSTRING(__FILE__), - __LINE__, u""_ns); + rv = asc->AddBlocker(this, NS_LITERAL_STRING_FROM_CSTRING(__FILE__), __LINE__, + u""_ns); NS_ENSURE_SUCCESS(rv, rv); rv = NS_GetSpecialDirectory(NS_APP_USER_PROFILE_50_DIR, -- cgit v1.2.3