summaryrefslogtreecommitdiff
path: root/deps/v8/src/inspector/v8-console-message.cc
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/src/inspector/v8-console-message.cc')
-rw-r--r--deps/v8/src/inspector/v8-console-message.cc32
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);