summaryrefslogtreecommitdiffstats
path: root/chrome/renderer/devtools_agent.cc
diff options
context:
space:
mode:
authorpfeldman@chromium.org <pfeldman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-03-27 12:36:21 +0000
committerpfeldman@chromium.org <pfeldman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-03-27 12:36:21 +0000
commit2573a236ea484dd5c07a6871470475a0681722b3 (patch)
tree7c6cb20775086ec74c197b014c0f33f08fd214c8 /chrome/renderer/devtools_agent.cc
parent87b603ad919c43e94758d36fd0ba0d3eca2382d5 (diff)
downloadchromium_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.cc51
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();
}