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 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
95 | 95 |
96 ~WorkerInjectedScriptHostClient() override { } | 96 ~WorkerInjectedScriptHostClient() override { } |
97 }; | 97 }; |
98 | 98 |
99 WorkerInspectorController::WorkerInspectorController(WorkerGlobalScope* workerGl
obalScope) | 99 WorkerInspectorController::WorkerInspectorController(WorkerGlobalScope* workerGl
obalScope) |
100 : m_workerGlobalScope(workerGlobalScope) | 100 : m_workerGlobalScope(workerGlobalScope) |
101 , m_stateClient(adoptPtr(new WorkerStateClient(workerGlobalScope))) | 101 , m_stateClient(adoptPtr(new WorkerStateClient(workerGlobalScope))) |
102 , m_state(adoptPtrWillBeNoop(new InspectorCompositeState(m_stateClient.get()
))) | 102 , m_state(adoptPtrWillBeNoop(new InspectorCompositeState(m_stateClient.get()
))) |
103 , m_instrumentingAgents(InstrumentingAgents::create()) | 103 , m_instrumentingAgents(InstrumentingAgents::create()) |
104 , m_injectedScriptManager(InjectedScriptManager::createForWorker()) | 104 , m_injectedScriptManager(InjectedScriptManager::createForWorker()) |
105 , m_debugServer(WorkerScriptDebugServer::create(workerGlobalScope)) | 105 , m_debugServer(WorkerScriptDebugServer::create(this, workerGlobalScope)) |
106 , m_agents(m_instrumentingAgents.get(), m_state.get()) | 106 , m_agents(m_instrumentingAgents.get(), m_state.get()) |
107 , m_paused(false) | 107 , m_paused(false) |
108 { | 108 { |
109 OwnPtrWillBeRawPtr<WorkerRuntimeAgent> workerRuntimeAgent = WorkerRuntimeAge
nt::create(m_injectedScriptManager.get(), m_debugServer->scriptDebugServer(), wo
rkerGlobalScope, this); | 109 OwnPtrWillBeRawPtr<WorkerRuntimeAgent> workerRuntimeAgent = WorkerRuntimeAge
nt::create(m_injectedScriptManager.get(), m_debugServer->scriptDebugServer(), wo
rkerGlobalScope, this); |
110 m_workerRuntimeAgent = workerRuntimeAgent.get(); | 110 m_workerRuntimeAgent = workerRuntimeAgent.get(); |
111 m_agents.append(workerRuntimeAgent.release()); | 111 m_agents.append(workerRuntimeAgent.release()); |
112 | 112 |
113 OwnPtrWillBeRawPtr<WorkerDebuggerAgent> workerDebuggerAgent = WorkerDebugger
Agent::create(m_debugServer.get(), workerGlobalScope, m_injectedScriptManager.ge
t()); | 113 OwnPtrWillBeRawPtr<InspectorProfilerAgent> profilerAgent = InspectorProfiler
Agent::create(m_injectedScriptManager.get(), 0); |
| 114 m_profilerAgent = profilerAgent.get(); |
| 115 m_agents.append(profilerAgent.release()); |
| 116 |
| 117 OwnPtrWillBeRawPtr<WorkerDebuggerAgent> workerDebuggerAgent = WorkerDebugger
Agent::create(m_debugServer.get(), workerGlobalScope, m_injectedScriptManager.ge
t(), this); |
114 m_workerDebuggerAgent = workerDebuggerAgent.get(); | 118 m_workerDebuggerAgent = workerDebuggerAgent.get(); |
115 m_agents.append(workerDebuggerAgent.release()); | 119 m_agents.append(workerDebuggerAgent.release()); |
116 m_asyncCallTracker = adoptPtrWillBeNoop(new AsyncCallTracker(m_workerDebugge
rAgent, m_instrumentingAgents.get())); | 120 m_asyncCallTracker = adoptPtrWillBeNoop(new AsyncCallTracker(m_workerDebugge
rAgent, m_instrumentingAgents.get())); |
117 | 121 |
118 m_agents.append(InspectorProfilerAgent::create(m_injectedScriptManager.get()
, 0)); | |
119 m_agents.append(InspectorHeapProfilerAgent::create(m_injectedScriptManager.g
et())); | 122 m_agents.append(InspectorHeapProfilerAgent::create(m_injectedScriptManager.g
et())); |
120 | 123 |
121 OwnPtrWillBeRawPtr<WorkerConsoleAgent> workerConsoleAgent = WorkerConsoleAge
nt::create(m_injectedScriptManager.get(), workerGlobalScope); | 124 OwnPtrWillBeRawPtr<WorkerConsoleAgent> workerConsoleAgent = WorkerConsoleAge
nt::create(m_injectedScriptManager.get(), workerGlobalScope); |
122 WorkerConsoleAgent* workerConsoleAgentPtr = workerConsoleAgent.get(); | 125 WorkerConsoleAgent* workerConsoleAgentPtr = workerConsoleAgent.get(); |
123 m_agents.append(workerConsoleAgent.release()); | 126 m_agents.append(workerConsoleAgent.release()); |
124 | 127 |
125 m_agents.append(InspectorTimelineAgent::create()); | 128 m_agents.append(InspectorTimelineAgent::create()); |
126 | 129 |
127 m_injectedScriptManager->injectedScriptHost()->init(workerConsoleAgentPtr, m
_workerDebuggerAgent, nullptr, m_debugServer->scriptDebugServer(), adoptPtr(new
WorkerInjectedScriptHostClient())); | 130 m_injectedScriptManager->injectedScriptHost()->init(workerConsoleAgentPtr, m
_workerDebuggerAgent, nullptr, m_debugServer->scriptDebugServer(), adoptPtr(new
WorkerInjectedScriptHostClient())); |
128 } | 131 } |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
196 | 199 |
197 bool WorkerInspectorController::isRunRequired() | 200 bool WorkerInspectorController::isRunRequired() |
198 { | 201 { |
199 return m_paused; | 202 return m_paused; |
200 } | 203 } |
201 | 204 |
202 void WorkerInspectorController::pauseOnStart() | 205 void WorkerInspectorController::pauseOnStart() |
203 { | 206 { |
204 m_paused = true; | 207 m_paused = true; |
205 MessageQueueWaitResult result; | 208 MessageQueueWaitResult result; |
206 m_workerGlobalScope->thread()->willEnterNestedLoop(); | 209 willProcessTask(); |
207 do { | 210 do { |
208 result = m_workerGlobalScope->thread()->runDebuggerTask(); | 211 result = m_workerGlobalScope->thread()->runDebuggerTask(); |
209 // Keep waiting until execution is resumed. | 212 // Keep waiting until execution is resumed. |
210 } while (result == MessageQueueMessageReceived && m_paused); | 213 } while (result == MessageQueueMessageReceived && m_paused); |
211 m_workerGlobalScope->thread()->didLeaveNestedLoop(); | 214 didProcessTask(); |
| 215 } |
| 216 |
| 217 void WorkerInspectorController::willProcessTask() |
| 218 { |
| 219 m_profilerAgent->willProcessTask(); |
| 220 } |
| 221 |
| 222 void WorkerInspectorController::didProcessTask() |
| 223 { |
| 224 m_profilerAgent->didProcessTask(); |
212 } | 225 } |
213 | 226 |
214 DEFINE_TRACE(WorkerInspectorController) | 227 DEFINE_TRACE(WorkerInspectorController) |
215 { | 228 { |
216 visitor->trace(m_workerGlobalScope); | 229 visitor->trace(m_workerGlobalScope); |
217 visitor->trace(m_state); | 230 visitor->trace(m_state); |
218 visitor->trace(m_instrumentingAgents); | 231 visitor->trace(m_instrumentingAgents); |
219 visitor->trace(m_injectedScriptManager); | 232 visitor->trace(m_injectedScriptManager); |
220 visitor->trace(m_debugServer); | 233 visitor->trace(m_debugServer); |
221 visitor->trace(m_backendDispatcher); | 234 visitor->trace(m_backendDispatcher); |
222 visitor->trace(m_agents); | 235 visitor->trace(m_agents); |
| 236 visitor->trace(m_profilerAgent); |
223 visitor->trace(m_workerDebuggerAgent); | 237 visitor->trace(m_workerDebuggerAgent); |
224 visitor->trace(m_asyncCallTracker); | 238 visitor->trace(m_asyncCallTracker); |
225 visitor->trace(m_workerRuntimeAgent); | 239 visitor->trace(m_workerRuntimeAgent); |
226 } | 240 } |
227 | 241 |
228 } // namespace blink | 242 } // namespace blink |
OLD | NEW |