Backed out changeset bff57b2e4b16 (bug 1789421) for causing build bustage. CLOSED TREE

This commit is contained in:
Butkovits Atila 2022-09-12 12:37:57 +03:00
parent b0b8275b10
commit cfd3972560
5 changed files with 15 additions and 46 deletions

View File

@ -4289,8 +4289,7 @@ void ContentParent::GeneratePairedMinidump(const char* aReason) {
// Generate the report and insert into the queue for submittal.
if (mCrashReporter->GenerateMinidumpAndPair(this, "browser"_ns)) {
mCrashReporter->FinalizeCrashReport();
mCreatedPairedMinidumps = true;
mCreatedPairedMinidumps = mCrashReporter->FinalizeCrashReport();
}
}
}
@ -4336,7 +4335,6 @@ void ContentParent::KillHard(const char* aReason) {
}
if (!KillProcess(otherProcessHandle, base::PROCESS_END_KILLED_BY_USER)) {
mCrashReporter->DeleteCrashReport();
NS_WARNING("failed to kill subprocess!");
}

View File

@ -28,10 +28,7 @@ bool CrashReporterHost::GenerateCrashReport(base::ProcessId aPid) {
if (!TakeCrashedChildMinidump(aPid, nullptr)) {
return false;
}
FinalizeCrashReport();
RecordCrash(mProcessType, nsICrashService::CRASH_TYPE_CRASH, mDumpID);
return true;
return FinalizeCrashReport();
}
RefPtr<nsIFile> CrashReporterHost::TakeCrashedChildMinidump(
@ -60,7 +57,7 @@ bool CrashReporterHost::AdoptMinidump(nsIFile* aFile,
return true;
}
void CrashReporterHost::FinalizeCrashReport() {
bool CrashReporterHost::FinalizeCrashReport() {
MOZ_ASSERT(!mFinalized);
MOZ_ASSERT(HasMinidump());
@ -73,13 +70,11 @@ void CrashReporterHost::FinalizeCrashReport() {
nsDependentCString(startTime);
CrashReporter::WriteExtraFile(mDumpID, mExtraAnnotations);
mFinalized = true;
}
void CrashReporterHost::DeleteCrashReport() {
if (mFinalized && HasMinidump()) {
CrashReporter::DeleteMinidumpFilesForID(mDumpID, Some(u"browser"_ns));
}
RecordCrash(mProcessType, nsICrashService::CRASH_TYPE_CRASH, mDumpID);
mFinalized = true;
return true;
}
/* static */

View File

@ -46,10 +46,7 @@ class CrashReporterHost {
// If a minidump was already captured (e.g. via the hang reporter), this
// finalizes the existing report by attaching metadata, writing out the
// .extra file and notifying the crash service.
void FinalizeCrashReport();
// Delete any crash report we might have generated.
void DeleteCrashReport();
bool FinalizeCrashReport();
// Generate a paired minidump. This does not take the crash report, as
// GenerateCrashReport does. After this, FinalizeCrashReport may be called.

View File

@ -3042,38 +3042,24 @@ static bool GetMinidumpLimboDir(nsIFile** dir) {
}
}
void DeleteMinidumpFilesForID(const nsAString& aId,
const Maybe<nsString>& aAdditionalMinidump) {
void DeleteMinidumpFilesForID(const nsAString& id) {
nsCOMPtr<nsIFile> minidumpFile;
if (GetMinidumpForID(aId, getter_AddRefs(minidumpFile))) {
if (GetMinidumpForID(id, getter_AddRefs(minidumpFile))) {
minidumpFile->Remove(false);
}
nsCOMPtr<nsIFile> extraFile;
if (GetExtraFileForID(aId, getter_AddRefs(extraFile))) {
if (GetExtraFileForID(id, getter_AddRefs(extraFile))) {
extraFile->Remove(false);
}
if (aAdditionalMinidump && GetMinidumpForID(aId, getter_AddRefs(minidumpFile),
aAdditionalMinidump)) {
minidumpFile->Remove(false);
}
}
bool GetMinidumpForID(const nsAString& id, nsIFile** minidump,
const Maybe<nsString>& aAdditionalMinidump) {
bool GetMinidumpForID(const nsAString& id, nsIFile** minidump) {
if (!GetMinidumpLimboDir(minidump)) {
return false;
}
(*minidump)->Append(id);
if (aAdditionalMinidump) {
(*minidump)->Append(u"-"_ns);
(*minidump)->Append(*aAdditionalMinidump);
}
(*minidump)->Append(u".dmp"_ns);
(*minidump)->Append(id + u".dmp"_ns);
bool exists;
if (NS_FAILED((*minidump)->Exists(&exists)) || !exists) {

View File

@ -14,7 +14,6 @@
#include "mozilla/Assertions.h"
#include "mozilla/EnumeratedArray.h"
#include "mozilla/Maybe.h"
#include "CrashAnnotations.h"
@ -44,9 +43,6 @@ class nsIFile;
namespace CrashReporter {
using mozilla::Maybe;
using mozilla::Nothing;
/**
* Returns true if the crash reporter is using the dummy implementation.
*/
@ -145,11 +141,8 @@ void GetAnnotation(uint32_t childPid, Annotation annotation,
// Functions for working with minidumps and .extras
typedef mozilla::EnumeratedArray<Annotation, Annotation::Count, nsCString>
AnnotationTable;
void DeleteMinidumpFilesForID(
const nsAString& aId,
const Maybe<nsString>& aAdditionalMinidump = Nothing());
bool GetMinidumpForID(const nsAString& id, nsIFile** minidump,
const Maybe<nsString>& aAdditionalMinidump = Nothing());
void DeleteMinidumpFilesForID(const nsAString& id);
bool GetMinidumpForID(const nsAString& id, nsIFile** minidump);
bool GetIDFromMinidump(nsIFile* minidump, nsAString& id);
bool GetExtraFileForID(const nsAString& id, nsIFile** extraFile);
bool GetExtraFileForMinidump(nsIFile* minidump, nsIFile** extraFile);