| Index: android_webview/crash_reporter/aw_microdump_crash_reporter.cc | 
| diff --git a/android_webview/crash_reporter/aw_microdump_crash_reporter.cc b/android_webview/crash_reporter/aw_microdump_crash_reporter.cc | 
| index aac36e8c35324ff47551cb6dbf928975b0a0fef3..af5c07cfd3e12f63e371344399a0fe74eb6e6d81 100644 | 
| --- a/android_webview/crash_reporter/aw_microdump_crash_reporter.cc | 
| +++ b/android_webview/crash_reporter/aw_microdump_crash_reporter.cc | 
| @@ -13,6 +13,7 @@ | 
| #include "build/build_config.h" | 
| #include "components/crash/content/app/breakpad_linux.h" | 
| #include "components/crash/content/app/crash_reporter_client.h" | 
| +#include "content/public/common/content_switches.h" | 
|  | 
| namespace android_webview { | 
| namespace crash_reporter { | 
| @@ -23,6 +24,9 @@ class AwCrashReporterClient : public ::crash_reporter::CrashReporterClient { | 
| public: | 
| AwCrashReporterClient() : dump_fd_(-1) {} | 
|  | 
| +  // Does not use lock, can only be called immediately after creation. | 
| +  void set_crash_signal_fd(int fd) { dump_fd_ = fd; } | 
| + | 
| // crash_reporter::CrashReporterClient implementation. | 
| bool IsRunningUnattended() override { return false; } | 
| bool GetCollectStatsConsent() override { return false; } | 
| @@ -40,6 +44,7 @@ class AwCrashReporterClient : public ::crash_reporter::CrashReporterClient { | 
| int GetAndroidMinidumpDescriptor() override { return dump_fd_; } | 
|  | 
| bool DumpWithoutCrashingToFd(int fd) { | 
| +    DCHECK(dump_fd_ == -1); | 
| base::AutoLock lock(dump_lock_); | 
| dump_fd_ = fd; | 
| base::debug::DumpWithoutCrashing(); | 
| @@ -109,7 +114,8 @@ bool SafeToUseSignalHandler() { | 
|  | 
| }  // namespace | 
|  | 
| -void EnableMicrodumpCrashReporter(const std::string& process_type) { | 
| +void EnableMicrodumpCrashReporter(const std::string& process_type, | 
| +                                  int crash_signal_fd) { | 
| if (g_enabled) { | 
| NOTREACHED() << "EnableMicrodumpCrashReporter called more than once"; | 
| return; | 
| @@ -122,7 +128,11 @@ void EnableMicrodumpCrashReporter(const std::string& process_type) { | 
| } | 
| #endif | 
|  | 
| -  ::crash_reporter::SetCrashReporterClient(g_crash_reporter_client.Pointer()); | 
| +  AwCrashReporterClient* client = g_crash_reporter_client.Pointer(); | 
| +  if (process_type == switches::kRendererProcess && crash_signal_fd != -1) { | 
| +    client->set_crash_signal_fd(crash_signal_fd); | 
| +  } | 
| +  ::crash_reporter::SetCrashReporterClient(client); | 
|  | 
| breakpad::InitMicrodumpCrashHandlerIfNecessary(process_type); | 
| g_enabled = true; | 
|  |