Revert r34321 as it breaks the task manager:

------------------------------------------------------------------------
r34321 | [email protected] | 2009-12-10 18:19:50 -0800 (Thu, 10 Dec 2009) | 5 lines

Extensions: don't send EXTENSION_PROCESS_CRASHED when the extension process is fast-terminated (i.e., didn't crash).

BUG=30057

Review URL: http://codereview.chromium.org/492014


Review URL: http://codereview.chromium.org/487023

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34324 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/chrome/browser/extensions/extension_host.cc b/chrome/browser/extensions/extension_host.cc
index 8407fc4c..767da27 100644
--- a/chrome/browser/extensions/extension_host.cc
+++ b/chrome/browser/extensions/extension_host.cc
@@ -131,8 +131,6 @@
   // to the task manager then.
   registrar_.Add(this, NotificationType::RENDERER_PROCESS_CREATED,
                  Source<RenderProcessHost>(render_process_host()));
-  registrar_.Add(this, NotificationType::RENDERER_PROCESS_CLOSED,
-                 Source<RenderProcessHost>(render_process_host()));
 }
 
 ExtensionHost::~ExtensionHost() {
@@ -233,19 +231,6 @@
         NotificationType::EXTENSION_PROCESS_CREATED,
         Source<Profile>(profile_),
         Details<ExtensionHost>(this));
-  } else if (type == NotificationType::RENDERER_PROCESS_CLOSED) {
-    Details<RenderProcessHost::RendererClosedDetails> closed_details =
-        static_cast<Details<RenderProcessHost::RendererClosedDetails> >(
-            details);
-    DCHECK(closed_details->was_extension_renderer);
-    if (!closed_details->did_crash)
-      return;
-
-    LOG(INFO) << "Sending EXTENSION_PROCESS_CRASHED for " + extension_->name();
-    NotificationService::current()->Notify(
-        NotificationType::EXTENSION_PROCESS_CRASHED,
-        Source<Profile>(profile_),
-        Details<ExtensionHost>(this));
   } else {
     NOTREACHED();
   }
@@ -256,6 +241,15 @@
     view_->UpdatePreferredSize(new_size);
 }
 
+void ExtensionHost::RenderViewGone(RenderViewHost* render_view_host) {
+  LOG(INFO) << "Sending EXTENSION_PROCESS_CRASHED for " + extension_->name();
+  DCHECK_EQ(render_view_host_, render_view_host);
+  NotificationService::current()->Notify(
+      NotificationType::EXTENSION_PROCESS_CRASHED,
+      Source<Profile>(profile_),
+      Details<ExtensionHost>(this));
+}
+
 void ExtensionHost::DidNavigate(RenderViewHost* render_view_host,
     const ViewHostMsg_FrameNavigate_Params& params) {
   // We only care when the outer frame changes.