diff options
author | pfeldman@chromium.org <pfeldman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-03-27 12:36:21 +0000 |
---|---|---|
committer | pfeldman@chromium.org <pfeldman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-03-27 12:36:21 +0000 |
commit | 2573a236ea484dd5c07a6871470475a0681722b3 (patch) | |
tree | 7c6cb20775086ec74c197b014c0f33f08fd214c8 /chrome/renderer/devtools_agent.cc | |
parent | 87b603ad919c43e94758d36fd0ba0d3eca2382d5 (diff) | |
download | chromium_src-2573a236ea484dd5c07a6871470475a0681722b3.zip chromium_src-2573a236ea484dd5c07a6871470475a0681722b3.tar.gz chromium_src-2573a236ea484dd5c07a6871470475a0681722b3.tar.bz2 |
DevTools: add support for navigating to other tab while inspecting.
Review URL: http://codereview.chromium.org/53098
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@12640 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/renderer/devtools_agent.cc')
-rw-r--r-- | chrome/renderer/devtools_agent.cc | 51 |
1 files changed, 40 insertions, 11 deletions
diff --git a/chrome/renderer/devtools_agent.cc b/chrome/renderer/devtools_agent.cc index e86d58c..d08b0c7 100644 --- a/chrome/renderer/devtools_agent.cc +++ b/chrome/renderer/devtools_agent.cc @@ -82,6 +82,8 @@ bool DevToolsAgent::OnMessageReceived(const IPC::Message& message) { bool handled = true; IPC_BEGIN_MESSAGE_MAP(DevToolsAgent, message) + IPC_MESSAGE_HANDLER(DevToolsAgentMsg_Attach, OnAttach) + IPC_MESSAGE_HANDLER(DevToolsAgentMsg_Detach, OnDetach) IPC_MESSAGE_HANDLER(DevToolsAgentMsg_DebugAttach, OnDebugAttach) IPC_MESSAGE_HANDLER(DevToolsAgentMsg_DebugDetach, OnDebugDetach) IPC_MESSAGE_HANDLER(DevToolsAgentMsg_DebugBreak, OnDebugBreak) @@ -112,6 +114,16 @@ void DevToolsAgent::EvaluateScript(const std::wstring& script) { view_->EvaluateScript(L"", script); } +void DevToolsAgent::OnAttach() { + view_loop_->PostTask(FROM_HERE, NewRunnableMethod( + this, &DevToolsAgent::Attach)); +} + +void DevToolsAgent::OnDetach() { + view_loop_->PostTask(FROM_HERE, NewRunnableMethod( + this, &DevToolsAgent::Detach)); +} + void DevToolsAgent::OnDebugAttach() { DCHECK(MessageLoop::current() == io_loop_); if (!debugger_) { @@ -183,14 +195,25 @@ void DevToolsAgent::OnInspectElement(int x, int y) { this, &DevToolsAgent::InspectElement, x, y)); } +void DevToolsAgent::Attach() { + WebDevToolsAgent* web_agent = GetWebAgent(); + if (web_agent) { + web_agent->Attach(); + } +} + +void DevToolsAgent::Detach() { + WebDevToolsAgent* web_agent = GetWebAgent(); + if (web_agent) { + web_agent->Detach(); + } +} + void DevToolsAgent::DispatchRpcMessage(const std::string& raw_msg) { - if (!view_) - return; - WebView* web_view = view_->webview(); - if (!web_view) - return; - WebDevToolsAgent* web_agent = web_view->GetWebDevToolsAgent(); - web_agent->DispatchMessageFromClient(raw_msg); + WebDevToolsAgent* web_agent = GetWebAgent(); + if (web_agent) { + web_agent->DispatchMessageFromClient(raw_msg); + } } void DevToolsAgent::OnDebuggerCommand(const std::string& command) { @@ -199,11 +222,17 @@ void DevToolsAgent::OnDebuggerCommand(const std::string& command) { } void DevToolsAgent::InspectElement(int x, int y) { + WebDevToolsAgent* web_agent = GetWebAgent(); + if (web_agent) { + web_agent->InspectElement(x, y); + } +} + +WebDevToolsAgent* DevToolsAgent::GetWebAgent() { if (!view_) - return; + return NULL; WebView* web_view = view_->webview(); if (!web_view) - return; - WebDevToolsAgent* web_agent = web_view->GetWebDevToolsAgent(); - web_agent->InspectElement(x, y); + return NULL; + return web_view->GetWebDevToolsAgent(); } |