diff options
author | sky@google.com <sky@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-11-25 21:52:10 +0000 |
---|---|---|
committer | sky@google.com <sky@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-11-25 21:52:10 +0000 |
commit | 7fe2c0b8630fabd9919dc61757392ea2aac9d72b (patch) | |
tree | e62d4ffdc74da800596e584def2ba3eef58f5f8d /chrome/browser/web_contents_view.cc | |
parent | 1aba79c9137e3b44ab37b1d48f1575704331ed7e (diff) | |
download | chromium_src-7fe2c0b8630fabd9919dc61757392ea2aac9d72b.zip chromium_src-7fe2c0b8630fabd9919dc61757392ea2aac9d72b.tar.gz chromium_src-7fe2c0b8630fabd9919dc61757392ea2aac9d72b.tar.bz2 |
Attempt at fixing crash in WebContents::ShowWidget. I suspect this is
happening because the RenderWidgetHost is getting destroyed between
the time it is created but before it it shown (perhaps the renderer
went away).
BUG=4629
TEST=none
Review URL: http://codereview.chromium.org/12439
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@5998 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/web_contents_view.cc')
-rw-r--r-- | chrome/browser/web_contents_view.cc | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/chrome/browser/web_contents_view.cc b/chrome/browser/web_contents_view.cc index 931e36c..6675474 100644 --- a/chrome/browser/web_contents_view.cc +++ b/chrome/browser/web_contents_view.cc @@ -4,6 +4,18 @@ #include "chrome/browser/web_contents_view.h" +#include "chrome/browser/render_widget_host.h" + +void WebContentsView::RenderWidgetHostDestroyed(RenderWidgetHost* host) { + for (PendingWidgetViews::iterator i = pending_widget_views_.begin(); + i != pending_widget_views_.end(); ++i) { + if (host->view() == i->second) { + pending_widget_views_.erase(i); + return; + } + } +} + void WebContentsView::CreateNewWindow(int route_id, HANDLE modal_dialog_event) { // Save the created window associated with the route so we can show it later. pending_contents_[route_id] = CreateNewWindowInternal(route_id, |