From 18beec52826496c4098e243afd64cba7d1fb0959 Mon Sep 17 00:00:00 2001 From: "willchan@chromium.org" Date: Fri, 8 May 2009 23:14:39 +0000 Subject: Stop leaking RenderWidgetHostViewGtk. Don't bother calling gfx::RemoveAllChildren() in TabContentsViewGtk when creating a new RWHV, since any previously existing RWHV widget should already have been deleted. This also fixes interstitial pages crashing. Although instead we have two RWHV widgets in the same TabContentsView vbox :) I'll fix that in a later changelist. Also update the valgrind suppressions file. BUG=http://www.crbug.com/10747 BUG=http://www.crbug.com/8486 Review URL: http://codereview.chromium.org/115145 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@15695 0039d316-1c4b-4281-b951-d872f2087c98 --- .../browser/renderer_host/render_widget_host_view_gtk.cc | 1 + chrome/browser/tab_contents/tab_contents_view_gtk.cc | 1 - tools/valgrind/suppressions.txt | 15 --------------- 3 files changed, 1 insertion(+), 16 deletions(-) diff --git a/chrome/browser/renderer_host/render_widget_host_view_gtk.cc b/chrome/browser/renderer_host/render_widget_host_view_gtk.cc index a31c70c..e737606 100644 --- a/chrome/browser/renderer_host/render_widget_host_view_gtk.cc +++ b/chrome/browser/renderer_host/render_widget_host_view_gtk.cc @@ -309,6 +309,7 @@ void RenderWidgetHostViewGtk::Destroy() { // does the right thing, automatically removing ourselves from our parent // container. view_.Destroy(); + delete this; } void RenderWidgetHostViewGtk::SetTooltipText(const std::wstring& tooltip_text) { diff --git a/chrome/browser/tab_contents/tab_contents_view_gtk.cc b/chrome/browser/tab_contents/tab_contents_view_gtk.cc index d132e28..4ef882b 100644 --- a/chrome/browser/tab_contents/tab_contents_view_gtk.cc +++ b/chrome/browser/tab_contents/tab_contents_view_gtk.cc @@ -109,7 +109,6 @@ RenderWidgetHostView* TabContentsViewGtk::CreateViewForWidget( GDK_POINTER_MOTION_MASK); g_signal_connect(content_view, "button-press-event", G_CALLBACK(OnMouseDown), this); - gfx::RemoveAllChildren(vbox_.get()); gtk_box_pack_start(GTK_BOX(vbox_.get()), content_view, TRUE, TRUE, 0); return view; } diff --git a/tools/valgrind/suppressions.txt b/tools/valgrind/suppressions.txt index 6df51bf..4df5902 100644 --- a/tools/valgrind/suppressions.txt +++ b/tools/valgrind/suppressions.txt @@ -439,21 +439,6 @@ fun:_ZN22RendererSecurityPolicy15GrantRequestURLEiRK4GURL } { - # see http://crbug.com/10747 - bug_10747 - Memcheck:Leak - fun:_Znwj - fun:_ZN18WebContentsViewGtk19CreateViewForWidgetEP16RenderWidgetHost - fun:_ZN11WebContents32CreateRenderViewForRenderManagerEP14RenderViewHost -} -{ - # one more from http://crbug.com/10747 - bug_10747b - Memcheck:Leak - fun:_Znwj - fun:_ZN18TabContentsViewGtk19CreateViewForWidgetEP16RenderWidgetHost -} -{ # see http://crbug.com/10748 bug_10748 Memcheck:Leak -- cgit v1.1