diff options
author | ananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-09-29 03:44:06 +0000 |
---|---|---|
committer | ananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-09-29 03:44:06 +0000 |
commit | 529338471fec2ab9b07bac9b07e3477b20e0ae28 (patch) | |
tree | 4f1c41a6af893700a44cffc4f161b3a3fa18b42e /chrome/browser/external_tab_container.cc | |
parent | 32fdee6a378aefb6baa0df0937ccb73503a09450 (diff) | |
download | chromium_src-529338471fec2ab9b07bac9b07e3477b20e0ae28.zip chromium_src-529338471fec2ab9b07bac9b07e3477b20e0ae28.tar.gz chromium_src-529338471fec2ab9b07bac9b07e3477b20e0ae28.tar.bz2 |
Another attempt at landing this.
If IE was navigated away to a different page when the ChromeFrame inspector window was open
it would crash the browser.
The fix is to ensure that the inspector window is closed when the ExternalTabContainer window
is uninitialized.
This fixes bug http://code.google.com/p/chromium/issues/detail?id=22993
Bug=22993
Review URL: http://codereview.chromium.org/249028
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@27463 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/external_tab_container.cc')
-rw-r--r-- | chrome/browser/external_tab_container.cc | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/chrome/browser/external_tab_container.cc b/chrome/browser/external_tab_container.cc index b478f14..28a19d0 100644 --- a/chrome/browser/external_tab_container.cc +++ b/chrome/browser/external_tab_container.cc @@ -12,6 +12,7 @@ #include "base/win_util.h" #include "chrome/browser/automation/automation_provider.h" #include "chrome/browser/browser_window.h" +#include "chrome/browser/debugger/devtools_manager.h" #include "chrome/browser/load_notification_details.h" #include "chrome/browser/page_info_window.h" #include "chrome/browser/profile.h" @@ -157,6 +158,11 @@ bool ExternalTabContainer::Init(Profile* profile, void ExternalTabContainer::Uninitialize() { registrar_.RemoveAll(); if (tab_contents_) { + RenderViewHost* rvh = tab_contents_->render_view_host(); + if (rvh && DevToolsManager::GetInstance()) { + DevToolsManager::GetInstance()->UnregisterDevToolsClientHostFor(rvh); + } + NotificationService::current()->Notify( NotificationType::EXTERNAL_TAB_CLOSED, Source<NavigationController>(&tab_contents_->controller()), |