Chromium Code Reviews| Index: Source/core/inspector/WorkerInspectorController.cpp |
| diff --git a/Source/core/inspector/WorkerInspectorController.cpp b/Source/core/inspector/WorkerInspectorController.cpp |
| index b63e19f60036e1118af5822016d1688e36a71108..d969961f51ac75a261ab34a3df7973baaaa1c89c 100644 |
| --- a/Source/core/inspector/WorkerInspectorController.cpp |
| +++ b/Source/core/inspector/WorkerInspectorController.cpp |
| @@ -95,25 +95,25 @@ WorkerInspectorController::WorkerInspectorController(WorkerGlobalScope* workerGl |
| , m_instrumentingAgents(InstrumentingAgents::create()) |
| , m_injectedScriptManager(InjectedScriptManager::createForWorker()) |
| , m_debugServer(adoptPtr(new WorkerScriptDebugServer(workerGlobalScope))) |
| - , m_agents(m_instrumentingAgents.get(), m_state.get()) |
| + , m_agents(adoptPtrWillBeNoop(new InspectorAgentRegistry(m_instrumentingAgents.get(), m_state.get()))) |
| { |
| - m_agents.append(WorkerRuntimeAgent::create(m_injectedScriptManager.get(), m_debugServer.get(), workerGlobalScope)); |
| + m_agents->append(WorkerRuntimeAgent::create(m_injectedScriptManager.get(), m_debugServer.get(), workerGlobalScope)); |
|
tkent
2014/06/10 09:50:55
You may add |InspectorAgentRegistry& agents() { re
|
| - OwnPtr<InspectorTimelineAgent> timelineAgent = InspectorTimelineAgent::create(0, 0, 0, InspectorTimelineAgent::WorkerInspector, 0); |
| - m_agents.append(WorkerDebuggerAgent::create(m_debugServer.get(), workerGlobalScope, m_injectedScriptManager.get())); |
| + OwnPtrWillBeRawPtr<InspectorTimelineAgent> timelineAgent = InspectorTimelineAgent::create(0, 0, 0, InspectorTimelineAgent::WorkerInspector, 0); |
| + OwnPtrWillBeRawPtr<WorkerDebuggerAgent> debuggerAgent = WorkerDebuggerAgent::create(m_debugServer.get(), workerGlobalScope, m_injectedScriptManager.get()); |
| + m_debuggerAgent = debuggerAgent.get(); |
| + m_agents->append(debuggerAgent.release()); |
| - m_agents.append(InspectorProfilerAgent::create(m_injectedScriptManager.get(), 0)); |
| - m_agents.append(InspectorHeapProfilerAgent::create(m_injectedScriptManager.get())); |
| - m_agents.append(WorkerConsoleAgent::create(timelineAgent.get(), m_injectedScriptManager.get())); |
| - m_agents.append(timelineAgent.release()); |
| + m_agents->append(InspectorProfilerAgent::create(m_injectedScriptManager.get(), 0)); |
| + m_agents->append(InspectorHeapProfilerAgent::create(m_injectedScriptManager.get())); |
| + m_agents->append(WorkerConsoleAgent::create(timelineAgent.get(), m_injectedScriptManager.get())); |
| + m_agents->append(timelineAgent.release()); |
| m_injectedScriptManager->injectedScriptHost()->init(m_instrumentingAgents.get(), m_debugServer.get()); |
| } |
| WorkerInspectorController::~WorkerInspectorController() |
| { |
| - m_instrumentingAgents->reset(); |
| - disconnectFrontend(); |
| } |
| void WorkerInspectorController::connectFrontend() |
| @@ -123,8 +123,8 @@ void WorkerInspectorController::connectFrontend() |
| m_frontendChannel = adoptPtr(new PageInspectorProxy(m_workerGlobalScope)); |
| m_frontend = adoptPtr(new InspectorFrontend(m_frontendChannel.get())); |
| m_backendDispatcher = InspectorBackendDispatcher::create(m_frontendChannel.get()); |
| - m_agents.registerInDispatcher(m_backendDispatcher.get()); |
| - m_agents.setFrontend(m_frontend.get()); |
| + m_agents->registerInDispatcher(m_backendDispatcher.get()); |
| + m_agents->setFrontend(m_frontend.get()); |
| InspectorInstrumentation::frontendCreated(); |
| } |
| @@ -137,7 +137,7 @@ void WorkerInspectorController::disconnectFrontend() |
| // Destroying agents would change the state, but we don't want that. |
| // Pre-disconnect state will be used to restore inspector agents. |
| m_state->mute(); |
| - m_agents.clearFrontend(); |
| + m_agents->clearFrontend(); |
| m_frontend.clear(); |
| InspectorInstrumentation::frontendDeleted(); |
| m_frontendChannel.clear(); |
| @@ -149,7 +149,7 @@ void WorkerInspectorController::restoreInspectorStateFromCookie(const String& in |
| connectFrontend(); |
| m_state->loadFromCookie(inspectorCookie); |
| - m_agents.restore(); |
| + m_agents->restore(); |
| } |
| void WorkerInspectorController::dispatchMessageFromFrontend(const String& message) |
| @@ -166,4 +166,18 @@ void WorkerInspectorController::resume() |
| } |
| } |
| +void WorkerInspectorController::discard() |
| +{ |
| + m_debuggerAgent->discard(); |
| + m_debuggerAgent = nullptr; |
| + m_instrumentingAgents->reset(); |
| + disconnectFrontend(); |
| +} |
| + |
| +void WorkerInspectorController::trace(Visitor* visitor) |
| +{ |
| + visitor->trace(m_agents); |
| + visitor->trace(m_debuggerAgent); |
| +} |
| + |
| } |