OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "content/renderer/devtools/devtools_agent.h" | 5 #include "content/renderer/devtools/devtools_agent.h" |
6 | 6 |
7 #include <map> | 7 #include <map> |
8 | 8 |
9 #include "base/debug/trace_event.h" | 9 #include "base/debug/trace_event.h" |
10 #include "base/lazy_instance.h" | 10 #include "base/lazy_instance.h" |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
70 typedef std::map<int, DevToolsAgent*> IdToAgentMap; | 70 typedef std::map<int, DevToolsAgent*> IdToAgentMap; |
71 base::LazyInstance<IdToAgentMap>::Leaky | 71 base::LazyInstance<IdToAgentMap>::Leaky |
72 g_agent_for_routing_id = LAZY_INSTANCE_INITIALIZER; | 72 g_agent_for_routing_id = LAZY_INSTANCE_INITIALIZER; |
73 | 73 |
74 } // namespace | 74 } // namespace |
75 | 75 |
76 DevToolsAgent::DevToolsAgent(RenderViewImpl* render_view) | 76 DevToolsAgent::DevToolsAgent(RenderViewImpl* render_view) |
77 : RenderViewObserver(render_view), | 77 : RenderViewObserver(render_view), |
78 is_attached_(false), | 78 is_attached_(false), |
79 is_devtools_client_(false), | 79 is_devtools_client_(false), |
80 gpu_route_id_(MSG_ROUTING_NONE) { | 80 gpu_route_id_(MSG_ROUTING_NONE), |
| 81 paused_in_mouse_move_(false) { |
81 g_agent_for_routing_id.Get()[routing_id()] = this; | 82 g_agent_for_routing_id.Get()[routing_id()] = this; |
82 | 83 |
83 render_view->webview()->setDevToolsAgentClient(this); | 84 render_view->webview()->setDevToolsAgentClient(this); |
84 render_view->webview()->devToolsAgent()->setProcessId( | 85 render_view->webview()->devToolsAgent()->setProcessId( |
85 base::Process::Current().pid()); | 86 base::Process::Current().pid()); |
86 } | 87 } |
87 | 88 |
88 DevToolsAgent::~DevToolsAgent() { | 89 DevToolsAgent::~DevToolsAgent() { |
89 g_agent_for_routing_id.Get().erase(routing_id()); | 90 g_agent_for_routing_id.Get().erase(routing_id()); |
90 resetTraceEventCallback(); | 91 resetTraceEventCallback(); |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
127 void DevToolsAgent::saveAgentRuntimeState( | 128 void DevToolsAgent::saveAgentRuntimeState( |
128 const blink::WebString& state) { | 129 const blink::WebString& state) { |
129 Send(new DevToolsHostMsg_SaveAgentRuntimeState(routing_id(), state.utf8())); | 130 Send(new DevToolsHostMsg_SaveAgentRuntimeState(routing_id(), state.utf8())); |
130 } | 131 } |
131 | 132 |
132 blink::WebDevToolsAgentClient::WebKitClientMessageLoop* | 133 blink::WebDevToolsAgentClient::WebKitClientMessageLoop* |
133 DevToolsAgent::createClientMessageLoop() { | 134 DevToolsAgent::createClientMessageLoop() { |
134 return new WebKitClientMessageLoopImpl(); | 135 return new WebKitClientMessageLoopImpl(); |
135 } | 136 } |
136 | 137 |
| 138 void DevToolsAgent::willEnterModalLoop() { |
| 139 RenderViewImpl* impl = static_cast<RenderViewImpl*>(render_view()); |
| 140 paused_in_mouse_move_ = impl->SendAckForCurrentMouseMove(); |
| 141 } |
| 142 |
| 143 void DevToolsAgent::didExitModalLoop() { |
| 144 RenderViewImpl* impl = static_cast<RenderViewImpl*>(render_view()); |
| 145 if (paused_in_mouse_move_) { |
| 146 impl->IgnoreAckForCurrentMouseMove(); |
| 147 paused_in_mouse_move_ = false; |
| 148 } |
| 149 } |
| 150 |
137 void DevToolsAgent::resetTraceEventCallback() | 151 void DevToolsAgent::resetTraceEventCallback() |
138 { | 152 { |
139 TraceLog::GetInstance()->SetEventCallbackDisabled(); | 153 TraceLog::GetInstance()->SetEventCallbackDisabled(); |
140 base::subtle::NoBarrier_Store(&event_callback_, 0); | 154 base::subtle::NoBarrier_Store(&event_callback_, 0); |
141 } | 155 } |
142 | 156 |
143 void DevToolsAgent::setTraceEventCallback(const WebString& category_filter, | 157 void DevToolsAgent::setTraceEventCallback(const WebString& category_filter, |
144 TraceEventCallback cb) { | 158 TraceEventCallback cb) { |
145 TraceLog* trace_log = TraceLog::GetInstance(); | 159 TraceLog* trace_log = TraceLog::GetInstance(); |
146 base::subtle::NoBarrier_Store(&event_callback_, | 160 base::subtle::NoBarrier_Store(&event_callback_, |
(...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
357 if (!web_view) | 371 if (!web_view) |
358 return NULL; | 372 return NULL; |
359 return web_view->devToolsAgent(); | 373 return web_view->devToolsAgent(); |
360 } | 374 } |
361 | 375 |
362 bool DevToolsAgent::IsAttached() { | 376 bool DevToolsAgent::IsAttached() { |
363 return is_attached_; | 377 return is_attached_; |
364 } | 378 } |
365 | 379 |
366 } // namespace content | 380 } // namespace content |
OLD | NEW |