зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1769624 - Verify shutdown status before asserting r=nika
Differential Revision: https://phabricator.services.mozilla.com/D146567
This commit is contained in:
Родитель
5b3d5c09ae
Коммит
9ba8c615d5
|
@ -126,6 +126,7 @@ RefPtr<GenericNonExclusivePromise> UtilityProcessManager::LaunchProcess(
|
|||
MOZ_ASSERT(NS_IsMainThread());
|
||||
|
||||
if (IsShutdown()) {
|
||||
NS_WARNING("Reject early LaunchProcess() for Shutdown");
|
||||
return GenericNonExclusivePromise::CreateAndReject(NS_ERROR_NOT_AVAILABLE,
|
||||
__func__);
|
||||
}
|
||||
|
@ -133,6 +134,7 @@ RefPtr<GenericNonExclusivePromise> UtilityProcessManager::LaunchProcess(
|
|||
RefPtr<ProcessFields> p = GetProcess(aSandbox);
|
||||
if (p && p->mNumProcessAttempts) {
|
||||
// We failed to start the Utility process earlier, abort now.
|
||||
NS_WARNING("Reject LaunchProcess() for earlier mNumProcessAttempts");
|
||||
return GenericNonExclusivePromise::CreateAndReject(NS_ERROR_NOT_AVAILABLE,
|
||||
__func__);
|
||||
}
|
||||
|
@ -156,6 +158,7 @@ RefPtr<GenericNonExclusivePromise> UtilityProcessManager::LaunchProcess(
|
|||
if (!p->mProcess->Launch(extraArgs)) {
|
||||
p->mNumProcessAttempts++;
|
||||
DestroyProcess(aSandbox);
|
||||
NS_WARNING("Reject LaunchProcess() for mNumProcessAttempts++");
|
||||
return GenericNonExclusivePromise::CreateAndReject(NS_ERROR_NOT_AVAILABLE,
|
||||
__func__);
|
||||
}
|
||||
|
@ -165,11 +168,13 @@ RefPtr<GenericNonExclusivePromise> UtilityProcessManager::LaunchProcess(
|
|||
GetMainThreadSerialEventTarget(), __func__,
|
||||
[self, p, aSandbox](bool) {
|
||||
if (self->IsShutdown()) {
|
||||
NS_WARNING("Reject LaunchProcess() after LaunchPromise() for Shutdown");
|
||||
return GenericNonExclusivePromise::CreateAndReject(
|
||||
NS_ERROR_NOT_AVAILABLE, __func__);
|
||||
}
|
||||
|
||||
if (self->IsProcessDestroyed(aSandbox)) {
|
||||
NS_WARNING("Reject LaunchProcess() after LaunchPromise() for destroyed process");
|
||||
return GenericNonExclusivePromise::CreateAndReject(
|
||||
NS_ERROR_NOT_AVAILABLE, __func__);
|
||||
}
|
||||
|
@ -194,6 +199,7 @@ RefPtr<GenericNonExclusivePromise> UtilityProcessManager::LaunchProcess(
|
|||
p->mNumProcessAttempts++;
|
||||
self->DestroyProcess(aSandbox);
|
||||
}
|
||||
NS_WARNING("Reject LaunchProcess() for LaunchPromise() rejection");
|
||||
return GenericNonExclusivePromise::CreateAndReject(aError, __func__);
|
||||
});
|
||||
|
||||
|
@ -244,8 +250,11 @@ RefPtr<GenericNonExclusivePromise> UtilityProcessManager::StartUtility(
|
|||
|
||||
return GenericNonExclusivePromise::CreateAndResolve(true, __func__);
|
||||
},
|
||||
[](nsresult aError) {
|
||||
MOZ_ASSERT_UNREACHABLE("Failure when starting actor");
|
||||
[self](nsresult aError) {
|
||||
if (!self->IsShutdown()) {
|
||||
MOZ_ASSERT_UNREACHABLE("Failure when starting actor");
|
||||
}
|
||||
NS_WARNING("Reject StartUtility() for LaunchProcess() rejection");
|
||||
return GenericNonExclusivePromise::CreateAndReject(aError, __func__);
|
||||
});
|
||||
}
|
||||
|
@ -289,9 +298,12 @@ UtilityProcessManager::StartAudioDecoding(base::ProcessId aOtherProcess) {
|
|||
return AudioDecodingPromise::CreateAndResolve(std::move(childPipe),
|
||||
__func__);
|
||||
},
|
||||
[](nsresult aError) {
|
||||
MOZ_ASSERT_UNREACHABLE(
|
||||
"PUtilityAudioDecoder: failure when starting actor");
|
||||
[self](nsresult aError) {
|
||||
if (!self->IsShutdown()) {
|
||||
MOZ_ASSERT_UNREACHABLE(
|
||||
"PUtilityAudioDecoder: failure when starting actor");
|
||||
}
|
||||
NS_WARNING("Reject StartAudioDecoding() for StartUtility() rejection");
|
||||
return AudioDecodingPromise::CreateAndReject(aError, __func__);
|
||||
});
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче