summaryrefslogtreecommitdiffstats
path: root/chrome/browser/debugger/devtools_window.h
diff options
context:
space:
mode:
authoryurys@chromium.org <yurys@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-12-01 16:21:44 +0000
committeryurys@chromium.org <yurys@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-12-01 16:21:44 +0000
commit0e12d7d59d4778e1a8ef692d244bf66aea1a80b8 (patch)
tree11fd0f2f8d0ab431f59084541922d6c971876f99 /chrome/browser/debugger/devtools_window.h
parent5581458c8b7ac9e7117d96606d74e574c41df8d6 (diff)
downloadchromium_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.h26
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);
};