зеркало из https://github.com/electron/electron.git
46 строки
1.7 KiB
Diff
46 строки
1.7 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Jeremy Apthorp <nornagon@nornagon.net>
|
|
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
|