summaryrefslogtreecommitdiffstats
path: root/chrome/browser/renderer_host
diff options
context:
space:
mode:
authorwillchan@chromium.org <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-05-20 20:20:46 +0000
committerwillchan@chromium.org <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-05-20 20:20:46 +0000
commit0f52fdcc6f27784e8041cac26a2119b4deab0952 (patch)
tree6554f154956106b75b35f5a7d1f8b27b10b99ba6 /chrome/browser/renderer_host
parent5d6980ecb591643021463b93dbbaa24653bb3263 (diff)
downloadchromium_src-0f52fdcc6f27784e8041cac26a2119b4deab0952.zip
chromium_src-0f52fdcc6f27784e8041cac26a2119b4deab0952.tar.gz
chromium_src-0f52fdcc6f27784e8041cac26a2119b4deab0952.tar.bz2
Change RenderWidgetHostViewGtk::Destroy() to call gtk_widget_destroy().
BUG=http://www.crbug.com/11847. TEST=Navigate to an interstitial page. Click on Proceed. It should not crash. Review URL: http://codereview.chromium.org/115549 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@16518 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/renderer_host')
-rw-r--r--chrome/browser/renderer_host/render_widget_host_view_gtk.cc8
1 files changed, 8 insertions, 0 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 8419553..e349944 100644
--- a/chrome/browser/renderer_host/render_widget_host_view_gtk.cc
+++ b/chrome/browser/renderer_host/render_widget_host_view_gtk.cc
@@ -339,6 +339,14 @@ void RenderWidgetHostViewGtk::Destroy() {
gtk_widget_destroy(gtk_widget_get_parent(view_.get()));
}
+ // Remove |view_| from all containers now, so nothing else can hold a
+ // reference to |view_|'s widget except possibly a gtk signal handler if
+ // this code is currently executing within the context of a gtk signal
+ // handler. Note that |view_| is still alive after this call. It will be
+ // deallocated in the destructor.
+ // See http://www.crbug.com/11847 for details.
+ gtk_widget_destroy(view_.get());
+
MessageLoop::current()->DeleteSoon(FROM_HERE, this);
}