summaryrefslogtreecommitdiffstats
path: root/chrome/browser/debugger
diff options
context:
space:
mode:
authorpfeldman@chromium.org <pfeldman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-03-24 13:54:28 +0000
committerpfeldman@chromium.org <pfeldman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-03-24 13:54:28 +0000
commitd0ef30f4636680ba1ca213d72bb13540fb5ce7f2 (patch)
tree5c76b111a2e8a54e7d6343cdf56d6eec4b3cd75b /chrome/browser/debugger
parent8ee332ca459d463eecb7807ecd966eda13be0456 (diff)
downloadchromium_src-d0ef30f4636680ba1ca213d72bb13540fb5ce7f2.zip
chromium_src-d0ef30f4636680ba1ca213d72bb13540fb5ce7f2.tar.gz
chromium_src-d0ef30f4636680ba1ca213d72bb13540fb5ce7f2.tar.bz2
Wire 'Inspect Element' action to the new DevTools (depending on the devtools flag):
- Add new devtools IPC message - Expose WebView's hit target - Refactor dom_agent interaction not to send information known to client - Collect incoming messages on the client until frontend is loaded - Add Inspect Element scenario into the devtools_host_stub Review URL: http://codereview.chromium.org/45022 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@12355 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/debugger')
-rw-r--r--chrome/browser/debugger/devtools_manager.cc23
-rw-r--r--chrome/browser/debugger/devtools_manager.h7
2 files changed, 30 insertions, 0 deletions
diff --git a/chrome/browser/debugger/devtools_manager.cc b/chrome/browser/debugger/devtools_manager.cc
index 470fb5c..9f63a97 100644
--- a/chrome/browser/debugger/devtools_manager.cc
+++ b/chrome/browser/debugger/devtools_manager.cc
@@ -11,6 +11,7 @@
#include "chrome/browser/tab_contents/web_contents.h"
#include "chrome/common/notification_registrar.h"
#include "chrome/common/notification_type.h"
+#include "chrome/renderer/devtools_messages.h"
DevToolsManager::DevToolsManager() : web_contents_listeners_(NULL) {
}
@@ -127,6 +128,28 @@ void DevToolsManager::ForwardToDevToolsClient(const RenderViewHost& from,
target_host->SendMessageToClient(message);
}
+void DevToolsManager::OpenDevToolsWindow(WebContents* wc) {
+ DevToolsClientHost* host = GetDevToolsClientHostFor(*wc);
+ if (!host) {
+ host = DevToolsWindow::Create();
+ RegisterDevToolsClientHostFor(*wc, host);
+ }
+ DevToolsWindow* window = host->AsDevToolsWindow();
+ if (window)
+ window->Show();
+}
+
+void DevToolsManager::InspectElement(WebContents* wc, int x, int y) {
+ OpenDevToolsWindow(wc);
+ RenderViewHost* target_host = wc->render_view_host();
+ if (!target_host) {
+ return;
+ }
+ IPC::Message* m = new DevToolsAgentMsg_InspectElement(x, y);
+ m->set_routing_id(target_host->routing_id());
+ target_host->Send(m);
+}
+
void DevToolsManager::ClientHostClosing(DevToolsClientHost* host) {
NavigationController* controller = GetDevToolsAgentNavigationController(
*host);
diff --git a/chrome/browser/debugger/devtools_manager.h b/chrome/browser/debugger/devtools_manager.h
index fe1c803..1f9200f 100644
--- a/chrome/browser/debugger/devtools_manager.h
+++ b/chrome/browser/debugger/devtools_manager.h
@@ -46,6 +46,13 @@ class DevToolsManager : public NotificationObserver,
void ForwardToDevToolsClient(const RenderViewHost& from,
const IPC::Message& message);
+ void OpenDevToolsWindow(WebContents* wc);
+
+ // Starts element inspection in the devtools client.
+ // Creates one by means of OpenDevToolsWindow if no client
+ // exists.
+ void InspectElement(WebContents* web_contents, int x, int y);
+
private:
// NotificationObserver override.
virtual void Observe(NotificationType type,