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 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
47 #include "core/inspector/InspectorCSSAgent.h" | 47 #include "core/inspector/InspectorCSSAgent.h" |
48 #include "core/inspector/InspectorDOMAgent.h" | 48 #include "core/inspector/InspectorDOMAgent.h" |
49 #include "core/inspector/InspectorDOMDebuggerAgent.h" | 49 #include "core/inspector/InspectorDOMDebuggerAgent.h" |
50 #include "core/inspector/InspectorDebuggerAgent.h" | 50 #include "core/inspector/InspectorDebuggerAgent.h" |
51 #include "core/inspector/InspectorHeapProfilerAgent.h" | 51 #include "core/inspector/InspectorHeapProfilerAgent.h" |
52 #include "core/inspector/InspectorInputAgent.h" | 52 #include "core/inspector/InspectorInputAgent.h" |
53 #include "core/inspector/InspectorInspectorAgent.h" | 53 #include "core/inspector/InspectorInspectorAgent.h" |
54 #include "core/inspector/InspectorInstrumentation.h" | 54 #include "core/inspector/InspectorInstrumentation.h" |
55 #include "core/inspector/InspectorLayerTreeAgent.h" | 55 #include "core/inspector/InspectorLayerTreeAgent.h" |
56 #include "core/inspector/InspectorMemoryAgent.h" | 56 #include "core/inspector/InspectorMemoryAgent.h" |
57 #include "core/inspector/InspectorOverlay.h" | |
58 #include "core/inspector/InspectorPageAgent.h" | 57 #include "core/inspector/InspectorPageAgent.h" |
59 #include "core/inspector/InspectorProfilerAgent.h" | 58 #include "core/inspector/InspectorProfilerAgent.h" |
60 #include "core/inspector/InspectorResourceAgent.h" | 59 #include "core/inspector/InspectorResourceAgent.h" |
61 #include "core/inspector/InspectorResourceContentLoader.h" | 60 #include "core/inspector/InspectorResourceContentLoader.h" |
62 #include "core/inspector/InspectorState.h" | 61 #include "core/inspector/InspectorState.h" |
63 #include "core/inspector/InspectorTaskRunner.h" | 62 #include "core/inspector/InspectorTaskRunner.h" |
64 #include "core/inspector/InspectorTimelineAgent.h" | 63 #include "core/inspector/InspectorTimelineAgent.h" |
65 #include "core/inspector/InspectorTracingAgent.h" | 64 #include "core/inspector/InspectorTracingAgent.h" |
66 #include "core/inspector/InspectorWorkerAgent.h" | 65 #include "core/inspector/InspectorWorkerAgent.h" |
67 #include "core/inspector/InstrumentingAgents.h" | 66 #include "core/inspector/InstrumentingAgents.h" |
(...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
275 private: | 274 private: |
276 OwnPtr<WebDevToolsAgent::MessageDescriptor> m_descriptor; | 275 OwnPtr<WebDevToolsAgent::MessageDescriptor> m_descriptor; |
277 }; | 276 }; |
278 | 277 |
279 // static | 278 // static |
280 PassOwnPtrWillBeRawPtr<WebDevToolsAgentImpl> WebDevToolsAgentImpl::create(WebLoc
alFrameImpl* frame, WebDevToolsAgentClient* client) | 279 PassOwnPtrWillBeRawPtr<WebDevToolsAgentImpl> WebDevToolsAgentImpl::create(WebLoc
alFrameImpl* frame, WebDevToolsAgentClient* client) |
281 { | 280 { |
282 WebViewImpl* view = frame->viewImpl(); | 281 WebViewImpl* view = frame->viewImpl(); |
283 bool isMainFrame = view && view->mainFrameImpl() == frame; | 282 bool isMainFrame = view && view->mainFrameImpl() == frame; |
284 if (!isMainFrame) { | 283 if (!isMainFrame) { |
285 WebDevToolsAgentImpl* agent = new WebDevToolsAgentImpl(frame, client, In
spectorOverlayImpl::createEmpty()); | 284 WebDevToolsAgentImpl* agent = new WebDevToolsAgentImpl(frame, client, nu
llptr); |
286 if (frame->frameWidget()) | 285 if (frame->frameWidget()) |
287 agent->layerTreeViewChanged(toWebFrameWidgetImpl(frame->frameWidget(
))->layerTreeView()); | 286 agent->layerTreeViewChanged(toWebFrameWidgetImpl(frame->frameWidget(
))->layerTreeView()); |
288 return adoptPtrWillBeNoop(agent); | 287 return adoptPtrWillBeNoop(agent); |
289 } | 288 } |
290 | 289 |
291 WebDevToolsAgentImpl* agent = new WebDevToolsAgentImpl(frame, client, Inspec
torOverlayImpl::create(view)); | 290 WebDevToolsAgentImpl* agent = new WebDevToolsAgentImpl(frame, client, Inspec
torOverlayImpl::create(view)); |
292 agent->registerAgent(InspectorRenderingAgent::create(view)); | 291 agent->registerAgent(InspectorRenderingAgent::create(view)); |
293 agent->registerAgent(InspectorEmulationAgent::create(view)); | 292 agent->registerAgent(InspectorEmulationAgent::create(view)); |
294 // TODO(dgozman): migrate each of the following agents to frame once module
is ready. | 293 // TODO(dgozman): migrate each of the following agents to frame once module
is ready. |
295 agent->registerAgent(InspectorDatabaseAgent::create(view->page())); | 294 agent->registerAgent(InspectorDatabaseAgent::create(view->page())); |
296 agent->registerAgent(DeviceOrientationInspectorAgent::create(view->page())); | 295 agent->registerAgent(DeviceOrientationInspectorAgent::create(view->page())); |
297 agent->registerAgent(InspectorFileSystemAgent::create(view->page())); | 296 agent->registerAgent(InspectorFileSystemAgent::create(view->page())); |
298 agent->registerAgent(InspectorIndexedDBAgent::create(view->page())); | 297 agent->registerAgent(InspectorIndexedDBAgent::create(view->page())); |
299 agent->registerAgent(InspectorAccessibilityAgent::create(view->page())); | 298 agent->registerAgent(InspectorAccessibilityAgent::create(view->page())); |
300 agent->registerAgent(InspectorDOMStorageAgent::create(view->page())); | 299 agent->registerAgent(InspectorDOMStorageAgent::create(view->page())); |
301 agent->registerAgent(InspectorCacheStorageAgent::create()); | 300 agent->registerAgent(InspectorCacheStorageAgent::create()); |
302 agent->layerTreeViewChanged(view->layerTreeView()); | 301 agent->layerTreeViewChanged(view->layerTreeView()); |
303 return adoptPtrWillBeNoop(agent); | 302 return adoptPtrWillBeNoop(agent); |
304 } | 303 } |
305 | 304 |
306 WebDevToolsAgentImpl::WebDevToolsAgentImpl( | 305 WebDevToolsAgentImpl::WebDevToolsAgentImpl( |
307 WebLocalFrameImpl* webLocalFrameImpl, | 306 WebLocalFrameImpl* webLocalFrameImpl, |
308 WebDevToolsAgentClient* client, | 307 WebDevToolsAgentClient* client, |
309 PassOwnPtrWillBeRawPtr<InspectorOverlay> overlay) | 308 PassOwnPtrWillBeRawPtr<InspectorOverlayImpl> overlay) |
310 : m_client(client) | 309 : m_client(client) |
311 , m_webLocalFrameImpl(webLocalFrameImpl) | 310 , m_webLocalFrameImpl(webLocalFrameImpl) |
312 , m_attached(false) | 311 , m_attached(false) |
313 #if ENABLE(ASSERT) | 312 #if ENABLE(ASSERT) |
314 , m_hasBeenDisposed(false) | 313 , m_hasBeenDisposed(false) |
315 #endif | 314 #endif |
316 , m_instrumentingAgents(m_webLocalFrameImpl->frame()->instrumentingAgents()) | 315 , m_instrumentingAgents(m_webLocalFrameImpl->frame()->instrumentingAgents()) |
317 , m_injectedScriptManager(InjectedScriptManager::createForPage()) | 316 , m_injectedScriptManager(InjectedScriptManager::createForPage()) |
318 , m_resourceContentLoader(InspectorResourceContentLoader::create(m_webLocalF
rameImpl->frame())) | 317 , m_resourceContentLoader(InspectorResourceContentLoader::create(m_webLocalF
rameImpl->frame())) |
319 , m_state(adoptPtrWillBeNoop(new InspectorCompositeState(this))) | 318 , m_state(adoptPtrWillBeNoop(new InspectorCompositeState(this))) |
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
453 OwnPtrWillBeRawPtr<InspectorCSSAgent> cssAgentPtr(InspectorCSSAgent::create(
m_domAgent, m_pageAgent, m_resourceAgent, m_resourceContentLoader.get())); | 452 OwnPtrWillBeRawPtr<InspectorCSSAgent> cssAgentPtr(InspectorCSSAgent::create(
m_domAgent, m_pageAgent, m_resourceAgent, m_resourceContentLoader.get())); |
454 m_cssAgent = cssAgentPtr.get(); | 453 m_cssAgent = cssAgentPtr.get(); |
455 m_agents.append(cssAgentPtr.release()); | 454 m_agents.append(cssAgentPtr.release()); |
456 | 455 |
457 m_agents.append(InspectorAnimationAgent::create(m_pageAgent, m_domAgent)); | 456 m_agents.append(InspectorAnimationAgent::create(m_pageAgent, m_domAgent)); |
458 | 457 |
459 m_agents.append(InspectorMemoryAgent::create()); | 458 m_agents.append(InspectorMemoryAgent::create()); |
460 | 459 |
461 m_agents.append(InspectorApplicationCacheAgent::create(m_pageAgent)); | 460 m_agents.append(InspectorApplicationCacheAgent::create(m_pageAgent)); |
462 | 461 |
463 OwnPtrWillBeRawPtr<InspectorDebuggerAgent> debuggerAgentPtr(PageDebuggerAgen
t::create(MainThreadDebugger::instance(), m_pageAgent, injectedScriptManager, m_
overlay.get())); | 462 OwnPtrWillBeRawPtr<InspectorDebuggerAgent> debuggerAgentPtr(PageDebuggerAgen
t::create(MainThreadDebugger::instance(), m_pageAgent, injectedScriptManager)); |
464 InspectorDebuggerAgent* debuggerAgent = debuggerAgentPtr.get(); | 463 InspectorDebuggerAgent* debuggerAgent = debuggerAgentPtr.get(); |
465 m_agents.append(debuggerAgentPtr.release()); | 464 m_agents.append(debuggerAgentPtr.release()); |
466 m_asyncCallTracker = adoptPtrWillBeNoop(new AsyncCallTracker(debuggerAgent->
v8DebuggerAgent(), m_instrumentingAgents.get())); | 465 m_asyncCallTracker = adoptPtrWillBeNoop(new AsyncCallTracker(debuggerAgent->
v8DebuggerAgent(), m_instrumentingAgents.get())); |
467 | 466 |
468 m_agents.append(InspectorDOMDebuggerAgent::create(injectedScriptManager, m_d
omAgent, debuggerAgent->v8DebuggerAgent())); | 467 m_agents.append(InspectorDOMDebuggerAgent::create(injectedScriptManager, m_d
omAgent, debuggerAgent->v8DebuggerAgent())); |
469 | 468 |
470 m_agents.append(InspectorInputAgent::create(m_pageAgent)); | 469 m_agents.append(InspectorInputAgent::create(m_pageAgent)); |
471 | 470 |
472 v8::Isolate* isolate = V8PerIsolateData::mainThreadIsolate(); | 471 v8::Isolate* isolate = V8PerIsolateData::mainThreadIsolate(); |
473 m_agents.append(InspectorProfilerAgent::create(isolate, injectedScriptManage
r, m_overlay.get())); | 472 m_agents.append(InspectorProfilerAgent::create(isolate, injectedScriptManage
r, m_overlay.get())); |
474 | 473 |
475 m_agents.append(InspectorHeapProfilerAgent::create(isolate, injectedScriptMa
nager)); | 474 m_agents.append(InspectorHeapProfilerAgent::create(isolate, injectedScriptMa
nager)); |
476 | 475 |
477 m_pageAgent->setDebuggerAgent(debuggerAgent); | 476 m_pageAgent->setDebuggerAgent(debuggerAgent); |
478 m_pageConsoleAgent->setDebuggerAgent(debuggerAgent->v8DebuggerAgent()); | 477 m_pageConsoleAgent->setDebuggerAgent(debuggerAgent->v8DebuggerAgent()); |
479 | 478 |
480 MainThreadDebugger* mainThreadDebugger = MainThreadDebugger::instance(); | 479 MainThreadDebugger* mainThreadDebugger = MainThreadDebugger::instance(); |
481 m_injectedScriptManager->injectedScriptHost()->init( | 480 m_injectedScriptManager->injectedScriptHost()->init( |
482 m_pageConsoleAgent.get(), | 481 m_pageConsoleAgent.get(), |
483 debuggerAgent->v8DebuggerAgent(), | 482 debuggerAgent->v8DebuggerAgent(), |
484 bind<PassRefPtr<TypeBuilder::Runtime::RemoteObject>, PassRefPtr<JSONObje
ct>>(&InspectorInspectorAgent::inspect, m_inspectorAgent.get()), | 483 bind<PassRefPtr<TypeBuilder::Runtime::RemoteObject>, PassRefPtr<JSONObje
ct>>(&InspectorInspectorAgent::inspect, m_inspectorAgent.get()), |
485 mainThreadDebugger->debugger(), | 484 mainThreadDebugger->debugger(), |
486 adoptPtr(new PageInjectedScriptHostClient())); | 485 adoptPtr(new PageInjectedScriptHostClient())); |
| 486 |
| 487 if (m_overlay) |
| 488 m_overlay->init(m_cssAgent.get(), debuggerAgent); |
487 } | 489 } |
488 | 490 |
489 void WebDevToolsAgentImpl::registerAgent(PassOwnPtrWillBeRawPtr<InspectorAgent>
agent) | 491 void WebDevToolsAgentImpl::registerAgent(PassOwnPtrWillBeRawPtr<InspectorAgent>
agent) |
490 { | 492 { |
491 m_agents.append(agent); | 493 m_agents.append(agent); |
492 } | 494 } |
493 | 495 |
494 void WebDevToolsAgentImpl::attach(const WebString& hostId) | 496 void WebDevToolsAgentImpl::attach(const WebString& hostId) |
495 { | 497 { |
496 if (m_attached) | 498 if (m_attached) |
497 return; | 499 return; |
498 | 500 |
499 // Set the attached bit first so that sync notifications were delivered. | 501 // Set the attached bit first so that sync notifications were delivered. |
500 m_attached = true; | 502 m_attached = true; |
501 | 503 |
502 initializeDeferredAgents(); | 504 initializeDeferredAgents(); |
503 m_resourceAgent->setHostId(hostId); | 505 m_resourceAgent->setHostId(hostId); |
504 m_overlay->setLayoutEditor(LayoutEditor::create(m_cssAgent.get())); | |
505 | 506 |
506 m_inspectorFrontend = adoptPtr(new InspectorFrontend(this)); | 507 m_inspectorFrontend = adoptPtr(new InspectorFrontend(this)); |
507 // We can reconnect to existing front-end -> unmute state. | 508 // We can reconnect to existing front-end -> unmute state. |
508 m_state->unmute(); | 509 m_state->unmute(); |
509 m_agents.setFrontend(m_inspectorFrontend.get()); | 510 m_agents.setFrontend(m_inspectorFrontend.get()); |
510 | 511 |
511 InspectorInstrumentation::registerInstrumentingAgents(m_instrumentingAgents.
get()); | 512 InspectorInstrumentation::registerInstrumentingAgents(m_instrumentingAgents.
get()); |
512 InspectorInstrumentation::frontendCreated(); | 513 InspectorInstrumentation::frontendCreated(); |
513 | 514 |
514 m_inspectorBackendDispatcher = InspectorBackendDispatcher::create(this); | 515 m_inspectorBackendDispatcher = InspectorBackendDispatcher::create(this); |
(...skipping 22 matching lines...) Expand all Loading... |
537 m_inspectorBackendDispatcher->clearFrontend(); | 538 m_inspectorBackendDispatcher->clearFrontend(); |
538 m_inspectorBackendDispatcher.clear(); | 539 m_inspectorBackendDispatcher.clear(); |
539 | 540 |
540 // Destroying agents would change the state, but we don't want that. | 541 // Destroying agents would change the state, but we don't want that. |
541 // Pre-disconnect state will be used to restore inspector agents. | 542 // Pre-disconnect state will be used to restore inspector agents. |
542 m_state->mute(); | 543 m_state->mute(); |
543 m_agents.clearFrontend(); | 544 m_agents.clearFrontend(); |
544 m_inspectorFrontend.clear(); | 545 m_inspectorFrontend.clear(); |
545 | 546 |
546 // Release overlay resources. | 547 // Release overlay resources. |
547 m_overlay->clear(); | 548 if (m_overlay) |
548 m_overlay->setLayoutEditor(nullptr); | 549 m_overlay->clear(); |
549 InspectorInstrumentation::frontendDeleted(); | 550 InspectorInstrumentation::frontendDeleted(); |
550 InspectorInstrumentation::unregisterInstrumentingAgents(m_instrumentingAgent
s.get()); | 551 InspectorInstrumentation::unregisterInstrumentingAgents(m_instrumentingAgent
s.get()); |
551 | 552 |
552 m_attached = false; | 553 m_attached = false; |
553 } | 554 } |
554 | 555 |
555 void WebDevToolsAgentImpl::continueProgram() | 556 void WebDevToolsAgentImpl::continueProgram() |
556 { | 557 { |
557 ClientMessageLoopAdapter::continueProgram(); | 558 ClientMessageLoopAdapter::continueProgram(); |
558 } | 559 } |
(...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
755 if (!InspectorBackendDispatcher::getCommandName(message, &commandName)) | 756 if (!InspectorBackendDispatcher::getCommandName(message, &commandName)) |
756 return false; | 757 return false; |
757 return commandName == InspectorBackendDispatcher::commandName(InspectorBacke
ndDispatcher::kDebugger_pauseCmd) | 758 return commandName == InspectorBackendDispatcher::commandName(InspectorBacke
ndDispatcher::kDebugger_pauseCmd) |
758 || commandName == InspectorBackendDispatcher::commandName(InspectorBacke
ndDispatcher::kDebugger_setBreakpointCmd) | 759 || commandName == InspectorBackendDispatcher::commandName(InspectorBacke
ndDispatcher::kDebugger_setBreakpointCmd) |
759 || commandName == InspectorBackendDispatcher::commandName(InspectorBacke
ndDispatcher::kDebugger_setBreakpointByUrlCmd) | 760 || commandName == InspectorBackendDispatcher::commandName(InspectorBacke
ndDispatcher::kDebugger_setBreakpointByUrlCmd) |
760 || commandName == InspectorBackendDispatcher::commandName(InspectorBacke
ndDispatcher::kDebugger_removeBreakpointCmd) | 761 || commandName == InspectorBackendDispatcher::commandName(InspectorBacke
ndDispatcher::kDebugger_removeBreakpointCmd) |
761 || commandName == InspectorBackendDispatcher::commandName(InspectorBacke
ndDispatcher::kDebugger_setBreakpointsActiveCmd); | 762 || commandName == InspectorBackendDispatcher::commandName(InspectorBacke
ndDispatcher::kDebugger_setBreakpointsActiveCmd); |
762 } | 763 } |
763 | 764 |
764 } // namespace blink | 765 } // namespace blink |
OLD | NEW |