diff options
author | pkasting@chromium.org <pkasting@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-05-08 19:41:49 +0000 |
---|---|---|
committer | pkasting@chromium.org <pkasting@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-05-08 19:41:49 +0000 |
commit | 0800c6694b82aebb27f8021acc759e04dfe2542f (patch) | |
tree | e97d3ffa471f6f9de84d118d9b1b7160276601a1 /chrome/browser/debugger | |
parent | b6c874589ef2f9212314ef9d2a5f1cfc19046fe7 (diff) | |
download | chromium_src-0800c6694b82aebb27f8021acc759e04dfe2542f.zip chromium_src-0800c6694b82aebb27f8021acc759e04dfe2542f.tar.gz chromium_src-0800c6694b82aebb27f8021acc759e04dfe2542f.tar.bz2 |
Enable ctrl-shift-L for app/popup windows and fix a crash. Patch by Yusuke Sato (see http://codereview.chromium.org/115050 ), r=me.
BUG=8071,11559
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@15671 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/debugger')
-rw-r--r-- | chrome/browser/debugger/debugger_host.h | 4 | ||||
-rw-r--r-- | chrome/browser/debugger/debugger_host_impl.cpp | 5 | ||||
-rw-r--r-- | chrome/browser/debugger/debugger_host_impl.h | 3 | ||||
-rw-r--r-- | chrome/browser/debugger/debugger_io.h | 3 | ||||
-rw-r--r-- | chrome/browser/debugger/debugger_window.cc | 22 | ||||
-rw-r--r-- | chrome/browser/debugger/debugger_window.h | 4 |
6 files changed, 32 insertions, 9 deletions
diff --git a/chrome/browser/debugger/debugger_host.h b/chrome/browser/debugger/debugger_host.h index 1240f03..72e7276 100644 --- a/chrome/browser/debugger/debugger_host.h +++ b/chrome/browser/debugger/debugger_host.h @@ -34,6 +34,10 @@ class DebuggerHost : public base::RefCountedThreadSafe<DebuggerHost> { // Handles messages from debugger UI. virtual void OnDebuggerHostMsg(const ListValue* args) {} + + // Shows the debugger UI and returns true if it has any. + virtual bool ShowWindow() { return false; } + private: DISALLOW_COPY_AND_ASSIGN(DebuggerHost); diff --git a/chrome/browser/debugger/debugger_host_impl.cpp b/chrome/browser/debugger/debugger_host_impl.cpp index c9bfa21..09b4e24 100644 --- a/chrome/browser/debugger/debugger_host_impl.cpp +++ b/chrome/browser/debugger/debugger_host_impl.cpp @@ -183,3 +183,8 @@ TabContents* DebuggerHostImpl::GetTabContentsBeingDebugged() const { return NULL; } } + +bool DebuggerHostImpl::ShowWindow() { + return io_->ShowWindow(); +} + diff --git a/chrome/browser/debugger/debugger_host_impl.h b/chrome/browser/debugger/debugger_host_impl.h index f8c97f3..66204e3 100644 --- a/chrome/browser/debugger/debugger_host_impl.h +++ b/chrome/browser/debugger/debugger_host_impl.h @@ -34,8 +34,9 @@ class DebuggerHostImpl : public DebuggerHost { // Handles messages from debugger UI. virtual void OnDebuggerHostMsg(const ListValue* args); - private: + virtual bool ShowWindow(); + private: TabContents* GetTabContentsBeingDebugged() const; scoped_refptr<DebuggerInputOutput> io_; diff --git a/chrome/browser/debugger/debugger_io.h b/chrome/browser/debugger/debugger_io.h index 68b04e6..eeefd45 100644 --- a/chrome/browser/debugger/debugger_io.h +++ b/chrome/browser/debugger/debugger_io.h @@ -45,6 +45,9 @@ public: virtual void CallFunctionInPage(const std::wstring& name, ListValue* argv) {} + // Shows the debugger UI and returns true if it has any. + virtual bool ShowWindow() { return false; } + protected: DebuggerHost* debugger_; diff --git a/chrome/browser/debugger/debugger_window.cc b/chrome/browser/debugger/debugger_window.cc index 4d77dc4..7b3738b 100644 --- a/chrome/browser/debugger/debugger_window.cc +++ b/chrome/browser/debugger/debugger_window.cc @@ -24,20 +24,17 @@ DebuggerWindow::DebuggerWindow() : window_(NULL), DebuggerWindow::~DebuggerWindow() { } -bool DebuggerWindow::DoesDebuggerExist() { +DebuggerHost* DebuggerWindow::GetAnyExistingDebugger() { DebuggerWrapper* wrapper = g_browser_process->debugger_wrapper(); if (!wrapper) - return false; - return wrapper->GetDebugger() != NULL; + return NULL; + return wrapper->GetDebugger(); } void DebuggerWindow::Show(TabContents* tab) { #ifndef CHROME_DEBUGGER_DISABLED - if (window_) { - window_->Show(); - view_->OnShow(); + if (ShowWindow()) return; - } view_ = new DebuggerView(this); window_ = views::Window::CreateChromeWindow(NULL, gfx::Rect(), this); window_->Show(); @@ -137,6 +134,17 @@ void DebuggerWindow::CallFunctionInPage(const std::wstring& name, } } +bool DebuggerWindow::ShowWindow() { +#ifndef CHROME_DEBUGGER_DISABLED + if (window_) { + window_->Show(); + view_->OnShow(); + return true; + } +#endif + return false; +} + /////////////////////////////////////////////////////////////////// // views::WindowDelegate methods diff --git a/chrome/browser/debugger/debugger_window.h b/chrome/browser/debugger/debugger_window.h index 258396f..b22fe16 100644 --- a/chrome/browser/debugger/debugger_window.h +++ b/chrome/browser/debugger/debugger_window.h @@ -9,6 +9,7 @@ #include "views/window/window.h" #include "views/window/window_delegate.h" +class DebuggerHost; class DebuggerView; class ListValue; class TabContents; @@ -20,7 +21,7 @@ class DebuggerWindow : public DebuggerInputOutput, virtual ~DebuggerWindow(); // returns true if a debugger has already been instantiated - static bool DoesDebuggerExist(); + static DebuggerHost* GetAnyExistingDebugger(); // Show the window void Show(TabContents* tab); @@ -35,6 +36,7 @@ class DebuggerWindow : public DebuggerInputOutput, virtual void Start(DebuggerHost* debugger); virtual void SetDebuggerReady(bool ready); virtual void SetDebuggerBreak(bool brk); + virtual bool ShowWindow(); // Note that this method will take ownership of argv. virtual void CallFunctionInPage(const std::wstring& name, |