diff options
author | sky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-09-15 14:50:30 +0000 |
---|---|---|
committer | sky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-09-15 14:50:30 +0000 |
commit | cbe4af5db7454c636f54f0cb09a2c7fefa0ddf09 (patch) | |
tree | 139ef6fc7fc3f3b982595ca486055ca2e4388da4 | |
parent | c9f0f50202f5d44cd0e6bb60d49876e6929ea181 (diff) | |
download | chromium_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.cc | 4 |
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() { |