diff options
Diffstat (limited to 'deps/v8/src/inspector/v8-console-message.cc')
-rw-r--r-- | deps/v8/src/inspector/v8-console-message.cc | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/deps/v8/src/inspector/v8-console-message.cc b/deps/v8/src/inspector/v8-console-message.cc index 4bb0bf904e..6d39deeb4c 100644 --- a/deps/v8/src/inspector/v8-console-message.cc +++ b/deps/v8/src/inspector/v8-console-message.cc @@ -13,6 +13,7 @@ #include "src/inspector/v8-inspector-session-impl.h" #include "src/inspector/v8-runtime-agent-impl.h" #include "src/inspector/v8-stack-trace-impl.h" +#include "src/tracing/trace-event.h" #include "include/v8-inspector.h" @@ -202,7 +203,7 @@ V8ConsoleMessage::V8ConsoleMessage(V8MessageOrigin origin, double timestamp, m_exceptionId(0), m_revokedExceptionId(0) {} -V8ConsoleMessage::~V8ConsoleMessage() {} +V8ConsoleMessage::~V8ConsoleMessage() = default; void V8ConsoleMessage::setLocation(const String16& url, unsigned lineNumber, unsigned columnNumber, @@ -477,12 +478,34 @@ V8ConsoleMessageStorage::V8ConsoleMessageStorage(V8InspectorImpl* inspector, V8ConsoleMessageStorage::~V8ConsoleMessageStorage() { clear(); } +namespace { + +void TraceV8ConsoleMessageEvent(V8MessageOrigin origin, ConsoleAPIType type) { + // Change in this function requires adjustment of Catapult/Telemetry metric + // tracing/tracing/metrics/console_error_metric.html. + // See https://crbug.com/880432 + if (origin == V8MessageOrigin::kException) { + TRACE_EVENT_INSTANT0("v8.console", "V8ConsoleMessage::Exception", + TRACE_EVENT_SCOPE_THREAD); + } else if (type == ConsoleAPIType::kError) { + TRACE_EVENT_INSTANT0("v8.console", "V8ConsoleMessage::Error", + TRACE_EVENT_SCOPE_THREAD); + } else if (type == ConsoleAPIType::kAssert) { + TRACE_EVENT_INSTANT0("v8.console", "V8ConsoleMessage::Assert", + TRACE_EVENT_SCOPE_THREAD); + } +} + +} // anonymous namespace + void V8ConsoleMessageStorage::addMessage( std::unique_ptr<V8ConsoleMessage> message) { int contextGroupId = m_contextGroupId; V8InspectorImpl* inspector = m_inspector; if (message->type() == ConsoleAPIType::kClear) clear(); + TraceV8ConsoleMessageEvent(message->origin(), message->type()); + inspector->forEachSession( contextGroupId, [&message](V8InspectorSessionImpl* session) { if (message->origin() == V8MessageOrigin::kConsole) @@ -542,6 +565,13 @@ bool V8ConsoleMessageStorage::countReset(int contextId, const String16& id) { return true; } +double V8ConsoleMessageStorage::timeLog(int contextId, const String16& id) { + std::map<String16, double>& time = m_data[contextId].m_time; + auto it = time.find(id); + if (it == time.end()) return 0.0; + return m_inspector->client()->currentTimeMS() - it->second; +} + double V8ConsoleMessageStorage::timeEnd(int contextId, const String16& id) { std::map<String16, double>& time = m_data[contextId].m_time; auto it = time.find(id); |