OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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/V8ConsoleMessage.h" | 5 #include "platform/v8_inspector/V8ConsoleMessage.h" |
6 | 6 |
7 #include "platform/v8_inspector/InspectedContext.h" | 7 #include "platform/v8_inspector/InspectedContext.h" |
8 #include "platform/v8_inspector/V8ConsoleAgentImpl.h" | 8 #include "platform/v8_inspector/V8ConsoleAgentImpl.h" |
9 #include "platform/v8_inspector/V8DebuggerImpl.h" | 9 #include "platform/v8_inspector/V8DebuggerImpl.h" |
10 #include "platform/v8_inspector/V8InspectorSessionImpl.h" | 10 #include "platform/v8_inspector/V8InspectorSessionImpl.h" |
(...skipping 316 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
327 message->m_columnNumber = stackTrace->topColumnNumber(); | 327 message->m_columnNumber = stackTrace->topColumnNumber(); |
328 } | 328 } |
329 message->m_stackTrace = std::move(stackTrace); | 329 message->m_stackTrace = std::move(stackTrace); |
330 message->m_type = type; | 330 message->m_type = type; |
331 message->m_contextId = context->contextId(); | 331 message->m_contextId = context->contextId(); |
332 for (size_t i = 0; i < arguments.size(); ++i) | 332 for (size_t i = 0; i < arguments.size(); ++i) |
333 message->m_arguments.push_back(wrapUnique(new v8::Global<v8::Value>(cont
ext->isolate(), arguments.at(i)))); | 333 message->m_arguments.push_back(wrapUnique(new v8::Global<v8::Value>(cont
ext->isolate(), arguments.at(i)))); |
334 if (arguments.size()) | 334 if (arguments.size()) |
335 message->m_message = V8ValueStringBuilder::toString(arguments[0], contex
t->isolate()); | 335 message->m_message = V8ValueStringBuilder::toString(arguments[0], contex
t->isolate()); |
336 | 336 |
337 MessageLevel level = LogMessageLevel; | 337 V8ConsoleAPIType clientType = V8ConsoleAPIType::kLog; |
338 if (type == ConsoleAPIType::kDebug || type == ConsoleAPIType::kCount || type
== ConsoleAPIType::kTimeEnd) | 338 if (type == ConsoleAPIType::kDebug || type == ConsoleAPIType::kCount || type
== ConsoleAPIType::kTimeEnd) |
339 level = DebugMessageLevel; | 339 clientType = V8ConsoleAPIType::kDebug; |
340 if (type == ConsoleAPIType::kError || type == ConsoleAPIType::kAssert) | 340 else if (type == ConsoleAPIType::kError || type == ConsoleAPIType::kAssert) |
341 level = ErrorMessageLevel; | 341 clientType = V8ConsoleAPIType::kError; |
342 if (type == ConsoleAPIType::kWarning) | 342 else if (type == ConsoleAPIType::kWarning) |
343 level = WarningMessageLevel; | 343 clientType = V8ConsoleAPIType::kWarning; |
344 if (type == ConsoleAPIType::kInfo) | 344 else if (type == ConsoleAPIType::kInfo) |
345 level = InfoMessageLevel; | 345 clientType = V8ConsoleAPIType::kInfo; |
346 context->debugger()->client()->consoleAPIMessage(context->contextGroupId(),
level, message->m_message, message->m_url, message->m_lineNumber, message->m_col
umnNumber, message->m_stackTrace.get()); | 346 else if (type == ConsoleAPIType::kClear) |
| 347 clientType = V8ConsoleAPIType::kClear; |
| 348 context->debugger()->client()->consoleAPIMessage(context->contextGroupId(),
clientType, message->m_message, message->m_url, message->m_lineNumber, message->
m_columnNumber, message->m_stackTrace.get()); |
347 | 349 |
348 return message; | 350 return message; |
349 } | 351 } |
350 | 352 |
351 // static | 353 // static |
352 std::unique_ptr<V8ConsoleMessage> V8ConsoleMessage::createForException(double ti
mestamp, const String16& messageText, const String16& url, unsigned lineNumber,
unsigned columnNumber, std::unique_ptr<V8StackTraceImpl> stackTrace, int scriptI
d, v8::Isolate* isolate, int contextId, v8::Local<v8::Value> exception, unsigned
exceptionId) | 354 std::unique_ptr<V8ConsoleMessage> V8ConsoleMessage::createForException(double ti
mestamp, const String16& messageText, const String16& url, unsigned lineNumber,
unsigned columnNumber, std::unique_ptr<V8StackTraceImpl> stackTrace, int scriptI
d, v8::Isolate* isolate, int contextId, v8::Local<v8::Value> exception, unsigned
exceptionId) |
353 { | 355 { |
354 std::unique_ptr<V8ConsoleMessage> message = wrapUnique(new V8ConsoleMessage(
V8MessageOrigin::kException, timestamp, messageText)); | 356 std::unique_ptr<V8ConsoleMessage> message = wrapUnique(new V8ConsoleMessage(
V8MessageOrigin::kException, timestamp, messageText)); |
355 message->setLocation(url, lineNumber, columnNumber, std::move(stackTrace), s
criptId); | 357 message->setLocation(url, lineNumber, columnNumber, std::move(stackTrace), s
criptId); |
356 message->m_exceptionId = exceptionId; | 358 message->m_exceptionId = exceptionId; |
(...skipping 28 matching lines...) Expand all Loading... |
385 V8ConsoleMessageStorage::V8ConsoleMessageStorage(V8DebuggerImpl* debugger, int c
ontextGroupId) | 387 V8ConsoleMessageStorage::V8ConsoleMessageStorage(V8DebuggerImpl* debugger, int c
ontextGroupId) |
386 : m_debugger(debugger) | 388 : m_debugger(debugger) |
387 , m_contextGroupId(contextGroupId) | 389 , m_contextGroupId(contextGroupId) |
388 , m_expiredCount(0) | 390 , m_expiredCount(0) |
389 { | 391 { |
390 } | 392 } |
391 | 393 |
392 V8ConsoleMessageStorage::~V8ConsoleMessageStorage() | 394 V8ConsoleMessageStorage::~V8ConsoleMessageStorage() |
393 { | 395 { |
394 clear(); | 396 clear(); |
395 notifyClear(); | |
396 } | 397 } |
397 | 398 |
398 void V8ConsoleMessageStorage::addMessage(std::unique_ptr<V8ConsoleMessage> messa
ge) | 399 void V8ConsoleMessageStorage::addMessage(std::unique_ptr<V8ConsoleMessage> messa
ge) |
399 { | 400 { |
400 if (message->type() == ConsoleAPIType::kClear) { | 401 if (message->type() == ConsoleAPIType::kClear) |
401 clear(); | 402 clear(); |
402 notifyClear(); | |
403 } | |
404 | 403 |
405 V8InspectorSessionImpl* session = m_debugger->sessionForContextGroup(m_conte
xtGroupId); | 404 V8InspectorSessionImpl* session = m_debugger->sessionForContextGroup(m_conte
xtGroupId); |
406 if (session) { | 405 if (session) { |
407 if (message->origin() == V8MessageOrigin::kConsole) | 406 if (message->origin() == V8MessageOrigin::kConsole) |
408 session->consoleAgent()->messageAdded(message.get()); | 407 session->consoleAgent()->messageAdded(message.get()); |
409 session->runtimeAgent()->messageAdded(message.get()); | 408 session->runtimeAgent()->messageAdded(message.get()); |
410 } | 409 } |
411 | 410 |
412 DCHECK(m_messages.size() <= maxConsoleMessageCount); | 411 DCHECK(m_messages.size() <= maxConsoleMessageCount); |
413 if (m_messages.size() == maxConsoleMessageCount) { | 412 if (m_messages.size() == maxConsoleMessageCount) { |
(...skipping 10 matching lines...) Expand all Loading... |
424 if (V8InspectorSessionImpl* session = m_debugger->sessionForContextGroup(m_c
ontextGroupId)) | 423 if (V8InspectorSessionImpl* session = m_debugger->sessionForContextGroup(m_c
ontextGroupId)) |
425 session->releaseObjectGroup("console"); | 424 session->releaseObjectGroup("console"); |
426 } | 425 } |
427 | 426 |
428 void V8ConsoleMessageStorage::contextDestroyed(int contextId) | 427 void V8ConsoleMessageStorage::contextDestroyed(int contextId) |
429 { | 428 { |
430 for (size_t i = 0; i < m_messages.size(); ++i) | 429 for (size_t i = 0; i < m_messages.size(); ++i) |
431 m_messages[i]->contextDestroyed(contextId); | 430 m_messages[i]->contextDestroyed(contextId); |
432 } | 431 } |
433 | 432 |
434 void V8ConsoleMessageStorage::notifyClear() | |
435 { | |
436 if (V8InspectorSessionImpl* session = m_debugger->sessionForContextGroup(m_c
ontextGroupId)) | |
437 session->client()->consoleCleared(); | |
438 } | |
439 | |
440 } // namespace blink | 433 } // namespace blink |
OLD | NEW |