summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorestade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-12-11 03:19:39 +0000
committerestade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-12-11 03:19:39 +0000
commite72bd1fc6117bde3d7f95c250fd8ef68bd50853b (patch)
treeb01e82c4025c4ba2b6e06bed673204da696b30ed
parent54cb973e9c174b4542198239ce965edb43a062fe (diff)
downloadchromium_src-e72bd1fc6117bde3d7f95c250fd8ef68bd50853b.zip
chromium_src-e72bd1fc6117bde3d7f95c250fd8ef68bd50853b.tar.gz
chromium_src-e72bd1fc6117bde3d7f95c250fd8ef68bd50853b.tar.bz2
Revert r34321 as it breaks the task manager:
------------------------------------------------------------------------ r34321 | estade@chromium.org | 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
-rw-r--r--chrome/browser/extensions/extension_host.cc24
-rw-r--r--chrome/browser/extensions/extension_host.h1
2 files changed, 10 insertions, 15 deletions
diff --git a/chrome/browser/extensions/extension_host.cc b/chrome/browser/extensions/extension_host.cc
index 8407fc4..767da27 100644
--- a/chrome/browser/extensions/extension_host.cc
+++ b/chrome/browser/extensions/extension_host.cc
@@ -131,8 +131,6 @@ ExtensionHost::ExtensionHost(Extension* extension, SiteInstance* site_instance,
// 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 @@ void ExtensionHost::Observe(NotificationType type,
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 @@ void ExtensionHost::UpdatePreferredSize(const gfx::Size& new_size) {
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.
diff --git a/chrome/browser/extensions/extension_host.h b/chrome/browser/extensions/extension_host.h
index df03314..5f2188c 100644
--- a/chrome/browser/extensions/extension_host.h
+++ b/chrome/browser/extensions/extension_host.h
@@ -104,6 +104,7 @@ class ExtensionHost : public ExtensionPopupHost::PopupDelegate,
virtual void RenderViewCreated(RenderViewHost* render_view_host);
virtual ViewType::Type GetRenderViewType() const;
virtual int GetBrowserWindowID() const;
+ virtual void RenderViewGone(RenderViewHost* render_view_host);
virtual void DidNavigate(RenderViewHost* render_view_host,
const ViewHostMsg_FrameNavigate_Params& params);
virtual void DidStopLoading();