| OLD | NEW |
| 1 // Copyright 2016 the V8 project authors. All rights reserved. | 1 // Copyright 2016 the V8 project 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 "src/inspector/v8-console-message.h" | 5 #include "src/inspector/v8-console-message.h" |
| 6 | 6 |
| 7 #include "src/inspector/inspected-context.h" | 7 #include "src/inspector/inspected-context.h" |
| 8 #include "src/inspector/protocol/Protocol.h" | 8 #include "src/inspector/protocol/Protocol.h" |
| 9 #include "src/inspector/string-util.h" | 9 #include "src/inspector/string-util.h" |
| 10 #include "src/inspector/v8-console-agent-impl.h" | 10 #include "src/inspector/v8-console-agent-impl.h" |
| (...skipping 343 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 354 double timestamp, ConsoleAPIType type, | 354 double timestamp, ConsoleAPIType type, |
| 355 const std::vector<v8::Local<v8::Value>>& arguments, | 355 const std::vector<v8::Local<v8::Value>>& arguments, |
| 356 std::unique_ptr<V8StackTraceImpl> stackTrace, | 356 std::unique_ptr<V8StackTraceImpl> stackTrace, |
| 357 InspectedContext* inspectedContext) { | 357 InspectedContext* inspectedContext) { |
| 358 v8::Isolate* isolate = inspectedContext->isolate(); | 358 v8::Isolate* isolate = inspectedContext->isolate(); |
| 359 int contextId = inspectedContext->contextId(); | 359 int contextId = inspectedContext->contextId(); |
| 360 int contextGroupId = inspectedContext->contextGroupId(); | 360 int contextGroupId = inspectedContext->contextGroupId(); |
| 361 V8InspectorImpl* inspector = inspectedContext->inspector(); | 361 V8InspectorImpl* inspector = inspectedContext->inspector(); |
| 362 v8::Local<v8::Context> context = inspectedContext->context(); | 362 v8::Local<v8::Context> context = inspectedContext->context(); |
| 363 | 363 |
| 364 std::unique_ptr<V8ConsoleMessage> message = wrapUnique( | 364 std::unique_ptr<V8ConsoleMessage> message( |
| 365 new V8ConsoleMessage(V8MessageOrigin::kConsole, timestamp, String16())); | 365 new V8ConsoleMessage(V8MessageOrigin::kConsole, timestamp, String16())); |
| 366 if (stackTrace && !stackTrace->isEmpty()) { | 366 if (stackTrace && !stackTrace->isEmpty()) { |
| 367 message->m_url = toString16(stackTrace->topSourceURL()); | 367 message->m_url = toString16(stackTrace->topSourceURL()); |
| 368 message->m_lineNumber = stackTrace->topLineNumber(); | 368 message->m_lineNumber = stackTrace->topLineNumber(); |
| 369 message->m_columnNumber = stackTrace->topColumnNumber(); | 369 message->m_columnNumber = stackTrace->topColumnNumber(); |
| 370 } | 370 } |
| 371 message->m_stackTrace = std::move(stackTrace); | 371 message->m_stackTrace = std::move(stackTrace); |
| 372 message->m_type = type; | 372 message->m_type = type; |
| 373 message->m_contextId = contextId; | 373 message->m_contextId = contextId; |
| 374 for (size_t i = 0; i < arguments.size(); ++i) | 374 for (size_t i = 0; i < arguments.size(); ++i) |
| 375 message->m_arguments.push_back( | 375 message->m_arguments.push_back(std::unique_ptr<v8::Global<v8::Value>>( |
| 376 wrapUnique(new v8::Global<v8::Value>(isolate, arguments.at(i)))); | 376 new v8::Global<v8::Value>(isolate, arguments.at(i)))); |
| 377 if (arguments.size()) | 377 if (arguments.size()) |
| 378 message->m_message = V8ValueStringBuilder::toString(arguments[0], context); | 378 message->m_message = V8ValueStringBuilder::toString(arguments[0], context); |
| 379 | 379 |
| 380 V8ConsoleAPIType clientType = V8ConsoleAPIType::kLog; | 380 V8ConsoleAPIType clientType = V8ConsoleAPIType::kLog; |
| 381 if (type == ConsoleAPIType::kDebug || type == ConsoleAPIType::kCount || | 381 if (type == ConsoleAPIType::kDebug || type == ConsoleAPIType::kCount || |
| 382 type == ConsoleAPIType::kTimeEnd) | 382 type == ConsoleAPIType::kTimeEnd) |
| 383 clientType = V8ConsoleAPIType::kDebug; | 383 clientType = V8ConsoleAPIType::kDebug; |
| 384 else if (type == ConsoleAPIType::kError || type == ConsoleAPIType::kAssert) | 384 else if (type == ConsoleAPIType::kError || type == ConsoleAPIType::kAssert) |
| 385 clientType = V8ConsoleAPIType::kError; | 385 clientType = V8ConsoleAPIType::kError; |
| 386 else if (type == ConsoleAPIType::kWarning) | 386 else if (type == ConsoleAPIType::kWarning) |
| (...skipping 10 matching lines...) Expand all Loading... |
| 397 return message; | 397 return message; |
| 398 } | 398 } |
| 399 | 399 |
| 400 // static | 400 // static |
| 401 std::unique_ptr<V8ConsoleMessage> V8ConsoleMessage::createForException( | 401 std::unique_ptr<V8ConsoleMessage> V8ConsoleMessage::createForException( |
| 402 double timestamp, const String16& detailedMessage, const String16& url, | 402 double timestamp, const String16& detailedMessage, const String16& url, |
| 403 unsigned lineNumber, unsigned columnNumber, | 403 unsigned lineNumber, unsigned columnNumber, |
| 404 std::unique_ptr<V8StackTraceImpl> stackTrace, int scriptId, | 404 std::unique_ptr<V8StackTraceImpl> stackTrace, int scriptId, |
| 405 v8::Isolate* isolate, const String16& message, int contextId, | 405 v8::Isolate* isolate, const String16& message, int contextId, |
| 406 v8::Local<v8::Value> exception, unsigned exceptionId) { | 406 v8::Local<v8::Value> exception, unsigned exceptionId) { |
| 407 std::unique_ptr<V8ConsoleMessage> consoleMessage = wrapUnique( | 407 std::unique_ptr<V8ConsoleMessage> consoleMessage( |
| 408 new V8ConsoleMessage(V8MessageOrigin::kException, timestamp, message)); | 408 new V8ConsoleMessage(V8MessageOrigin::kException, timestamp, message)); |
| 409 consoleMessage->setLocation(url, lineNumber, columnNumber, | 409 consoleMessage->setLocation(url, lineNumber, columnNumber, |
| 410 std::move(stackTrace), scriptId); | 410 std::move(stackTrace), scriptId); |
| 411 consoleMessage->m_exceptionId = exceptionId; | 411 consoleMessage->m_exceptionId = exceptionId; |
| 412 consoleMessage->m_detailedMessage = detailedMessage; | 412 consoleMessage->m_detailedMessage = detailedMessage; |
| 413 if (contextId && !exception.IsEmpty()) { | 413 if (contextId && !exception.IsEmpty()) { |
| 414 consoleMessage->m_contextId = contextId; | 414 consoleMessage->m_contextId = contextId; |
| 415 consoleMessage->m_arguments.push_back( | 415 consoleMessage->m_arguments.push_back( |
| 416 wrapUnique(new v8::Global<v8::Value>(isolate, exception))); | 416 std::unique_ptr<v8::Global<v8::Value>>( |
| 417 new v8::Global<v8::Value>(isolate, exception))); |
| 417 } | 418 } |
| 418 return consoleMessage; | 419 return consoleMessage; |
| 419 } | 420 } |
| 420 | 421 |
| 421 // static | 422 // static |
| 422 std::unique_ptr<V8ConsoleMessage> V8ConsoleMessage::createForRevokedException( | 423 std::unique_ptr<V8ConsoleMessage> V8ConsoleMessage::createForRevokedException( |
| 423 double timestamp, const String16& messageText, | 424 double timestamp, const String16& messageText, |
| 424 unsigned revokedExceptionId) { | 425 unsigned revokedExceptionId) { |
| 425 std::unique_ptr<V8ConsoleMessage> message = wrapUnique(new V8ConsoleMessage( | 426 std::unique_ptr<V8ConsoleMessage> message(new V8ConsoleMessage( |
| 426 V8MessageOrigin::kRevokedException, timestamp, messageText)); | 427 V8MessageOrigin::kRevokedException, timestamp, messageText)); |
| 427 message->m_revokedExceptionId = revokedExceptionId; | 428 message->m_revokedExceptionId = revokedExceptionId; |
| 428 return message; | 429 return message; |
| 429 } | 430 } |
| 430 | 431 |
| 431 void V8ConsoleMessage::contextDestroyed(int contextId) { | 432 void V8ConsoleMessage::contextDestroyed(int contextId) { |
| 432 if (contextId != m_contextId) return; | 433 if (contextId != m_contextId) return; |
| 433 m_contextId = 0; | 434 m_contextId = 0; |
| 434 if (m_message.isEmpty()) m_message = "<message collected>"; | 435 if (m_message.isEmpty()) m_message = "<message collected>"; |
| 435 Arguments empty; | 436 Arguments empty; |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 476 m_inspector->sessionForContextGroup(m_contextGroupId)) | 477 m_inspector->sessionForContextGroup(m_contextGroupId)) |
| 477 session->releaseObjectGroup("console"); | 478 session->releaseObjectGroup("console"); |
| 478 } | 479 } |
| 479 | 480 |
| 480 void V8ConsoleMessageStorage::contextDestroyed(int contextId) { | 481 void V8ConsoleMessageStorage::contextDestroyed(int contextId) { |
| 481 for (size_t i = 0; i < m_messages.size(); ++i) | 482 for (size_t i = 0; i < m_messages.size(); ++i) |
| 482 m_messages[i]->contextDestroyed(contextId); | 483 m_messages[i]->contextDestroyed(contextId); |
| 483 } | 484 } |
| 484 | 485 |
| 485 } // namespace v8_inspector | 486 } // namespace v8_inspector |
| OLD | NEW |