Index: Source/core/inspector/WorkerInspectorController.cpp |
diff --git a/Source/core/inspector/WorkerInspectorController.cpp b/Source/core/inspector/WorkerInspectorController.cpp |
index 2f45015aeda82bf0ff566f863b5fc86e06ceee80..f93725b54dc79242741646df1a1dfad51c0b58e3 100644 |
--- a/Source/core/inspector/WorkerInspectorController.cpp |
+++ b/Source/core/inspector/WorkerInspectorController.cpp |
@@ -102,7 +102,7 @@ WorkerInspectorController::WorkerInspectorController(WorkerGlobalScope* workerGl |
, m_state(adoptPtrWillBeNoop(new InspectorCompositeState(m_stateClient.get()))) |
, m_instrumentingAgents(InstrumentingAgents::create()) |
, m_injectedScriptManager(InjectedScriptManager::createForWorker()) |
- , m_debugServer(WorkerScriptDebugServer::create(workerGlobalScope)) |
+ , m_debugServer(WorkerScriptDebugServer::create(this, workerGlobalScope)) |
, m_agents(m_instrumentingAgents.get(), m_state.get()) |
, m_paused(false) |
{ |
@@ -110,12 +110,15 @@ WorkerInspectorController::WorkerInspectorController(WorkerGlobalScope* workerGl |
m_workerRuntimeAgent = workerRuntimeAgent.get(); |
m_agents.append(workerRuntimeAgent.release()); |
- OwnPtrWillBeRawPtr<WorkerDebuggerAgent> workerDebuggerAgent = WorkerDebuggerAgent::create(m_debugServer.get(), workerGlobalScope, m_injectedScriptManager.get()); |
+ OwnPtrWillBeRawPtr<InspectorProfilerAgent> profilerAgent = InspectorProfilerAgent::create(m_injectedScriptManager.get(), 0); |
+ m_profilerAgent = profilerAgent.get(); |
+ m_agents.append(profilerAgent.release()); |
+ |
+ OwnPtrWillBeRawPtr<WorkerDebuggerAgent> workerDebuggerAgent = WorkerDebuggerAgent::create(m_debugServer.get(), workerGlobalScope, m_injectedScriptManager.get(), this); |
m_workerDebuggerAgent = workerDebuggerAgent.get(); |
m_agents.append(workerDebuggerAgent.release()); |
m_asyncCallTracker = adoptPtrWillBeNoop(new AsyncCallTracker(m_workerDebuggerAgent, m_instrumentingAgents.get())); |
- m_agents.append(InspectorProfilerAgent::create(m_injectedScriptManager.get(), 0)); |
m_agents.append(InspectorHeapProfilerAgent::create(m_injectedScriptManager.get())); |
OwnPtrWillBeRawPtr<WorkerConsoleAgent> workerConsoleAgent = WorkerConsoleAgent::create(m_injectedScriptManager.get(), workerGlobalScope); |
@@ -203,12 +206,22 @@ void WorkerInspectorController::pauseOnStart() |
{ |
m_paused = true; |
MessageQueueWaitResult result; |
- m_workerGlobalScope->thread()->willEnterNestedLoop(); |
+ willProcessTask(); |
do { |
result = m_workerGlobalScope->thread()->runDebuggerTask(); |
// Keep waiting until execution is resumed. |
} while (result == MessageQueueMessageReceived && m_paused); |
- m_workerGlobalScope->thread()->didLeaveNestedLoop(); |
+ didProcessTask(); |
+} |
+ |
+void WorkerInspectorController::willProcessTask() |
+{ |
+ m_profilerAgent->willProcessTask(); |
+} |
+ |
+void WorkerInspectorController::didProcessTask() |
+{ |
+ m_profilerAgent->didProcessTask(); |
} |
DEFINE_TRACE(WorkerInspectorController) |
@@ -220,6 +233,7 @@ DEFINE_TRACE(WorkerInspectorController) |
visitor->trace(m_debugServer); |
visitor->trace(m_backendDispatcher); |
visitor->trace(m_agents); |
+ visitor->trace(m_profilerAgent); |
visitor->trace(m_workerDebuggerAgent); |
visitor->trace(m_asyncCallTracker); |
visitor->trace(m_workerRuntimeAgent); |