OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2010-2011 Google Inc. All rights reserved. | 2 * Copyright (c) 2010-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 27 matching lines...) Expand all Loading... |
38 #include "src/inspector/v8-debugger.h" | 38 #include "src/inspector/v8-debugger.h" |
39 #include "src/inspector/v8-inspector-session-impl.h" | 39 #include "src/inspector/v8-inspector-session-impl.h" |
40 #include "src/inspector/v8-profiler-agent-impl.h" | 40 #include "src/inspector/v8-profiler-agent-impl.h" |
41 #include "src/inspector/v8-runtime-agent-impl.h" | 41 #include "src/inspector/v8-runtime-agent-impl.h" |
42 #include "src/inspector/v8-stack-trace-impl.h" | 42 #include "src/inspector/v8-stack-trace-impl.h" |
43 | 43 |
44 namespace v8_inspector { | 44 namespace v8_inspector { |
45 | 45 |
46 std::unique_ptr<V8Inspector> V8Inspector::create(v8::Isolate* isolate, | 46 std::unique_ptr<V8Inspector> V8Inspector::create(v8::Isolate* isolate, |
47 V8InspectorClient* client) { | 47 V8InspectorClient* client) { |
48 return wrapUnique(new V8InspectorImpl(isolate, client)); | 48 return std::unique_ptr<V8Inspector>(new V8InspectorImpl(isolate, client)); |
49 } | 49 } |
50 | 50 |
51 V8InspectorImpl::V8InspectorImpl(v8::Isolate* isolate, | 51 V8InspectorImpl::V8InspectorImpl(v8::Isolate* isolate, |
52 V8InspectorClient* client) | 52 V8InspectorClient* client) |
53 : m_isolate(isolate), | 53 : m_isolate(isolate), |
54 m_client(client), | 54 m_client(client), |
55 m_debugger(new V8Debugger(isolate, this)), | 55 m_debugger(new V8Debugger(isolate, this)), |
56 m_capturingStackTracesCount(0), | 56 m_capturingStackTracesCount(0), |
57 m_lastExceptionId(0) {} | 57 m_lastExceptionId(0) {} |
58 | 58 |
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
156 | 156 |
157 void V8InspectorImpl::unmuteExceptions(int contextGroupId) { | 157 void V8InspectorImpl::unmuteExceptions(int contextGroupId) { |
158 m_muteExceptionsMap[contextGroupId]--; | 158 m_muteExceptionsMap[contextGroupId]--; |
159 } | 159 } |
160 | 160 |
161 V8ConsoleMessageStorage* V8InspectorImpl::ensureConsoleMessageStorage( | 161 V8ConsoleMessageStorage* V8InspectorImpl::ensureConsoleMessageStorage( |
162 int contextGroupId) { | 162 int contextGroupId) { |
163 ConsoleStorageMap::iterator storageIt = | 163 ConsoleStorageMap::iterator storageIt = |
164 m_consoleStorageMap.find(contextGroupId); | 164 m_consoleStorageMap.find(contextGroupId); |
165 if (storageIt == m_consoleStorageMap.end()) | 165 if (storageIt == m_consoleStorageMap.end()) |
166 storageIt = | 166 storageIt = m_consoleStorageMap |
167 m_consoleStorageMap | 167 .insert(std::make_pair( |
168 .insert(std::make_pair( | 168 contextGroupId, |
169 contextGroupId, | 169 std::unique_ptr<V8ConsoleMessageStorage>( |
170 wrapUnique(new V8ConsoleMessageStorage(this, contextGroupId)))) | 170 new V8ConsoleMessageStorage(this, contextGroupId)))) |
171 .first; | 171 .first; |
172 return storageIt->second.get(); | 172 return storageIt->second.get(); |
173 } | 173 } |
174 | 174 |
175 bool V8InspectorImpl::hasConsoleMessageStorage(int contextGroupId) { | 175 bool V8InspectorImpl::hasConsoleMessageStorage(int contextGroupId) { |
176 ConsoleStorageMap::iterator storageIt = | 176 ConsoleStorageMap::iterator storageIt = |
177 m_consoleStorageMap.find(contextGroupId); | 177 m_consoleStorageMap.find(contextGroupId); |
178 return storageIt != m_consoleStorageMap.end(); | 178 return storageIt != m_consoleStorageMap.end(); |
179 } | 179 } |
180 | 180 |
181 std::unique_ptr<V8StackTrace> V8InspectorImpl::createStackTrace( | 181 std::unique_ptr<V8StackTrace> V8InspectorImpl::createStackTrace( |
(...skipping 28 matching lines...) Expand all Loading... |
210 | 210 |
211 return contextIt->second.get(); | 211 return contextIt->second.get(); |
212 } | 212 } |
213 | 213 |
214 void V8InspectorImpl::contextCreated(const V8ContextInfo& info) { | 214 void V8InspectorImpl::contextCreated(const V8ContextInfo& info) { |
215 int contextId = m_debugger->markContext(info); | 215 int contextId = m_debugger->markContext(info); |
216 | 216 |
217 ContextsByGroupMap::iterator contextIt = m_contexts.find(info.contextGroupId); | 217 ContextsByGroupMap::iterator contextIt = m_contexts.find(info.contextGroupId); |
218 if (contextIt == m_contexts.end()) | 218 if (contextIt == m_contexts.end()) |
219 contextIt = m_contexts | 219 contextIt = m_contexts |
220 .insert(std::make_pair(info.contextGroupId, | 220 .insert(std::make_pair( |
221 wrapUnique(new ContextByIdMap()))) | 221 info.contextGroupId, |
| 222 std::unique_ptr<ContextByIdMap>(new ContextByIdMap()))) |
222 .first; | 223 .first; |
223 | 224 |
224 const auto& contextById = contextIt->second; | 225 const auto& contextById = contextIt->second; |
225 | 226 |
226 DCHECK(contextById->find(contextId) == contextById->cend()); | 227 DCHECK(contextById->find(contextId) == contextById->cend()); |
227 InspectedContext* context = new InspectedContext(this, info, contextId); | 228 InspectedContext* context = new InspectedContext(this, info, contextId); |
228 (*contextById)[contextId] = wrapUnique(context); | 229 (*contextById)[contextId].reset(context); |
229 SessionMap::iterator sessionIt = m_sessions.find(info.contextGroupId); | 230 SessionMap::iterator sessionIt = m_sessions.find(info.contextGroupId); |
230 if (sessionIt != m_sessions.end()) | 231 if (sessionIt != m_sessions.end()) |
231 sessionIt->second->runtimeAgent()->reportExecutionContextCreated(context); | 232 sessionIt->second->runtimeAgent()->reportExecutionContextCreated(context); |
232 } | 233 } |
233 | 234 |
234 void V8InspectorImpl::contextDestroyed(v8::Local<v8::Context> context) { | 235 void V8InspectorImpl::contextDestroyed(v8::Local<v8::Context> context) { |
235 int contextId = V8Debugger::contextId(context); | 236 int contextId = V8Debugger::contextId(context); |
236 int contextGroupId = V8Debugger::getGroupId(context); | 237 int contextGroupId = V8Debugger::getGroupId(context); |
237 | 238 |
238 ConsoleStorageMap::iterator storageIt = | 239 ConsoleStorageMap::iterator storageIt = |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
284 } | 285 } |
285 } | 286 } |
286 | 287 |
287 unsigned V8InspectorImpl::exceptionThrown( | 288 unsigned V8InspectorImpl::exceptionThrown( |
288 v8::Local<v8::Context> context, const StringView& message, | 289 v8::Local<v8::Context> context, const StringView& message, |
289 v8::Local<v8::Value> exception, const StringView& detailedMessage, | 290 v8::Local<v8::Value> exception, const StringView& detailedMessage, |
290 const StringView& url, unsigned lineNumber, unsigned columnNumber, | 291 const StringView& url, unsigned lineNumber, unsigned columnNumber, |
291 std::unique_ptr<V8StackTrace> stackTrace, int scriptId) { | 292 std::unique_ptr<V8StackTrace> stackTrace, int scriptId) { |
292 int contextGroupId = V8Debugger::getGroupId(context); | 293 int contextGroupId = V8Debugger::getGroupId(context); |
293 if (!contextGroupId || m_muteExceptionsMap[contextGroupId]) return 0; | 294 if (!contextGroupId || m_muteExceptionsMap[contextGroupId]) return 0; |
294 std::unique_ptr<V8StackTraceImpl> stackTraceImpl = | 295 std::unique_ptr<V8StackTraceImpl> stackTraceImpl( |
295 wrapUnique(static_cast<V8StackTraceImpl*>(stackTrace.release())); | 296 static_cast<V8StackTraceImpl*>(stackTrace.release())); |
296 unsigned exceptionId = nextExceptionId(); | 297 unsigned exceptionId = nextExceptionId(); |
297 std::unique_ptr<V8ConsoleMessage> consoleMessage = | 298 std::unique_ptr<V8ConsoleMessage> consoleMessage = |
298 V8ConsoleMessage::createForException( | 299 V8ConsoleMessage::createForException( |
299 m_client->currentTimeMS(), toString16(detailedMessage), | 300 m_client->currentTimeMS(), toString16(detailedMessage), |
300 toString16(url), lineNumber, columnNumber, std::move(stackTraceImpl), | 301 toString16(url), lineNumber, columnNumber, std::move(stackTraceImpl), |
301 scriptId, m_isolate, toString16(message), | 302 scriptId, m_isolate, toString16(message), |
302 V8Debugger::contextId(context), exception, exceptionId); | 303 V8Debugger::contextId(context), exception, exceptionId); |
303 ensureConsoleMessageStorage(contextGroupId) | 304 ensureConsoleMessageStorage(contextGroupId) |
304 ->addMessage(std::move(consoleMessage)); | 305 ->addMessage(std::move(consoleMessage)); |
305 return exceptionId; | 306 return exceptionId; |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
364 } | 365 } |
365 | 366 |
366 V8InspectorSessionImpl* V8InspectorImpl::sessionForContextGroup( | 367 V8InspectorSessionImpl* V8InspectorImpl::sessionForContextGroup( |
367 int contextGroupId) { | 368 int contextGroupId) { |
368 if (!contextGroupId) return nullptr; | 369 if (!contextGroupId) return nullptr; |
369 SessionMap::iterator iter = m_sessions.find(contextGroupId); | 370 SessionMap::iterator iter = m_sessions.find(contextGroupId); |
370 return iter == m_sessions.end() ? nullptr : iter->second; | 371 return iter == m_sessions.end() ? nullptr : iter->second; |
371 } | 372 } |
372 | 373 |
373 } // namespace v8_inspector | 374 } // namespace v8_inspector |
OLD | NEW |