Browse Source

fix: crash dump location on Linux (#31668)

* fix: crash dump location on Linux

* fix: ignore client_id for Zygote process

* chore: update comment

Co-authored-by: deepak1556 <[email protected]>
Shelley Vohr 3 years ago
parent
commit
96a04c67fd
2 changed files with 5 additions and 5 deletions
  1. 0 4
      shell/app/electron_main_delegate.cc
  2. 5 1
      shell/browser/electron_browser_client.cc

+ 0 - 4
shell/app/electron_main_delegate.cc

@@ -127,11 +127,7 @@ bool ElectronPathProvider(int key, base::FilePath* result) {
     case DIR_CRASH_DUMPS:
       if (!base::PathService::Get(chrome::DIR_USER_DATA, &cur))
         return false;
-#if defined(OS_MAC) || defined(OS_WIN)
       cur = cur.Append(FILE_PATH_LITERAL("Crashpad"));
-#else
-      cur = cur.Append(FILE_PATH_LITERAL("Crash Reports"));
-#endif
       create_dir = true;
       break;
     case chrome::DIR_APP_DICTIONARIES:

+ 5 - 1
shell/browser/electron_browser_client.cc

@@ -559,7 +559,11 @@ void ElectronBrowserClient::AppendExtraCommandLineSwitches(
     enable_crash_reporter = breakpad::IsCrashReporterEnabled();
   }
 
-  if (enable_crash_reporter) {
+  // Zygote Process gets booted before any JS runs, accessing GetClientId
+  // will end up touching DIR_USER_DATA path provider and this will
+  // configure default value because app.name from browser_init has
+  // not run yet.
+  if (enable_crash_reporter && process_type != ::switches::kZygoteProcess) {
     std::string switch_value =
         api::crash_reporter::GetClientId() + ",no_channel";
     command_line->AppendSwitchASCII(::switches::kEnableCrashReporter,