summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-09-15 14:50:30 +0000
committersky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-09-15 14:50:30 +0000
commitcbe4af5db7454c636f54f0cb09a2c7fefa0ddf09 (patch)
tree139ef6fc7fc3f3b982595ca486055ca2e4388da4
parentc9f0f50202f5d44cd0e6bb60d49876e6929ea181 (diff)
downloadchromium_src-cbe4af5db7454c636f54f0cb09a2c7fefa0ddf09.zip
chromium_src-cbe4af5db7454c636f54f0cb09a2c7fefa0ddf09.tar.gz
chromium_src-cbe4af5db7454c636f54f0cb09a2c7fefa0ddf09.tar.bz2
Fixes crash in RenderWidgetHostViewWin/RenderWidgetHostView. Here's
the scenario that triggers it. Start chrome, open history, open a new tab and go to google.com, select history tab and close it by keyboard. This results in RenderWidgetHost::RendererExited being invoked, which invokes RenderViewGone on the view. This invokes DestroyWindow. It appears that DestroyWindow may invoke OnFinalMessage asynchronously (happens when close with keyboard, but not mouse), which means at the time we end up in OnFinalMessage the RenderWidgetHost may have been destroyed. This seems like a long standing issue and I'm not sure why we're hitting it now. Maybe we changed when RenderViewGone is sent? BUG=96588 TEST=none R=darin@chromium.org Review URL: http://codereview.chromium.org/7887041 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@101292 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--content/browser/renderer_host/render_widget_host_view_win.cc4
1 files changed, 1 insertions, 3 deletions
diff --git a/content/browser/renderer_host/render_widget_host_view_win.cc b/content/browser/renderer_host/render_widget_host_view_win.cc
index 22d4f49..5003006 100644
--- a/content/browser/renderer_host/render_widget_host_view_win.cc
+++ b/content/browser/renderer_host/render_widget_host_view_win.cc
@@ -707,9 +707,7 @@ void RenderWidgetHostViewWin::RenderViewGone(base::TerminationStatus status,
int error_code) {
// TODO(darin): keep this around, and draw sad-tab into it.
UpdateCursorIfOverSelf();
- being_destroyed_ = true;
- CleanupCompositorWindow();
- DestroyWindow();
+ Destroy();
}
void RenderWidgetHostViewWin::WillWmDestroy() {