Index: chromecast/shell/browser/cast_content_browser_client.cc |
diff --git a/chromecast/shell/browser/cast_content_browser_client.cc b/chromecast/shell/browser/cast_content_browser_client.cc |
index 546aa809b8c84bfc2102eb4f27454f877e1a67fb..ad1ea3f23d6720e9c3f47905e8be4d9fab15eec9 100644 |
--- a/chromecast/shell/browser/cast_content_browser_client.cc |
+++ b/chromecast/shell/browser/cast_content_browser_client.cc |
@@ -17,6 +17,7 @@ |
#include "chromecast/shell/browser/devtools/cast_dev_tools_delegate.h" |
#include "chromecast/shell/browser/geolocation/cast_access_token_store.h" |
#include "chromecast/shell/browser/url_request_context_factory.h" |
+#include "components/crash/app/breakpad_linux.h" |
#include "content/public/browser/browser_thread.h" |
#include "content/public/browser/certificate_request_result_type.h" |
#include "content/public/browser/render_process_host.h" |
@@ -30,6 +31,10 @@ |
#include "chromecast/shell/browser/android/external_video_surface_container_impl.h" |
#endif // defined(OS_ANDROID) |
+#if defined(OS_ANDROID) |
+#include "components/crash/browser/crash_dump_manager_android.h" |
+#endif // defined(OS_ANDROID) |
+ |
namespace chromecast { |
namespace shell { |
@@ -228,6 +233,19 @@ void CastContentBrowserClient::GetAdditionalMappedFilesForChildProcess( |
mappings->Transfer( |
kAndroidPakDescriptor, |
base::ScopedFD(pak_with_flags.TakePlatformFile())); |
+ |
+ if (breakpad::IsCrashReporterEnabled()) { |
+ base::File minidump_file( |
+ breakpad::CrashDumpManager::GetInstance()->CreateMinidumpFile( |
+ child_process_id)); |
+ if (!minidump_file.IsValid()) { |
+ LOG(ERROR) << "Failed to create file for minidump, crash reporting will " |
+ << "be disabled for this process."; |
+ } else { |
+ mappings->Transfer(kAndroidMinidumpDescriptor, |
+ base::ScopedFD(minidump_file.TakePlatformFile())); |
+ } |
+ } |
#endif // defined(OS_ANDROID) |
} |