| 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);
|
|
|