summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormark@chromium.org <mark@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-05-11 15:05:26 +0000
committermark@chromium.org <mark@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-05-11 15:05:26 +0000
commit7cf745058a3ed22b59d3c1df5cf99b1f80562641 (patch)
tree15b8b07d2630e5c6d8d81e715c2152fe4dd2390b
parent4633282c8a0f54e066aed904bfeb590d9c8a58db (diff)
downloadchromium_src-7cf745058a3ed22b59d3c1df5cf99b1f80562641.zip
chromium_src-7cf745058a3ed22b59d3c1df5cf99b1f80562641.tar.gz
chromium_src-7cf745058a3ed22b59d3c1df5cf99b1f80562641.tar.bz2
Treat TERMINATION_STATUS_ABNORMAL_TERMINATION in browser child processes as
crashes. Child processes on the Mac that are Breakpad-enabled will not appear to have crashed according to the logic in base::GetTerminationStatus, they'll show up as TERMINATION_STATUS_ABNORMAL_TERMINATION instead of TERMINATION_STATUS_PROCESS_CRASHED. This happens because they exit from their crash handler to suppress the system's redundant crash handler. This broke in r69082, which introduced the TerminationStatus enum to replace a simpler did_crash boolean value set by logic treating both death by signal and nonzero exit status as a crash. BUG=82172 TEST=Mac plugin crash count Review URL: http://codereview.chromium.org/7002032 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@84979 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--content/browser/browser_child_process_host.cc3
1 files changed, 2 insertions, 1 deletions
diff --git a/content/browser/browser_child_process_host.cc b/content/browser/browser_child_process_host.cc
index c5528d6..ad378c8 100644
--- a/content/browser/browser_child_process_host.cc
+++ b/content/browser/browser_child_process_host.cc
@@ -124,7 +124,8 @@ void BrowserChildProcessHost::OnChildDied() {
int exit_code;
base::TerminationStatus status = GetChildTerminationStatus(&exit_code);
switch (status) {
- case base::TERMINATION_STATUS_PROCESS_CRASHED: {
+ case base::TERMINATION_STATUS_PROCESS_CRASHED:
+ case base::TERMINATION_STATUS_ABNORMAL_TERMINATION: {
OnProcessCrashed(exit_code);
// Report that this child process crashed.