diff options
Diffstat (limited to 'chrome/browser/browser.cc')
-rw-r--r-- | chrome/browser/browser.cc | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/chrome/browser/browser.cc b/chrome/browser/browser.cc index b45ab43..b2d7f7b 100644 --- a/chrome/browser/browser.cc +++ b/chrome/browser/browser.cc @@ -16,6 +16,7 @@ #include "chrome/browser/browser_window.h" #include "chrome/browser/character_encoding.h" #include "chrome/browser/debugger/devtools_manager.h" +#include "chrome/browser/debugger/devtools_window.h" #include "chrome/browser/location_bar.h" #include "chrome/browser/metrics/user_metrics.h" #include "chrome/browser/net/url_fixer_upper.h" @@ -941,11 +942,19 @@ void Browser::OpenDebuggerWindow() { #ifndef CHROME_DEBUGGER_DISABLED UserMetrics::RecordAction(L"Debugger", profile_); TabContents* current_tab = GetSelectedTabContents(); - if (current_tab->AsWebContents()) { + WebContents* wc = current_tab->AsWebContents(); + if (wc) { if (CommandLine::ForCurrentProcess()->HasSwitch( switches::kEnableOutOfProcessDevTools)) { - WebContents* wc = current_tab->AsWebContents(); - g_browser_process->devtools_manager()->ShowDevToolsForWebContents(wc); + DevToolsManager* manager = g_browser_process->devtools_manager(); + DevToolsClientHost* host = manager->GetDevToolsClientHostFor(*wc); + if (!host) { + host = DevToolsWindow::Create(); + manager->RegisterDevToolsClientHostFor(*wc, host); + } + DevToolsWindow* window = host->AsDevToolsWindow(); + if (window) + window->Show(); } else { // Only one debugger instance can exist at a time right now. // TODO(erikkay): need an alert, dialog, something |