summaryrefslogtreecommitdiffstats
path: root/chrome/common
diff options
context:
space:
mode:
authorgspencer@chromium.org <gspencer@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-10-19 18:25:47 +0000
committergspencer@chromium.org <gspencer@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-10-19 18:25:47 +0000
commit22b61bab774f40b8388a5e1e5ae0c8b60f34bcc5 (patch)
tree670434c4208ff2a820b5d652274857b40c370e59 /chrome/common
parent3de2b0deb44020852a096946bd6a7c1d6033442c (diff)
downloadchromium_src-22b61bab774f40b8388a5e1e5ae0c8b60f34bcc5.zip
chromium_src-22b61bab774f40b8388a5e1e5ae0c8b60f34bcc5.tar.gz
chromium_src-22b61bab774f40b8388a5e1e5ae0c8b60f34bcc5.tar.bz2
Revert 63067 - This adds some plumbing for propagating the status and error code of a
renderer process that went away so that we can tell at the UI level what happened to the tab: did it crash, or was it killed by the OOM killer (or some other reason). This is in preparation for implementing a new UI for when a process is killed by the OOM on ChromeOS which handles it differently from a crash. Most of the changes are modifications of the argument list to include a status and error code for the exited process, but in addition the following was done: - Changed the name of DidProcessCrash to GetTerminationStatus. - Added some new enum values to TerminationStatus enum (and named it) in process_util.h, so it can be used as the status returned by WhatHappenedToProcess. - Improved process_util_unittest to actually test for crashing and terminated processes on all platforms. - Added a new notification for renderers that were killed. - Added error code information to crash notification. - Added status and error code information to renderer IPC message for RenderViewGone. - Added a UMA histogram count for number of renderer kills. [This change was previously reviewed and LGTM'd: http://codereview.chromium.org/3386014/show but due to issues with "git cl push" was never committed to the tree.] BUG=none TEST=ran new unit test. Test passes on try servers. Review URL: http://codereview.chromium.org/3869001 TBR=gspencer@chromium.org git-svn-id: svn://svn.chromium.org/chrome/trunk/src@63074 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/common')
-rw-r--r--chrome/common/notification_type.h16
-rw-r--r--chrome/common/render_messages_internal.h4
-rw-r--r--chrome/common/result_codes.h6
3 files changed, 8 insertions, 18 deletions
diff --git a/chrome/common/notification_type.h b/chrome/common/notification_type.h
index 5de67e7..1ba2c39 100644
--- a/chrome/common/notification_type.h
+++ b/chrome/common/notification_type.h
@@ -537,20 +537,12 @@ class NotificationType {
// The details are in a Details<ChildProcessInfo>.
CHILD_PROCESS_HOST_DISCONNECTED,
- // This message is sent when a child process disappears
- // unexpectedly as a result of a crash. There is no usable
- // source, since it is sent from an ephemeral task; register for
- // AllSources() to receive this notification. The details are in
- // a Details<ChildProcessInfo>.
+ // This message is sent when a child process disappears unexpectedly.
+ // There is no usable source, since it is sent from an ephemeral task;
+ // register for AllSources() to receive this notification. The details are
+ // in a Details<ChildProcessInfo>.
CHILD_PROCESS_CRASHED,
- // This message is sent when a child process disappears
- // unexpectedly as a result of a termination signal. There is no
- // usable source, since it is sent from an ephemeral task;
- // register for AllSources() to receive this notification. The
- // details are in a Details<ChildProcessInfo>.
- CHILD_PROCESS_WAS_KILLED,
-
// This message indicates that an instance of a particular child was
// created in a page. (If one page contains several regions rendered by
// the same child, this notification will occur once for each region
diff --git a/chrome/common/render_messages_internal.h b/chrome/common/render_messages_internal.h
index 40c1886..75eacdf 100644
--- a/chrome/common/render_messages_internal.h
+++ b/chrome/common/render_messages_internal.h
@@ -1163,9 +1163,7 @@ IPC_BEGIN_MESSAGES(ViewHost)
// Indicates the renderer process is gone. This actually is sent by the
// browser process to itself, but keeps the interface cleaner.
- IPC_MESSAGE_ROUTED2(ViewHostMsg_RenderViewGone,
- int, /* this really is base::TerminationStatus */
- int /* exit_code */)
+ IPC_MESSAGE_ROUTED0(ViewHostMsg_RenderViewGone)
// Sent by the renderer process to request that the browser close the view.
// This corresponds to the window.close() API, and the browser may ignore
diff --git a/chrome/common/result_codes.h b/chrome/common/result_codes.h
index 94ba503..6625cb0 100644
--- a/chrome/common/result_codes.h
+++ b/chrome/common/result_codes.h
@@ -21,9 +21,9 @@
class ResultCodes {
public:
enum ExitCode {
- NORMAL_EXIT = base::TERMINATION_STATUS_NORMAL_TERMINATION,
- TASKMAN_KILL = base::TERMINATION_STATUS_PROCESS_WAS_KILLED,
- HUNG = base::TERMINATION_STATUS_PROCESS_WAS_HUNG,
+ NORMAL_EXIT = base::PROCESS_END_NORMAL_TERMINATION,
+ TASKMAN_KILL = base::PROCESS_END_KILLED_BY_USER,
+ HUNG = base::PROCESS_END_PROCESS_WAS_HUNG,
INVALID_CMDLINE_URL, // An invalid command line url was given.
SBOX_INIT_FAILED, // The sandbox could not be initialized.
GOOGLE_UPDATE_INIT_FAILED, // The Google Update client stub init failed.