Chromium Code Reviews| Index: chrome/browser/renderer_host/render_widget_host_view_views.cc |
| diff --git a/chrome/browser/renderer_host/render_widget_host_view_views.cc b/chrome/browser/renderer_host/render_widget_host_view_views.cc |
| index 80804ad5b531c015aeb45955a65dcc86cdb923bc..54c3402b76d08b2311d6e24cce535777554e16b0 100644 |
| --- a/chrome/browser/renderer_host/render_widget_host_view_views.cc |
| +++ b/chrome/browser/renderer_host/render_widget_host_view_views.cc |
| @@ -130,8 +130,9 @@ RenderWidgetHostViewViews::RenderWidgetHostViewViews(RenderWidgetHost* host) |
| } |
| RenderWidgetHostViewViews::~RenderWidgetHostViewViews() { |
| - RenderViewGone(base::TERMINATION_STATUS_NORMAL_TERMINATION, |
| - ResultCodes::NORMAL_EXIT); |
| + if (GetRenderWidgetHost()) |
| + RenderViewGone(base::TERMINATION_STATUS_NORMAL_TERMINATION, |
|
Greg Spencer (Chromium)
2011/01/19 21:59:38
Hmm. I can see what you mean, and in fact this is
|
| + ResultCodes::NORMAL_EXIT); |
| } |
| void RenderWidgetHostViewViews::InitAsChild() { |
| @@ -293,8 +294,12 @@ void RenderWidgetHostViewViews::RenderViewGone(base::TerminationStatus status, |
| } |
| void RenderWidgetHostViewViews::Destroy() { |
| - // TODO(anicolao): deal with any special popup cleanup |
| - NOTIMPLEMENTED(); |
| + // host_'s destruction brought us here, null it out so we don't use it |
| + host_ = NULL; |
| + |
| + if (GetParent()) |
| + GetParent()->RemoveChildView(this); |
| + MessageLoop::current()->DeleteSoon(FROM_HERE, this); |
| } |
| void RenderWidgetHostViewViews::SetTooltipText(const std::wstring& tip) { |