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.