diff options
author | yurys@chromium.org <yurys@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-12-01 16:21:44 +0000 |
---|---|---|
committer | yurys@chromium.org <yurys@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-12-01 16:21:44 +0000 |
commit | 0e12d7d59d4778e1a8ef692d244bf66aea1a80b8 (patch) | |
tree | 11fd0f2f8d0ab431f59084541922d6c971876f99 /chrome/browser/debugger/devtools_window.h | |
parent | 5581458c8b7ac9e7117d96606d74e574c41df8d6 (diff) | |
download | chromium_src-0e12d7d59d4778e1a8ef692d244bf66aea1a80b8.zip chromium_src-0e12d7d59d4778e1a8ef692d244bf66aea1a80b8.tar.gz chromium_src-0e12d7d59d4778e1a8ef692d244bf66aea1a80b8.tar.bz2 |
Define DevTools content API
The API consists of the following parts:
* DevToolsManager routes messages between devtools agents and clients
* DevToolsAgentHost provides an abstract interface to the debuggee, currently it is either RenderViewHost or Shared Worker. Client can obtain DevToolsAgentHost from DevToolsAgentHostRegistry.
* DevToolsClientHost is an API that should be implemented by DevTools front-end. There is a default Chromium implementation living in chrome/ and a remote debugging server which also implements this interface. Clients can extend it in order to provide custom front-end. There is a default DevTools front-end implementation and content/ provides a way for creating corresponding DevToolsClientHost by means of DevToolsClientHost::CreateDevToolsFrontendHost. The embedder just needs to provide a concrete delegate.
* This patch also removes DevToolsHost_ForwardToAgent and DevToolsHost_ForwardToClient IPC messages which were used to forward only one message. DevTools IPC messages are now hidden behind the devtools content API.
BUG=104625
TEST=Existing tests
Review URL: http://codereview.chromium.org/8549022
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@112473 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/debugger/devtools_window.h')
-rw-r--r-- | chrome/browser/debugger/devtools_window.h | 26 |
1 files changed, 16 insertions, 10 deletions
diff --git a/chrome/browser/debugger/devtools_window.h b/chrome/browser/debugger/devtools_window.h index a9616e3..49c2c17 100644 --- a/chrome/browser/debugger/devtools_window.h +++ b/chrome/browser/debugger/devtools_window.h @@ -11,9 +11,9 @@ #include "base/basictypes.h" #include "chrome/browser/debugger/devtools_toggle_action.h" -#include "content/browser/debugger/devtools_client_host.h" #include "content/browser/tab_contents/tab_contents_delegate.h" -#include "content/public/browser/devtools_frontend_window_delegate.h" +#include "content/public/browser/devtools_client_host.h" +#include "content/public/browser/devtools_frontend_host_delegate.h" #include "content/public/browser/notification_observer.h" #include "content/public/browser/notification_registrar.h" @@ -23,7 +23,6 @@ class Message; class Browser; class BrowserWindow; -class DevToolsAgentHost; class PrefService; class Profile; class RenderViewHost; @@ -33,10 +32,14 @@ namespace base { class Value; } -class DevToolsWindow : public DevToolsClientHost, - private content::NotificationObserver, +namespace content { +class DevToolsAgentHost; +class DevToolsClientHost; +} + +class DevToolsWindow : private content::NotificationObserver, private TabContentsDelegate, - private content::DevToolsFrontendWindowDelegate { + private content::DevToolsFrontendHostDelegate { public: static const char kDevToolsApp[]; static void RegisterUserPrefs(PrefService* prefs); @@ -45,7 +48,7 @@ class DevToolsWindow : public DevToolsClientHost, static DevToolsWindow* OpenDevToolsWindowForWorker( Profile* profile, - DevToolsAgentHost* worker_agent); + content::DevToolsAgentHost* worker_agent); static DevToolsWindow* CreateDevToolsWindowForWorker(Profile* profile); static DevToolsWindow* OpenDevToolsWindow(RenderViewHost* inspected_rvh); static DevToolsWindow* ToggleDevToolsWindow(RenderViewHost* inspected_rvh, @@ -55,7 +58,6 @@ class DevToolsWindow : public DevToolsClientHost, virtual ~DevToolsWindow(); // Overridden from DevToolsClientHost. - virtual void SendMessageToClient(const IPC::Message& message) OVERRIDE; virtual void InspectedTabClosing() OVERRIDE; virtual void TabReplaced(TabContents* new_tab) OVERRIDE; RenderViewHost* GetRenderViewHost(); @@ -65,6 +67,9 @@ class DevToolsWindow : public DevToolsClientHost, TabContentsWrapper* tab_contents() { return tab_contents_; } Browser* browser() { return browser_; } // For tests. bool is_docked() { return docked_; } + content::DevToolsClientHost* devtools_client_host() { + return frontend_host_; + } private: static DevToolsWindow* Create(Profile* profile, @@ -121,10 +126,9 @@ class DevToolsWindow : public DevToolsClientHost, static DevToolsWindow* ToggleDevToolsWindow(RenderViewHost* inspected_rvh, bool force_open, DevToolsToggleAction action); - static DevToolsWindow* AsDevToolsWindow(DevToolsClientHost*); + static DevToolsWindow* AsDevToolsWindow(content::DevToolsClientHost*); // content::DevToolsClientHandlerDelegate overrides. - virtual void ForwardToDevToolsAgent(const IPC::Message& message) OVERRIDE; virtual void ActivateWindow() OVERRIDE; virtual void CloseWindow() OVERRIDE; virtual void MoveWindow(int x, int y) OVERRIDE; @@ -132,6 +136,7 @@ class DevToolsWindow : public DevToolsClientHost, virtual void UndockWindow() OVERRIDE; virtual void SaveToFile(const std::string& suggested_file_name, const std::string& content) OVERRIDE; + void RequestSetDocked(bool docked); Profile* profile_; @@ -142,6 +147,7 @@ class DevToolsWindow : public DevToolsClientHost, bool is_loaded_; DevToolsToggleAction action_on_load_; content::NotificationRegistrar registrar_; + content::DevToolsClientHost* frontend_host_; DISALLOW_COPY_AND_ASSIGN(DevToolsWindow); }; |