OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2010-2011 Google Inc. All rights reserved. | 2 * Copyright (C) 2010-2011 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
93 #include "web/WebLocalFrameImpl.h" | 93 #include "web/WebLocalFrameImpl.h" |
94 #include "web/WebSettingsImpl.h" | 94 #include "web/WebSettingsImpl.h" |
95 #include "web/WebViewImpl.h" | 95 #include "web/WebViewImpl.h" |
96 #include "wtf/MathExtras.h" | 96 #include "wtf/MathExtras.h" |
97 #include "wtf/Noncopyable.h" | 97 #include "wtf/Noncopyable.h" |
98 #include "wtf/ProcessID.h" | 98 #include "wtf/ProcessID.h" |
99 #include "wtf/text/WTFString.h" | 99 #include "wtf/text/WTFString.h" |
100 | 100 |
101 namespace blink { | 101 namespace blink { |
102 | 102 |
103 namespace { | |
104 | |
105 class InspectorInputClient : public InspectorInputAgent::Client { | |
106 public: | |
107 explicit InspectorInputClient(WebViewImpl* webViewImpl) : m_webViewImpl(webV
iewImpl) { } | |
108 ~InspectorInputClient() override { } | |
109 | |
110 // InspectorInputAgent::Client implementation. | |
111 void dispatchKeyEvent(const PlatformKeyboardEvent& event) override | |
112 { | |
113 if (!m_webViewImpl->page()->focusController().isFocused()) | |
114 m_webViewImpl->setFocus(true); | |
115 | |
116 WebKeyboardEvent webEvent = WebKeyboardEventBuilder(event); | |
117 if (!webEvent.keyIdentifier[0] && webEvent.type != WebInputEvent::Char) | |
118 webEvent.setKeyIdentifierFromWindowsKeyCode(); | |
119 m_webViewImpl->handleInputEvent(webEvent); | |
120 } | |
121 | |
122 void dispatchMouseEvent(const PlatformMouseEvent& event) override | |
123 { | |
124 if (!m_webViewImpl->page()->focusController().isFocused()) | |
125 m_webViewImpl->setFocus(true); | |
126 | |
127 WebMouseEvent webEvent = WebMouseEventBuilder(m_webViewImpl->mainFrameIm
pl()->frameView(), event); | |
128 m_webViewImpl->handleInputEvent(webEvent); | |
129 } | |
130 | |
131 private: | |
132 WebViewImpl* m_webViewImpl; | |
133 }; | |
134 | |
135 } // namespace | |
136 | |
137 class ClientMessageLoopAdapter : public PageScriptDebugServer::ClientMessageLoop
{ | 103 class ClientMessageLoopAdapter : public PageScriptDebugServer::ClientMessageLoop
{ |
138 public: | 104 public: |
139 ~ClientMessageLoopAdapter() override | 105 ~ClientMessageLoopAdapter() override |
140 { | 106 { |
141 s_instance = nullptr; | 107 s_instance = nullptr; |
142 } | 108 } |
143 | 109 |
144 static void ensurePageScriptDebugServerCreated(WebDevToolsAgentClient* clien
t) | 110 static void ensurePageScriptDebugServerCreated(WebDevToolsAgentClient* clien
t) |
145 { | 111 { |
146 if (s_instance) | 112 if (s_instance) |
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
283 private: | 249 private: |
284 OwnPtr<WebDevToolsAgent::MessageDescriptor> m_descriptor; | 250 OwnPtr<WebDevToolsAgent::MessageDescriptor> m_descriptor; |
285 }; | 251 }; |
286 | 252 |
287 // static | 253 // static |
288 PassOwnPtrWillBeRawPtr<WebDevToolsAgentImpl> WebDevToolsAgentImpl::create(WebLoc
alFrameImpl* frame, WebDevToolsAgentClient* client) | 254 PassOwnPtrWillBeRawPtr<WebDevToolsAgentImpl> WebDevToolsAgentImpl::create(WebLoc
alFrameImpl* frame, WebDevToolsAgentClient* client) |
289 { | 255 { |
290 WebViewImpl* view = frame->viewImpl(); | 256 WebViewImpl* view = frame->viewImpl(); |
291 bool isMainFrame = view && view->mainFrameImpl() == frame; | 257 bool isMainFrame = view && view->mainFrameImpl() == frame; |
292 if (!isMainFrame) | 258 if (!isMainFrame) |
293 return adoptPtrWillBeNoop(new WebDevToolsAgentImpl(frame, client, frame-
>inspectorOverlay(), nullptr)); | 259 return adoptPtrWillBeNoop(new WebDevToolsAgentImpl(frame, client, frame-
>inspectorOverlay())); |
294 | 260 |
295 WebDevToolsAgentImpl* agent = new WebDevToolsAgentImpl(frame, client, view->
inspectorOverlay(), adoptPtr(new InspectorInputClient(view))); | 261 WebDevToolsAgentImpl* agent = new WebDevToolsAgentImpl(frame, client, view->
inspectorOverlay()); |
296 agent->registerAgent(InspectorRenderingAgent::create(view)); | 262 agent->registerAgent(InspectorRenderingAgent::create(view)); |
297 agent->registerAgent(InspectorEmulationAgent::create(view)); | 263 agent->registerAgent(InspectorEmulationAgent::create(view)); |
298 // TODO(dgozman): migrate each of the following agents to frame once module
is ready. | 264 // TODO(dgozman): migrate each of the following agents to frame once module
is ready. |
299 agent->registerAgent(InspectorDatabaseAgent::create(view->page())); | 265 agent->registerAgent(InspectorDatabaseAgent::create(view->page())); |
300 agent->registerAgent(DeviceOrientationInspectorAgent::create(view->page())); | 266 agent->registerAgent(DeviceOrientationInspectorAgent::create(view->page())); |
301 agent->registerAgent(InspectorFileSystemAgent::create(view->page())); | 267 agent->registerAgent(InspectorFileSystemAgent::create(view->page())); |
302 agent->registerAgent(InspectorIndexedDBAgent::create(view->page())); | 268 agent->registerAgent(InspectorIndexedDBAgent::create(view->page())); |
303 agent->registerAgent(InspectorAccessibilityAgent::create(view->page())); | 269 agent->registerAgent(InspectorAccessibilityAgent::create(view->page())); |
304 agent->registerAgent(InspectorDOMStorageAgent::create(view->page())); | 270 agent->registerAgent(InspectorDOMStorageAgent::create(view->page())); |
305 return adoptPtrWillBeNoop(agent); | 271 return adoptPtrWillBeNoop(agent); |
306 } | 272 } |
307 | 273 |
308 WebDevToolsAgentImpl::WebDevToolsAgentImpl( | 274 WebDevToolsAgentImpl::WebDevToolsAgentImpl( |
309 WebLocalFrameImpl* webLocalFrameImpl, | 275 WebLocalFrameImpl* webLocalFrameImpl, |
310 WebDevToolsAgentClient* client, | 276 WebDevToolsAgentClient* client, |
311 InspectorOverlay* overlay, | 277 InspectorOverlay* overlay) |
312 PassOwnPtr<InspectorInputAgent::Client> inputClient) | |
313 : m_client(client) | 278 : m_client(client) |
314 , m_webLocalFrameImpl(webLocalFrameImpl) | 279 , m_webLocalFrameImpl(webLocalFrameImpl) |
315 , m_attached(false) | 280 , m_attached(false) |
316 #if ENABLE(ASSERT) | 281 #if ENABLE(ASSERT) |
317 , m_hasBeenDisposed(false) | 282 , m_hasBeenDisposed(false) |
318 #endif | 283 #endif |
319 , m_instrumentingAgents(m_webLocalFrameImpl->frame()->instrumentingAgents()) | 284 , m_instrumentingAgents(m_webLocalFrameImpl->frame()->instrumentingAgents()) |
320 , m_injectedScriptManager(InjectedScriptManager::createForPage()) | 285 , m_injectedScriptManager(InjectedScriptManager::createForPage()) |
321 , m_state(adoptPtrWillBeNoop(new InspectorCompositeState(this))) | 286 , m_state(adoptPtrWillBeNoop(new InspectorCompositeState(this))) |
322 , m_overlay(overlay) | 287 , m_overlay(overlay) |
323 , m_inputClient(inputClient) | |
324 , m_cssAgent(nullptr) | 288 , m_cssAgent(nullptr) |
325 , m_resourceAgent(nullptr) | 289 , m_resourceAgent(nullptr) |
326 , m_layerTreeAgent(nullptr) | 290 , m_layerTreeAgent(nullptr) |
327 , m_agents(m_instrumentingAgents.get(), m_state.get()) | 291 , m_agents(m_instrumentingAgents.get(), m_state.get()) |
328 , m_deferredAgentsInitialized(false) | 292 , m_deferredAgentsInitialized(false) |
329 { | 293 { |
330 ASSERT(isMainThread()); | 294 ASSERT(isMainThread()); |
331 ASSERT(m_webLocalFrameImpl->frame()); | 295 ASSERT(m_webLocalFrameImpl->frame()); |
332 | 296 |
333 long processId = WTF::getCurrentProcessID(); | 297 long processId = WTF::getCurrentProcessID(); |
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
458 | 422 |
459 m_agents.append(InspectorApplicationCacheAgent::create(m_pageAgent)); | 423 m_agents.append(InspectorApplicationCacheAgent::create(m_pageAgent)); |
460 | 424 |
461 OwnPtrWillBeRawPtr<InspectorDebuggerAgent> debuggerAgentPtr(PageDebuggerAgen
t::create(PageScriptDebugServer::instance(), m_pageAgent, injectedScriptManager,
m_overlay, m_pageRuntimeAgent->debuggerId())); | 425 OwnPtrWillBeRawPtr<InspectorDebuggerAgent> debuggerAgentPtr(PageDebuggerAgen
t::create(PageScriptDebugServer::instance(), m_pageAgent, injectedScriptManager,
m_overlay, m_pageRuntimeAgent->debuggerId())); |
462 InspectorDebuggerAgent* debuggerAgent = debuggerAgentPtr.get(); | 426 InspectorDebuggerAgent* debuggerAgent = debuggerAgentPtr.get(); |
463 m_agents.append(debuggerAgentPtr.release()); | 427 m_agents.append(debuggerAgentPtr.release()); |
464 m_asyncCallTracker = adoptPtrWillBeNoop(new AsyncCallTracker(debuggerAgent,
m_instrumentingAgents.get())); | 428 m_asyncCallTracker = adoptPtrWillBeNoop(new AsyncCallTracker(debuggerAgent,
m_instrumentingAgents.get())); |
465 | 429 |
466 m_agents.append(InspectorDOMDebuggerAgent::create(m_domAgent, debuggerAgent)
); | 430 m_agents.append(InspectorDOMDebuggerAgent::create(m_domAgent, debuggerAgent)
); |
467 | 431 |
468 m_agents.append(InspectorInputAgent::create(m_pageAgent, m_inputClient.get()
)); | 432 m_agents.append(InspectorInputAgent::create(m_pageAgent)); |
469 | 433 |
470 m_agents.append(InspectorProfilerAgent::create(injectedScriptManager, m_over
lay)); | 434 m_agents.append(InspectorProfilerAgent::create(injectedScriptManager, m_over
lay)); |
471 | 435 |
472 m_agents.append(InspectorHeapProfilerAgent::create(injectedScriptManager)); | 436 m_agents.append(InspectorHeapProfilerAgent::create(injectedScriptManager)); |
473 | 437 |
474 m_pageAgent->setDeferredAgents(debuggerAgent, m_cssAgent); | 438 m_pageAgent->setDeferredAgents(debuggerAgent, m_cssAgent); |
475 | 439 |
476 PageScriptDebugServer* scriptDebugServer = PageScriptDebugServer::instance()
; | 440 PageScriptDebugServer* scriptDebugServer = PageScriptDebugServer::instance()
; |
477 m_injectedScriptManager->injectedScriptHost()->init( | 441 m_injectedScriptManager->injectedScriptHost()->init( |
478 m_pageConsoleAgent.get(), | 442 m_pageConsoleAgent.get(), |
(...skipping 269 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
748 if (!InspectorBackendDispatcher::getCommandName(message, &commandName)) | 712 if (!InspectorBackendDispatcher::getCommandName(message, &commandName)) |
749 return false; | 713 return false; |
750 return commandName == InspectorBackendDispatcher::commandName(InspectorBacke
ndDispatcher::kDebugger_pauseCmd) | 714 return commandName == InspectorBackendDispatcher::commandName(InspectorBacke
ndDispatcher::kDebugger_pauseCmd) |
751 || commandName == InspectorBackendDispatcher::commandName(InspectorBacke
ndDispatcher::kDebugger_setBreakpointCmd) | 715 || commandName == InspectorBackendDispatcher::commandName(InspectorBacke
ndDispatcher::kDebugger_setBreakpointCmd) |
752 || commandName == InspectorBackendDispatcher::commandName(InspectorBacke
ndDispatcher::kDebugger_setBreakpointByUrlCmd) | 716 || commandName == InspectorBackendDispatcher::commandName(InspectorBacke
ndDispatcher::kDebugger_setBreakpointByUrlCmd) |
753 || commandName == InspectorBackendDispatcher::commandName(InspectorBacke
ndDispatcher::kDebugger_removeBreakpointCmd) | 717 || commandName == InspectorBackendDispatcher::commandName(InspectorBacke
ndDispatcher::kDebugger_removeBreakpointCmd) |
754 || commandName == InspectorBackendDispatcher::commandName(InspectorBacke
ndDispatcher::kDebugger_setBreakpointsActiveCmd); | 718 || commandName == InspectorBackendDispatcher::commandName(InspectorBacke
ndDispatcher::kDebugger_setBreakpointsActiveCmd); |
755 } | 719 } |
756 | 720 |
757 } // namespace blink | 721 } // namespace blink |
OLD | NEW |