OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "platform/v8_inspector/V8ProfilerAgentImpl.h" | 5 #include "platform/v8_inspector/V8ProfilerAgentImpl.h" |
6 | 6 |
7 #include "platform/v8_inspector/Atomics.h" | 7 #include "platform/v8_inspector/Atomics.h" |
8 #include "platform/v8_inspector/V8DebuggerImpl.h" | 8 #include "platform/v8_inspector/V8DebuggerImpl.h" |
9 #include "platform/v8_inspector/V8InspectorSessionImpl.h" | 9 #include "platform/v8_inspector/V8InspectorSessionImpl.h" |
10 #include "platform/v8_inspector/V8StackTraceImpl.h" | 10 #include "platform/v8_inspector/V8StackTraceImpl.h" |
(...skipping 225 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
236 if (m_recordingCPUProfile) | 236 if (m_recordingCPUProfile) |
237 return; | 237 return; |
238 if (!m_enabled) { | 238 if (!m_enabled) { |
239 *error = "Profiler is not enabled"; | 239 *error = "Profiler is not enabled"; |
240 return; | 240 return; |
241 } | 241 } |
242 m_recordingCPUProfile = true; | 242 m_recordingCPUProfile = true; |
243 m_frontendInitiatedProfileId = nextProfileId(); | 243 m_frontendInitiatedProfileId = nextProfileId(); |
244 startProfiling(m_frontendInitiatedProfileId); | 244 startProfiling(m_frontendInitiatedProfileId); |
245 m_state->setBoolean(ProfilerAgentState::userInitiatedProfiling, true); | 245 m_state->setBoolean(ProfilerAgentState::userInitiatedProfiling, true); |
| 246 m_session->client()->profilingStarted(); |
246 } | 247 } |
247 | 248 |
248 void V8ProfilerAgentImpl::stop(ErrorString* errorString, OwnPtr<protocol::Profil
er::CPUProfile>* profile) | 249 void V8ProfilerAgentImpl::stop(ErrorString* errorString, OwnPtr<protocol::Profil
er::CPUProfile>* profile) |
249 { | 250 { |
250 if (!m_recordingCPUProfile) { | 251 if (!m_recordingCPUProfile) { |
251 if (errorString) | 252 if (errorString) |
252 *errorString = "No recording profiles found"; | 253 *errorString = "No recording profiles found"; |
253 return; | 254 return; |
254 } | 255 } |
255 m_recordingCPUProfile = false; | 256 m_recordingCPUProfile = false; |
256 OwnPtr<protocol::Profiler::CPUProfile> cpuProfile = stopProfiling(m_frontend
InitiatedProfileId, !!profile); | 257 OwnPtr<protocol::Profiler::CPUProfile> cpuProfile = stopProfiling(m_frontend
InitiatedProfileId, !!profile); |
257 if (profile) { | 258 if (profile) { |
258 *profile = cpuProfile.release(); | 259 *profile = cpuProfile.release(); |
259 if (!profile->get() && errorString) | 260 if (!profile->get() && errorString) |
260 *errorString = "Profile is not found"; | 261 *errorString = "Profile is not found"; |
261 } | 262 } |
262 m_frontendInitiatedProfileId = String16(); | 263 m_frontendInitiatedProfileId = String16(); |
263 m_state->setBoolean(ProfilerAgentState::userInitiatedProfiling, false); | 264 m_state->setBoolean(ProfilerAgentState::userInitiatedProfiling, false); |
| 265 m_session->client()->profilingStopped(); |
264 } | 266 } |
265 | 267 |
266 String16 V8ProfilerAgentImpl::nextProfileId() | 268 String16 V8ProfilerAgentImpl::nextProfileId() |
267 { | 269 { |
268 return String16::number(atomicIncrement(&s_lastProfileId)); | 270 return String16::number(atomicIncrement(&s_lastProfileId)); |
269 } | 271 } |
270 | 272 |
271 void V8ProfilerAgentImpl::startProfiling(const String16& title) | 273 void V8ProfilerAgentImpl::startProfiling(const String16& title) |
272 { | 274 { |
273 v8::HandleScope handleScope(m_isolate); | 275 v8::HandleScope handleScope(m_isolate); |
(...skipping 12 matching lines...) Expand all Loading... |
286 profile->Delete(); | 288 profile->Delete(); |
287 return result.release(); | 289 return result.release(); |
288 } | 290 } |
289 | 291 |
290 bool V8ProfilerAgentImpl::isRecording() const | 292 bool V8ProfilerAgentImpl::isRecording() const |
291 { | 293 { |
292 return m_recordingCPUProfile || !m_startedProfiles.isEmpty(); | 294 return m_recordingCPUProfile || !m_startedProfiles.isEmpty(); |
293 } | 295 } |
294 | 296 |
295 } // namespace blink | 297 } // namespace blink |
OLD | NEW |