| 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 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 114 | 114 |
| 115 class V8ProfilerAgentImpl::ProfileDescriptor { | 115 class V8ProfilerAgentImpl::ProfileDescriptor { |
| 116 public: | 116 public: |
| 117 ProfileDescriptor(const String16& id, const String16& title) | 117 ProfileDescriptor(const String16& id, const String16& title) |
| 118 : m_id(id) | 118 : m_id(id) |
| 119 , m_title(title) { } | 119 , m_title(title) { } |
| 120 String16 m_id; | 120 String16 m_id; |
| 121 String16 m_title; | 121 String16 m_title; |
| 122 }; | 122 }; |
| 123 | 123 |
| 124 V8ProfilerAgentImpl::V8ProfilerAgentImpl(V8InspectorSessionImpl* session) | 124 V8ProfilerAgentImpl::V8ProfilerAgentImpl(V8InspectorSessionImpl* session, protoc
ol::Frontend::Profiler* frontend, protocol::DictionaryValue* state) |
| 125 : m_session(session) | 125 : m_session(session) |
| 126 , m_isolate(m_session->debugger()->isolate()) | 126 , m_isolate(m_session->debugger()->isolate()) |
| 127 , m_state(nullptr) | 127 , m_state(state) |
| 128 , m_frontend(nullptr) | 128 , m_frontend(frontend) |
| 129 , m_enabled(false) | 129 , m_enabled(false) |
| 130 , m_recordingCPUProfile(false) | 130 , m_recordingCPUProfile(false) |
| 131 { | 131 { |
| 132 } | 132 } |
| 133 | 133 |
| 134 V8ProfilerAgentImpl::~V8ProfilerAgentImpl() | 134 V8ProfilerAgentImpl::~V8ProfilerAgentImpl() |
| 135 { | 135 { |
| 136 } | 136 } |
| 137 | 137 |
| 138 void V8ProfilerAgentImpl::consoleProfile(const String16& title) | 138 void V8ProfilerAgentImpl::consoleProfile(const String16& title) |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 204 void V8ProfilerAgentImpl::setSamplingInterval(ErrorString* error, int interval) | 204 void V8ProfilerAgentImpl::setSamplingInterval(ErrorString* error, int interval) |
| 205 { | 205 { |
| 206 if (m_recordingCPUProfile) { | 206 if (m_recordingCPUProfile) { |
| 207 *error = "Cannot change sampling interval when profiling."; | 207 *error = "Cannot change sampling interval when profiling."; |
| 208 return; | 208 return; |
| 209 } | 209 } |
| 210 m_state->setNumber(ProfilerAgentState::samplingInterval, interval); | 210 m_state->setNumber(ProfilerAgentState::samplingInterval, interval); |
| 211 m_isolate->GetCpuProfiler()->SetSamplingInterval(interval); | 211 m_isolate->GetCpuProfiler()->SetSamplingInterval(interval); |
| 212 } | 212 } |
| 213 | 213 |
| 214 void V8ProfilerAgentImpl::clearFrontend() | |
| 215 { | |
| 216 ErrorString error; | |
| 217 disable(&error); | |
| 218 DCHECK(m_frontend); | |
| 219 m_frontend = nullptr; | |
| 220 } | |
| 221 | |
| 222 void V8ProfilerAgentImpl::restore() | 214 void V8ProfilerAgentImpl::restore() |
| 223 { | 215 { |
| 224 DCHECK(!m_enabled); | 216 DCHECK(!m_enabled); |
| 225 if (!m_state->booleanProperty(ProfilerAgentState::profilerEnabled, false)) | 217 if (!m_state->booleanProperty(ProfilerAgentState::profilerEnabled, false)) |
| 226 return; | 218 return; |
| 227 m_enabled = true; | 219 m_enabled = true; |
| 228 m_session->changeInstrumentationCounter(+1); | 220 m_session->changeInstrumentationCounter(+1); |
| 229 int interval = 0; | 221 int interval = 0; |
| 230 m_state->getNumber(ProfilerAgentState::samplingInterval, &interval); | 222 m_state->getNumber(ProfilerAgentState::samplingInterval, &interval); |
| 231 if (interval) | 223 if (interval) |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 293 profile->Delete(); | 285 profile->Delete(); |
| 294 return result; | 286 return result; |
| 295 } | 287 } |
| 296 | 288 |
| 297 bool V8ProfilerAgentImpl::isRecording() const | 289 bool V8ProfilerAgentImpl::isRecording() const |
| 298 { | 290 { |
| 299 return m_recordingCPUProfile || !m_startedProfiles.isEmpty(); | 291 return m_recordingCPUProfile || !m_startedProfiles.isEmpty(); |
| 300 } | 292 } |
| 301 | 293 |
| 302 } // namespace blink | 294 } // namespace blink |
| OLD | NEW |