diff options
author | yurys@google.com <yurys@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-03-23 10:43:58 +0000 |
---|---|---|
committer | yurys@google.com <yurys@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-03-23 10:43:58 +0000 |
commit | 7aa27fdf4e135daef7f49a37a61e506c165ce214 (patch) | |
tree | 20005ed71165173cd988d655a9534765439848ef /chrome/browser/browser.cc | |
parent | 7197f4999afa5e767fa9ed76fdc7e67db080f9d2 (diff) | |
download | chromium_src-7aa27fdf4e135daef7f49a37a61e506c165ce214.zip chromium_src-7aa27fdf4e135daef7f49a37a61e506c165ce214.tar.gz chromium_src-7aa27fdf4e135daef7f49a37a61e506c165ce214.tar.bz2 |
Currently we have two types of devtools UI: Chrome built in developer tools window and remote debugger connected over TCP(apavlov is working on it). To allow DevToolsManager coordinate both types of devtools uniformly their API is extracted into DevToolsClientHost interface.
Fix purify errors in DevToolsManager unit tests.
BUG=9150
Review URL: http://codereview.chromium.org/50009
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@12274 0039d316-1c4b-4281-b951-d872f2087c98
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 |