diff options
author | willchan@chromium.org <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-05-20 20:20:46 +0000 |
---|---|---|
committer | willchan@chromium.org <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-05-20 20:20:46 +0000 |
commit | 0f52fdcc6f27784e8041cac26a2119b4deab0952 (patch) | |
tree | 6554f154956106b75b35f5a7d1f8b27b10b99ba6 /chrome/browser/renderer_host | |
parent | 5d6980ecb591643021463b93dbbaa24653bb3263 (diff) | |
download | chromium_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.cc | 8 |
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); } |