Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1612)

Unified Diff: content/browser/renderer_host/test_render_view_host.cc

Issue 16267002: Re-fix http://crbug.com/87176, and add a test. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Much shorter test Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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(

Powered by Google App Engine
This is Rietveld 408576698