123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
- From: Jeremy Apthorp <[email protected]>
- Date: Thu, 30 Apr 2020 17:04:13 -0700
- Subject: breakpad: treat node processes as browser processes
- On Linux, to avoid the need to pass breakpad FDs to child node processes
- spawned by child_process.fork(), each child process must re-initialize
- breakpad independently, as a "browser" process. This patches
- //components/crash so that it will correctly report 'ptype=node' as a
- crash annotation.
- diff --git a/components/crash/core/app/breakpad_linux.cc b/components/crash/core/app/breakpad_linux.cc
- index 43f6d476f3ee2759cf41c492f932522994e7ddec..8df14f416ee321e1259433715a61fa6025207d80 100644
- --- a/components/crash/core/app/breakpad_linux.cc
- +++ b/components/crash/core/app/breakpad_linux.cc
- @@ -718,8 +718,13 @@ bool CrashDone(const MinidumpDescriptor& minidump,
- log_path[log_path_len] = '\0';
- info.log_filename = log_path;
- #endif
- - info.process_type = "browser";
- - info.process_type_length = 7;
- + if (g_is_node) {
- + info.process_type = "node";
- + info.process_type_length = 4;
- + } else {
- + info.process_type = "browser";
- + info.process_type_length = 7;
- + }
- info.distro = base::g_linux_distro;
- info.distro_length = my_strlen(base::g_linux_distro);
- info.upload = upload;
- @@ -2025,8 +2030,13 @@ void InitCrashReporter(const std::string& process_type) {
- process_type == kWebViewSingleProcessType ||
- process_type == kBrowserProcessType ||
- #endif
- + process_type == "node" ||
- process_type.empty();
-
- + if (process_type == "node") {
- + g_is_node = true;
- + }
- +
- #if !BUILDFLAG(IS_CHROMEOS_ASH)
- SetUploadURL(GetCrashReporterClient()->GetUploadUrl());
- #endif
|