Index: content/browser/renderer_host/render_view_host_impl.cc |
diff --git a/content/browser/renderer_host/render_view_host_impl.cc b/content/browser/renderer_host/render_view_host_impl.cc |
index d5ef454ffe8bc8996cced31789daeb808abe694f..4e81849d222a27d2e458cb6ff239ea2f4f4749de 100644 |
--- a/content/browser/renderer_host/render_view_host_impl.cc |
+++ b/content/browser/renderer_host/render_view_host_impl.cc |
@@ -227,6 +227,7 @@ RenderViewHostImpl::RenderViewHostImpl( |
DCHECK(instance_.get()); |
CHECK(delegate_); // http://crbug.com/82827 |
+ GetProcess()->AddObserver(this); |
GetProcess()->EnableSendQueue(); |
if (ResourceDispatcherHostImpl::Get()) { |
@@ -261,6 +262,7 @@ RenderViewHostImpl::~RenderViewHostImpl() { |
} |
delegate_->RenderViewDeleted(this); |
+ GetProcess()->RemoveObserver(this); |
} |
RenderViewHostDelegate* RenderViewHostImpl::GetDelegate() const { |
@@ -580,6 +582,17 @@ void RenderViewHostImpl::RequestFindMatchRects(int current_version) { |
} |
#endif |
+void RenderViewHostImpl::RenderProcessExited(RenderProcessHost* host, |
+ base::TerminationStatus status, |
+ int exit_code) { |
+ if (!renderer_initialized()) |
+ return; |
+ |
+ RenderWidgetHostImpl::RendererExited(status, exit_code); |
+ delegate_->RenderViewTerminated( |
+ this, static_cast<base::TerminationStatus>(status), exit_code); |
+} |
+ |
void RenderViewHostImpl::DragTargetDragEnter( |
const DropData& drop_data, |
const gfx::Point& client_pt, |