Index: content/browser/renderer_host/test_render_view_host.cc |
diff --git a/content/browser/renderer_host/test_render_view_host.cc b/content/browser/renderer_host/test_render_view_host.cc |
index 2c974fa8840bde926b98746849dd7c4c6c0ab0f4..13968b95bf7fac5caff5b36edac0ea09bbfed79c 100644 |
--- a/content/browser/renderer_host/test_render_view_host.cc |
+++ b/content/browser/renderer_host/test_render_view_host.cc |
@@ -64,6 +64,7 @@ void InitNavigateParams(ViewHostMsg_FrameNavigate_Params* params, |
TestRenderWidgetHostView::TestRenderWidgetHostView(RenderWidgetHost* rwh) |
: rwh_(RenderWidgetHostImpl::From(rwh)), |
is_showing_(false) { |
+ rwh_->SetView(this); |
} |
TestRenderWidgetHostView::~TestRenderWidgetHostView() { |
@@ -110,6 +111,8 @@ void TestRenderWidgetHostView::RenderViewGone(base::TerminationStatus status, |
delete this; |
} |
+void TestRenderWidgetHostView::Destroy() { delete this; } |
+ |
gfx::Rect TestRenderWidgetHostView::GetViewBounds() const { |
return gfx::Rect(); |
} |
@@ -254,11 +257,10 @@ TestRenderViewHost::TestRenderViewHost( |
simulate_fetch_via_proxy_(false), |
simulate_history_list_was_cleared_(false), |
contents_mime_type_("text/html") { |
- // For normal RenderViewHosts, this is freed when |Shutdown()| is |
- // called. For TestRenderViewHost, the view is explicitly |
- // deleted in the destructor below, because |
- // TestRenderWidgetHostView::Destroy() doesn't |delete this|. |
- SetView(new TestRenderWidgetHostView(this)); |
+ // TestRenderWidgetHostView installs itself into this->view_ in its |
+ // constructor, and deletes itself when TestRenderWidgetHostView::Destroy() is |
+ // called. |
+ new TestRenderWidgetHostView(this); |
main_frame_id_ = kFrameId; |
} |
@@ -266,9 +268,6 @@ TestRenderViewHost::TestRenderViewHost( |
TestRenderViewHost::~TestRenderViewHost() { |
if (delete_counter_) |
++*delete_counter_; |
- |
- // Since this isn't a traditional view, we have to delete it. |
- delete GetView(); |
} |
bool TestRenderViewHost::CreateRenderView( |