Commit 2c4cf5e0 authored by rvargas@chromium.org's avatar rvargas@chromium.org

Make sure unexpected exit paths generate crash dumps for the browser.

Right now it is possible for some random code to directly terminate the
browser process without generating a crash dump. This CL should fix that.

BUG=none
TEST=none
R=jam@chromium.org

Review URL: https://codereview.chromium.org/22264015

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@217049 0039d316-1c4b-4281-b951-d872f2087c98
parent 62c3bbcf
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
#if defined(OS_WIN) #if defined(OS_WIN)
#include "base/win/metro.h" #include "base/win/metro.h"
#include "base/win/win_util.h"
#include "base/win/windows_version.h" #include "base/win/windows_version.h"
#include "ui/base/win/scoped_ole_initializer.h" #include "ui/base/win/scoped_ole_initializer.h"
#endif #endif
...@@ -103,6 +104,13 @@ class BrowserMainRunnerImpl : public BrowserMainRunner { ...@@ -103,6 +104,13 @@ class BrowserMainRunnerImpl : public BrowserMainRunner {
if (result_code > 0) if (result_code > 0)
return result_code; return result_code;
#if defined(OS_WIN)
// The process should crash when going through abnormal termination.
// Make sure this is done only when Shutdown() will be called.
base::win::SetShouldCrashOnProcessDetach(true);
base::win::SetAbortBehaviorForCrashReporting();
#endif
// Return -1 to indicate no early termination. // Return -1 to indicate no early termination.
return -1; return -1;
} }
...@@ -130,6 +138,10 @@ class BrowserMainRunnerImpl : public BrowserMainRunner { ...@@ -130,6 +138,10 @@ class BrowserMainRunnerImpl : public BrowserMainRunner {
notification_service_.reset(NULL); notification_service_.reset(NULL);
#if defined(OS_WIN)
base::win::SetShouldCrashOnProcessDetach(false);
#endif
is_shutdown_ = true; is_shutdown_ = true;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment