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 a3599b4403b7be33cb4aa300746c3ade962627de..342f16a4c8418c1e56703d8969d0f31d834ad74c 100644
- --- a/components/crash/core/app/breakpad_linux.cc
- +++ b/components/crash/core/app/breakpad_linux.cc
- @@ -719,8 +719,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;
- @@ -2041,8 +2046,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 !defined(OS_CHROMEOS)
- SetUploadURL(GetCrashReporterClient()->GetUploadUrl());
- #endif
|