| Index: components/crash/content/app/breakpad_linux.cc
|
| diff --git a/components/crash/content/app/breakpad_linux.cc b/components/crash/content/app/breakpad_linux.cc
|
| index 7a5c5dde37ebf93ab7b57fc69bb26389d6d478b4..62888ad9ff5fa9f6d88feb8e640bb66d886070a3 100644
|
| --- a/components/crash/content/app/breakpad_linux.cc
|
| +++ b/components/crash/content/app/breakpad_linux.cc
|
| @@ -739,31 +739,6 @@ bool MicrodumpCrashDone(const MinidumpDescriptor& minidump,
|
| return FinalizeCrashDoneAndroid(is_browser_process);
|
| }
|
|
|
| -// The microdump handler does NOT upload anything. It just dumps out on the
|
| -// system console (logcat) a restricted and serialized variant of a minidump.
|
| -// See crbug.com/410294 for more details.
|
| -void InitMicrodumpCrashHandlerIfNecessary(const std::string& process_type) {
|
| - if (!GetCrashReporterClient()->ShouldEnableBreakpadMicrodumps())
|
| - return;
|
| -
|
| - VLOG(1) << "Enabling microdumps crash handler (process_type:"
|
| - << process_type << ")";
|
| -
|
| - // The exception handler runs in a compromised context and cannot use c_str()
|
| - // as that would require the heap. Therefore, we have to guarantee that the
|
| - // build fingerprint and product info pointers are always valid.
|
| - const char* product_name = nullptr;
|
| - const char* product_version = nullptr;
|
| - GetCrashReporterClient()->GetProductNameAndVersion(&product_name,
|
| - &product_version);
|
| -
|
| - const char* android_build_fp =
|
| - base::android::BuildInfo::GetInstance()->android_build_fp();
|
| -
|
| - g_microdump_info.Get().Initialize(process_type, product_name, product_version,
|
| - android_build_fp);
|
| -}
|
| -
|
| bool CrashDoneInProcessNoUpload(
|
| const google_breakpad::MinidumpDescriptor& descriptor,
|
| void* context,
|
| @@ -1858,6 +1833,31 @@ void InitNonBrowserCrashReporterForAndroid(const std::string& process_type) {
|
| }
|
| }
|
|
|
| +// The microdump handler does NOT upload anything. It just dumps out on the
|
| +// system console (logcat) a restricted and serialized variant of a minidump.
|
| +// See crbug.com/410294 for more details.
|
| +void InitMicrodumpCrashHandlerIfNecessary(const std::string& process_type) {
|
| + if (!GetCrashReporterClient()->ShouldEnableBreakpadMicrodumps())
|
| + return;
|
| +
|
| + VLOG(1) << "Enabling microdumps crash handler (process_type:"
|
| + << process_type << ")";
|
| +
|
| + // The exception handler runs in a compromised context and cannot use c_str()
|
| + // as that would require the heap. Therefore, we have to guarantee that the
|
| + // build fingerprint and product info pointers are always valid.
|
| + const char* product_name = nullptr;
|
| + const char* product_version = nullptr;
|
| + GetCrashReporterClient()->GetProductNameAndVersion(&product_name,
|
| + &product_version);
|
| +
|
| + const char* android_build_fp =
|
| + base::android::BuildInfo::GetInstance()->android_build_fp();
|
| +
|
| + g_microdump_info.Get().Initialize(process_type, product_name, product_version,
|
| + android_build_fp);
|
| +}
|
| +
|
| void AddGpuFingerprintToMicrodumpCrashHandler(
|
| const std::string& gpu_fingerprint) {
|
| g_microdump_info.Get().SetGpuFingerprint(gpu_fingerprint);
|
|
|