Index: blimp/engine/app/blimp_content_main_delegate.cc |
diff --git a/blimp/engine/app/blimp_content_main_delegate.cc b/blimp/engine/app/blimp_content_main_delegate.cc |
index aa31459654ea1e93e9cc929792ffa99d5b036b68..6e7b445ad4ca90bf93f68ddabc470db80543ed17 100644 |
--- a/blimp/engine/app/blimp_content_main_delegate.cc |
+++ b/blimp/engine/app/blimp_content_main_delegate.cc |
@@ -4,18 +4,32 @@ |
#include "blimp/engine/app/blimp_content_main_delegate.h" |
+#include "base/base_switches.h" |
#include "base/command_line.h" |
#include "base/files/file.h" |
#include "base/files/file_path.h" |
+#include "base/lazy_instance.h" |
#include "base/logging.h" |
#include "base/path_service.h" |
#include "blimp/engine/app/blimp_content_browser_client.h" |
+#include "blimp/engine/app/blimp_engine_crash_reporter_client.h" |
#include "blimp/engine/renderer/blimp_content_renderer_client.h" |
+// TODO(marcinjb): Reenable gncheck for breakpad_linux.h after |
+// http://crbug.com/466890 is resolved. |
+#include "components/crash/content/app/breakpad_linux.h" // nogncheck |
+#include "components/crash/content/app/crash_reporter_client.h" |
+#include "content/public/common/content_switches.h" |
#include "mojo/public/cpp/bindings/interface_request.h" |
#include "ui/base/resource/resource_bundle.h" |
namespace blimp { |
namespace engine { |
+ |
+// Blimp engine crash client. This should be available globally and should be |
+// long lived. |
+base::LazyInstance<BlimpEngineCrashReporterClient> |
+ g_blimp_engine_crash_reporter_client = LAZY_INSTANCE_INITIALIZER; |
+ |
namespace { |
void InitLogging() { |
// TODO(haibinlu): Remove this before release. |
@@ -51,6 +65,15 @@ bool BlimpContentMainDelegate::BasicStartupComplete(int* exit_code) { |
} |
void BlimpContentMainDelegate::PreSandboxStartup() { |
+ // Enable crash reporting for all processes, and initialize the crash |
+ // reporter client. |
+ crash_reporter::SetCrashReporterClient( |
+ g_blimp_engine_crash_reporter_client.Pointer()); |
+ base::CommandLine* cmd = base::CommandLine::ForCurrentProcess(); |
+ cmd->AppendSwitch(::switches::kEnableCrashReporter); |
+ breakpad::InitCrashReporter( |
+ cmd->GetSwitchValueASCII(::switches::kProcessType)); |
+ |
InitializeResourceBundle(); |
} |