| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2011 Google Inc. All rights reserved. | 2 * Copyright (C) 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 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 77 | 77 |
| 78 InspectorController::InspectorController(Page* page, InspectorClient* inspectorC
lient) | 78 InspectorController::InspectorController(Page* page, InspectorClient* inspectorC
lient) |
| 79 : m_instrumentingAgents(InstrumentingAgents::create()) | 79 : m_instrumentingAgents(InstrumentingAgents::create()) |
| 80 , m_injectedScriptManager(InjectedScriptManager::createForPage()) | 80 , m_injectedScriptManager(InjectedScriptManager::createForPage()) |
| 81 , m_state(adoptPtr(new InspectorCompositeState(inspectorClient))) | 81 , m_state(adoptPtr(new InspectorCompositeState(inspectorClient))) |
| 82 , m_overlay(InspectorOverlay::create(page, inspectorClient)) | 82 , m_overlay(InspectorOverlay::create(page, inspectorClient)) |
| 83 , m_page(page) | 83 , m_page(page) |
| 84 , m_inspectorClient(inspectorClient) | 84 , m_inspectorClient(inspectorClient) |
| 85 , m_isUnderTest(false) | 85 , m_isUnderTest(false) |
| 86 { | 86 { |
| 87 m_agents.append(InspectorAgent::create(page, m_injectedScriptManager.get(),
m_instrumentingAgents.get(), m_state.get())); | 87 m_agentFactories.append(InspectorAgentFactory::create(page, m_injectedScript
Manager.get(), m_instrumentingAgents.get(), m_state.get())); |
| 88 | 88 |
| 89 OwnPtr<InspectorPageAgent> pageAgentPtr(InspectorPageAgent::create(m_instrum
entingAgents.get(), page, m_state.get(), m_injectedScriptManager.get(), inspecto
rClient, m_overlay.get())); | 89 OwnPtr<InspectorPageFactory> pageFactoryPtr(InspectorPageFactory::create(m_i
nstrumentingAgents.get(), m_state.get(), page, m_injectedScriptManager.get(), m_
overlay.get(), inspectorClient)); |
| 90 InspectorPageAgent* pageAgent = pageAgentPtr.get(); | 90 InspectorPageFactory* pageFactory = pageFactoryPtr.get(); |
| 91 m_agents.append(pageAgentPtr.release()); | 91 m_agentFactories.append(pageFactoryPtr.release()); |
| 92 | 92 |
| 93 OwnPtr<InspectorDOMAgent> domAgentPtr(InspectorDOMAgent::create(m_instrument
ingAgents.get(), pageAgent, m_state.get(), m_injectedScriptManager.get(), m_over
lay.get(), inspectorClient)); | 93 OwnPtr<InspectorDOMFactory> domFactoryPtr(InspectorDOMFactory::create(m_inst
rumentingAgents.get(), m_state.get(), pageFactory, m_injectedScriptManager.get()
, m_overlay.get(), inspectorClient)); |
| 94 InspectorDOMAgent* domAgent = domAgentPtr.get(); | 94 InspectorDOMFactory* domFactory = domFactoryPtr.get(); |
| 95 m_agents.append(domAgentPtr.release()); | 95 m_agentFactories.append(domFactoryPtr.release()); |
| 96 | 96 |
| 97 m_agents.append(InspectorCSSAgent::create(m_instrumentingAgents.get(), m_sta
te.get(), domAgent, pageAgent)); | 97 m_agentFactories.append(InspectorCSSFactory::create(m_instrumentingAgents.ge
t(), m_state.get(), domFactory, pageFactory)); |
| 98 | 98 |
| 99 m_agents.append(InspectorDatabaseAgent::create(m_instrumentingAgents.get(),
m_state.get())); | 99 m_agentFactories.append(InspectorDatabaseFactory::create(m_instrumentingAgen
ts.get(), m_state.get())); |
| 100 | 100 |
| 101 m_agents.append(InspectorIndexedDBAgent::create(m_instrumentingAgents.get(),
m_state.get(), m_injectedScriptManager.get(), pageAgent)); | 101 m_agentFactories.append(InspectorIndexedDBFactory::create(m_instrumentingAge
nts.get(), m_state.get(), pageFactory, m_injectedScriptManager.get())); |
| 102 | 102 |
| 103 m_agents.append(InspectorFileSystemAgent::create(m_instrumentingAgents.get()
, pageAgent, m_state.get())); | 103 m_agentFactories.append(InspectorFileSystemFactory::create(m_instrumentingAg
ents.get(), m_state.get(), pageFactory)); |
| 104 | 104 |
| 105 m_agents.append(InspectorDOMStorageAgent::create(m_instrumentingAgents.get()
, pageAgent, m_state.get())); | 105 m_agentFactories.append(InspectorDOMStorageFactory::create(m_instrumentingAg
ents.get(), m_state.get(), pageFactory)); |
| 106 | 106 |
| 107 OwnPtr<InspectorMemoryAgent> memoryAgentPtr(InspectorMemoryAgent::create(m_i
nstrumentingAgents.get(), inspectorClient, m_state.get(), m_page)); | 107 OwnPtr<InspectorMemoryFactory> memoryFactoryPtr(InspectorMemoryFactory::crea
te(m_instrumentingAgents.get(), inspectorClient, m_state.get(), m_page)); |
| 108 m_memoryAgent = memoryAgentPtr.get(); | 108 m_memoryFactory = memoryFactoryPtr.get(); |
| 109 m_agents.append(memoryAgentPtr.release()); | 109 m_agentFactories.append(memoryFactoryPtr.release()); |
| 110 | 110 |
| 111 m_agents.append(InspectorTimelineAgent::create(m_instrumentingAgents.get(),
pageAgent, m_memoryAgent, domAgent, m_state.get(), InspectorTimelineAgent::PageI
nspector, | 111 m_agentFactories.append(InspectorTimelineFactory::create(m_instrumentingAgen
ts.get(), m_state.get(), pageFactory, m_memoryFactory, domFactory, InspectorTime
lineAgent::PageInspector, inspectorClient)); |
| 112 inspectorClient)); | 112 m_agentFactories.append(InspectorApplicationCacheFactory::create(m_instrumen
tingAgents.get(), m_state.get(), pageFactory)); |
| 113 m_agents.append(InspectorApplicationCacheAgent::create(m_instrumentingAgents
.get(), m_state.get(), pageAgent)); | |
| 114 | 113 |
| 115 m_agents.append(InspectorResourceAgent::create(m_instrumentingAgents.get(),
pageAgent, inspectorClient, m_state.get())); | 114 m_agentFactories.append(InspectorResourceFactory::create(m_instrumentingAgen
ts.get(), m_state.get(), pageFactory, inspectorClient)); |
| 116 | 115 |
| 117 PageScriptDebugServer* pageScriptDebugServer = &PageScriptDebugServer::share
d(); | 116 PageScriptDebugServer* pageScriptDebugServer = &PageScriptDebugServer::share
d(); |
| 118 | 117 |
| 119 m_agents.append(PageRuntimeAgent::create(m_instrumentingAgents.get(), m_stat
e.get(), m_injectedScriptManager.get(), pageScriptDebugServer, page, pageAgent))
; | 118 m_agentFactories.append(PageRuntimeFactory::create(m_instrumentingAgents.get
(), m_state.get(), page, pageFactory, m_injectedScriptManager.get(), pageScriptD
ebugServer)); |
| 120 | 119 |
| 121 OwnPtr<InspectorConsoleAgent> consoleAgentPtr(PageConsoleAgent::create(m_ins
trumentingAgents.get(), m_state.get(), m_injectedScriptManager.get(), domAgent))
; | 120 OwnPtr<PageConsoleFactory> consoleFactoryPtr(PageConsoleFactory::create(m_in
strumentingAgents.get(), m_state.get(), m_injectedScriptManager.get(), domFactor
y)); |
| 122 InspectorConsoleAgent* consoleAgent = consoleAgentPtr.get(); | 121 InspectorConsoleFactory* consoleFactory = consoleFactoryPtr.get(); |
| 123 m_agents.append(consoleAgentPtr.release()); | 122 m_agentFactories.append(consoleFactoryPtr.release()); |
| 124 | 123 |
| 125 OwnPtr<InspectorDebuggerAgent> debuggerAgentPtr(PageDebuggerAgent::create(m_
instrumentingAgents.get(), m_state.get(), pageScriptDebugServer, pageAgent, m_in
jectedScriptManager.get(), m_overlay.get())); | 124 OwnPtr<PageDebuggerFactory> debuggerFactoryPtr(PageDebuggerFactory::create(m
_instrumentingAgents.get(), m_state.get(), pageScriptDebugServer, pageFactory, m
_injectedScriptManager.get(), m_overlay.get())); |
| 126 InspectorDebuggerAgent* debuggerAgent = debuggerAgentPtr.get(); | 125 PageDebuggerFactory* debuggerFactory = debuggerFactoryPtr.get(); |
| 127 m_agents.append(debuggerAgentPtr.release()); | 126 m_agentFactories.append(debuggerFactoryPtr.release()); |
| 128 | 127 |
| 129 m_agents.append(InspectorDOMDebuggerAgent::create(m_instrumentingAgents.get(
), m_state.get(), domAgent, debuggerAgent)); | 128 m_agentFactories.append(InspectorDOMDebuggerFactory::create(m_instrumentingA
gents.get(), m_state.get(), domFactory, debuggerFactory)); |
| 130 | 129 |
| 131 m_agents.append(InspectorProfilerAgent::create(m_instrumentingAgents.get(),
consoleAgent, m_state.get(), m_injectedScriptManager.get())); | 130 m_agentFactories.append(InspectorProfilerFactory::create(m_instrumentingAgen
ts.get(), m_state.get(), consoleFactory, m_injectedScriptManager.get())); |
| 132 | 131 |
| 133 m_agents.append(InspectorHeapProfilerAgent::create(m_instrumentingAgents.get
(), m_state.get(), m_injectedScriptManager.get())); | 132 m_agentFactories.append(InspectorHeapProfilerFactory::create(m_instrumenting
Agents.get(), m_state.get(), m_injectedScriptManager.get())); |
| 134 | 133 |
| 135 | 134 |
| 136 m_agents.append(InspectorWorkerAgent::create(m_instrumentingAgents.get(), m_
state.get())); | 135 m_agentFactories.append(InspectorWorkerFactory::create(m_instrumentingAgents
.get(), m_state.get())); |
| 137 | 136 |
| 138 m_agents.append(InspectorCanvasAgent::create(m_instrumentingAgents.get(), m_
state.get(), pageAgent, m_injectedScriptManager.get())); | 137 m_agentFactories.append(InspectorCanvasFactory::create(m_instrumentingAgents
.get(), m_state.get(), pageFactory, m_injectedScriptManager.get())); |
| 139 | 138 |
| 140 m_agents.append(InspectorInputAgent::create(m_instrumentingAgents.get(), m_s
tate.get(), page, inspectorClient)); | 139 m_agentFactories.append(InspectorInputFactory::create(m_instrumentingAgents.
get(), m_state.get(), page, inspectorClient)); |
| 141 | 140 |
| 142 m_agents.append(InspectorLayerTreeAgent::create(m_instrumentingAgents.get(),
m_state.get())); | 141 m_agentFactories.append(InspectorLayerTreeFactory::create(m_instrumentingAge
nts.get(), m_state.get())); |
| 143 | 142 |
| 144 ASSERT_ARG(inspectorClient, inspectorClient); | 143 ASSERT_ARG(inspectorClient, inspectorClient); |
| 145 m_injectedScriptManager->injectedScriptHost()->init(m_instrumentingAgents.ge
t(), pageScriptDebugServer); | 144 m_injectedScriptManager->injectedScriptHost()->init(m_instrumentingAgents.ge
t(), pageScriptDebugServer); |
| 146 } | 145 } |
| 147 | 146 |
| 148 InspectorController::~InspectorController() | 147 InspectorController::~InspectorController() |
| 149 { | 148 { |
| 150 m_instrumentingAgents->reset(); | 149 m_instrumentingAgents->reset(); |
| 151 m_agents.discardAgents(); | 150 m_agentFactories.discardDependencies(); |
| 152 ASSERT(!m_inspectorClient); | 151 ASSERT(!m_inspectorClient); |
| 153 } | 152 } |
| 154 | 153 |
| 155 PassOwnPtr<InspectorController> InspectorController::create(Page* page, Inspecto
rClient* client) | 154 PassOwnPtr<InspectorController> InspectorController::create(Page* page, Inspecto
rClient* client) |
| 156 { | 155 { |
| 157 return adoptPtr(new InspectorController(page, client)); | 156 return adoptPtr(new InspectorController(page, client)); |
| 158 } | 157 } |
| 159 | 158 |
| 160 void InspectorController::inspectedPageDestroyed() | 159 void InspectorController::inspectedPageDestroyed() |
| 161 { | 160 { |
| (...skipping 20 matching lines...) Expand all Loading... |
| 182 } | 181 } |
| 183 | 182 |
| 184 void InspectorController::connectFrontend(InspectorFrontendChannel* frontendChan
nel) | 183 void InspectorController::connectFrontend(InspectorFrontendChannel* frontendChan
nel) |
| 185 { | 184 { |
| 186 ASSERT(frontendChannel); | 185 ASSERT(frontendChannel); |
| 187 | 186 |
| 188 m_inspectorFrontend = adoptPtr(new InspectorFrontend(frontendChannel)); | 187 m_inspectorFrontend = adoptPtr(new InspectorFrontend(frontendChannel)); |
| 189 // We can reconnect to existing front-end -> unmute state. | 188 // We can reconnect to existing front-end -> unmute state. |
| 190 m_state->unmute(); | 189 m_state->unmute(); |
| 191 | 190 |
| 192 m_agents.setFrontend(m_inspectorFrontend.get()); | 191 m_agentFactories.setFrontend(m_inspectorFrontend.get()); |
| 193 | 192 |
| 194 InspectorInstrumentation::registerInstrumentingAgents(m_instrumentingAgents.
get()); | 193 InspectorInstrumentation::registerInstrumentingAgents(m_instrumentingAgents.
get()); |
| 195 InspectorInstrumentation::frontendCreated(); | 194 InspectorInstrumentation::frontendCreated(); |
| 196 | 195 |
| 197 ASSERT(m_inspectorClient); | 196 ASSERT(m_inspectorClient); |
| 198 m_inspectorBackendDispatcher = InspectorBackendDispatcher::create(frontendCh
annel); | 197 m_inspectorBackendDispatcher = InspectorBackendDispatcher::create(frontendCh
annel); |
| 199 | 198 |
| 200 m_agents.registerInDispatcher(m_inspectorBackendDispatcher.get()); | 199 m_agentFactories.registerInDispatcher(m_inspectorBackendDispatcher.get()); |
| 201 } | 200 } |
| 202 | 201 |
| 203 void InspectorController::disconnectFrontend() | 202 void InspectorController::disconnectFrontend() |
| 204 { | 203 { |
| 205 if (!m_inspectorFrontend) | 204 if (!m_inspectorFrontend) |
| 206 return; | 205 return; |
| 207 m_inspectorBackendDispatcher->clearFrontend(); | 206 m_inspectorBackendDispatcher->clearFrontend(); |
| 208 m_inspectorBackendDispatcher.clear(); | 207 m_inspectorBackendDispatcher.clear(); |
| 209 | 208 |
| 210 // Destroying agents would change the state, but we don't want that. | 209 // Destroying agents would change the state, but we don't want that. |
| 211 // Pre-disconnect state will be used to restore inspector agents. | 210 // Pre-disconnect state will be used to restore inspector agents. |
| 212 m_state->mute(); | 211 m_state->mute(); |
| 213 | 212 |
| 214 m_agents.clearFrontend(); | 213 m_agentFactories.clearFrontend(); |
| 215 | 214 |
| 216 m_inspectorFrontend.clear(); | 215 m_inspectorFrontend.clear(); |
| 217 | 216 |
| 218 // relese overlay page resources | 217 // relese overlay page resources |
| 219 m_overlay->freePage(); | 218 m_overlay->freePage(); |
| 220 InspectorInstrumentation::frontendDeleted(); | 219 InspectorInstrumentation::frontendDeleted(); |
| 221 InspectorInstrumentation::unregisterInstrumentingAgents(m_instrumentingAgent
s.get()); | 220 InspectorInstrumentation::unregisterInstrumentingAgents(m_instrumentingAgent
s.get()); |
| 222 } | 221 } |
| 223 | 222 |
| 224 void InspectorController::reconnectFrontend() | 223 void InspectorController::reconnectFrontend() |
| 225 { | 224 { |
| 226 if (!m_inspectorFrontend) | 225 if (!m_inspectorFrontend) |
| 227 return; | 226 return; |
| 228 InspectorFrontendChannel* frontendChannel = m_inspectorFrontend->inspector()
->getInspectorFrontendChannel(); | 227 InspectorFrontendChannel* frontendChannel = m_inspectorFrontend->inspector()
->getInspectorFrontendChannel(); |
| 229 disconnectFrontend(); | 228 disconnectFrontend(); |
| 230 connectFrontend(frontendChannel); | 229 connectFrontend(frontendChannel); |
| 231 } | 230 } |
| 232 | 231 |
| 233 void InspectorController::reuseFrontend(InspectorFrontendChannel* frontendChanne
l, const String& inspectorStateCookie) | 232 void InspectorController::reuseFrontend(InspectorFrontendChannel* frontendChanne
l, const String& inspectorStateCookie) |
| 234 { | 233 { |
| 235 ASSERT(!m_inspectorFrontend); | 234 ASSERT(!m_inspectorFrontend); |
| 236 connectFrontend(frontendChannel); | 235 connectFrontend(frontendChannel); |
| 237 m_state->loadFromCookie(inspectorStateCookie); | 236 m_state->loadFromCookie(inspectorStateCookie); |
| 238 m_agents.restore(); | 237 m_agentFactories.restore(); |
| 239 } | 238 } |
| 240 | 239 |
| 241 void InspectorController::setProcessId(long processId) | 240 void InspectorController::setProcessId(long processId) |
| 242 { | 241 { |
| 243 IdentifiersFactory::setProcessId(processId); | 242 IdentifiersFactory::setProcessId(processId); |
| 244 } | 243 } |
| 245 | 244 |
| 246 void InspectorController::webViewResized(const IntSize& size) | 245 void InspectorController::webViewResized(const IntSize& size) |
| 247 { | 246 { |
| 248 if (InspectorPageAgent* pageAgent = m_instrumentingAgents->inspectorPageAgen
t()) | 247 if (InspectorPageAgent* pageAgent = m_instrumentingAgents->inspectorPageAgen
t()) |
| (...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 364 info.addMember(m_instrumentingAgents, "instrumentingAgents"); | 363 info.addMember(m_instrumentingAgents, "instrumentingAgents"); |
| 365 info.addMember(m_injectedScriptManager, "injectedScriptManager"); | 364 info.addMember(m_injectedScriptManager, "injectedScriptManager"); |
| 366 info.addMember(m_state, "state"); | 365 info.addMember(m_state, "state"); |
| 367 info.addMember(m_overlay, "overlay"); | 366 info.addMember(m_overlay, "overlay"); |
| 368 | 367 |
| 369 info.addMember(m_inspectorBackendDispatcher, "inspectorBackendDispatcher"); | 368 info.addMember(m_inspectorBackendDispatcher, "inspectorBackendDispatcher"); |
| 370 info.addMember(m_inspectorFrontendClient, "inspectorFrontendClient"); | 369 info.addMember(m_inspectorFrontendClient, "inspectorFrontendClient"); |
| 371 info.addMember(m_inspectorFrontend, "inspectorFrontend"); | 370 info.addMember(m_inspectorFrontend, "inspectorFrontend"); |
| 372 info.addMember(m_page, "page"); | 371 info.addMember(m_page, "page"); |
| 373 info.addWeakPointer(m_inspectorClient); | 372 info.addWeakPointer(m_inspectorClient); |
| 374 info.addMember(m_agents, "agents"); | 373 info.addMember(m_agentFactories, "agents"); |
| 375 } | 374 } |
| 376 | 375 |
| 377 void InspectorController::willProcessTask() | 376 void InspectorController::willProcessTask() |
| 378 { | 377 { |
| 379 if (InspectorTimelineAgent* timelineAgent = m_instrumentingAgents->inspector
TimelineAgent()) | 378 if (InspectorTimelineAgent* timelineAgent = m_instrumentingAgents->inspector
TimelineAgent()) |
| 380 timelineAgent->willProcessTask(); | 379 timelineAgent->willProcessTask(); |
| 381 if (InspectorProfilerAgent* profilerAgent = m_instrumentingAgents->inspector
ProfilerAgent()) | 380 if (InspectorProfilerAgent* profilerAgent = m_instrumentingAgents->inspector
ProfilerAgent()) |
| 382 profilerAgent->willProcessTask(); | 381 profilerAgent->willProcessTask(); |
| 383 } | 382 } |
| 384 | 383 |
| (...skipping 29 matching lines...) Expand all Loading... |
| 414 | 413 |
| 415 void InspectorController::didComposite() | 414 void InspectorController::didComposite() |
| 416 { | 415 { |
| 417 if (InspectorTimelineAgent* timelineAgent = m_instrumentingAgents->inspector
TimelineAgent()) | 416 if (InspectorTimelineAgent* timelineAgent = m_instrumentingAgents->inspector
TimelineAgent()) |
| 418 timelineAgent->didComposite(); | 417 timelineAgent->didComposite(); |
| 419 } | 418 } |
| 420 | 419 |
| 421 HashMap<String, size_t> InspectorController::processMemoryDistribution() const | 420 HashMap<String, size_t> InspectorController::processMemoryDistribution() const |
| 422 { | 421 { |
| 423 HashMap<String, size_t> memoryInfo; | 422 HashMap<String, size_t> memoryInfo; |
| 424 m_memoryAgent->getProcessMemoryDistributionMap(&memoryInfo); | 423 m_memoryFactory->agent()->getProcessMemoryDistributionMap(&memoryInfo); |
| 425 return memoryInfo; | 424 return memoryInfo; |
| 426 } | 425 } |
| 427 | 426 |
| 428 } // namespace WebCore | 427 } // namespace WebCore |
| OLD | NEW |