diff options
author | pfeldman@chromium.org <pfeldman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-03-24 13:54:28 +0000 |
---|---|---|
committer | pfeldman@chromium.org <pfeldman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-03-24 13:54:28 +0000 |
commit | d0ef30f4636680ba1ca213d72bb13540fb5ce7f2 (patch) | |
tree | 5c76b111a2e8a54e7d6343cdf56d6eec4b3cd75b /chrome/browser/debugger | |
parent | 8ee332ca459d463eecb7807ecd966eda13be0456 (diff) | |
download | chromium_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.cc | 23 | ||||
-rw-r--r-- | chrome/browser/debugger/devtools_manager.h | 7 |
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, |