summaryrefslogtreecommitdiff
path: root/deps/v8/src/inspector/v8-console.cc
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/src/inspector/v8-console.cc')
-rw-r--r--deps/v8/src/inspector/v8-console.cc90
1 files changed, 72 insertions, 18 deletions
diff --git a/deps/v8/src/inspector/v8-console.cc b/deps/v8/src/inspector/v8-console.cc
index 3340f46399..a2a13fea14 100644
--- a/deps/v8/src/inspector/v8-console.cc
+++ b/deps/v8/src/inspector/v8-console.cc
@@ -21,6 +21,7 @@
#include "src/inspector/v8-runtime-agent-impl.h"
#include "src/inspector/v8-stack-trace-impl.h"
#include "src/inspector/v8-value-utils.h"
+#include "src/tracing/trace-event.h"
namespace v8_inspector {
@@ -188,54 +189,63 @@ V8Console::V8Console(V8InspectorImpl* inspector) : m_inspector(inspector) {}
void V8Console::Debug(const v8::debug::ConsoleCallArguments& info,
const v8::debug::ConsoleContext& consoleContext) {
+ TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("v8.inspector"), "V8Console::Debug");
ConsoleHelper(info, consoleContext, m_inspector)
.reportCall(ConsoleAPIType::kDebug);
}
void V8Console::Error(const v8::debug::ConsoleCallArguments& info,
const v8::debug::ConsoleContext& consoleContext) {
+ TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("v8.inspector"), "V8Console::Error");
ConsoleHelper(info, consoleContext, m_inspector)
.reportCall(ConsoleAPIType::kError);
}
void V8Console::Info(const v8::debug::ConsoleCallArguments& info,
const v8::debug::ConsoleContext& consoleContext) {
+ TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("v8.inspector"), "V8Console::Info");
ConsoleHelper(info, consoleContext, m_inspector)
.reportCall(ConsoleAPIType::kInfo);
}
void V8Console::Log(const v8::debug::ConsoleCallArguments& info,
const v8::debug::ConsoleContext& consoleContext) {
+ TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("v8.inspector"), "V8Console::Log");
ConsoleHelper(info, consoleContext, m_inspector)
.reportCall(ConsoleAPIType::kLog);
}
void V8Console::Warn(const v8::debug::ConsoleCallArguments& info,
const v8::debug::ConsoleContext& consoleContext) {
+ TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("v8.inspector"), "V8Console::Warn");
ConsoleHelper(info, consoleContext, m_inspector)
.reportCall(ConsoleAPIType::kWarning);
}
void V8Console::Dir(const v8::debug::ConsoleCallArguments& info,
const v8::debug::ConsoleContext& consoleContext) {
+ TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("v8.inspector"), "V8Console::Dir");
ConsoleHelper(info, consoleContext, m_inspector)
.reportCall(ConsoleAPIType::kDir);
}
void V8Console::DirXml(const v8::debug::ConsoleCallArguments& info,
const v8::debug::ConsoleContext& consoleContext) {
+ TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("v8.inspector"), "V8Console::DirXml");
ConsoleHelper(info, consoleContext, m_inspector)
.reportCall(ConsoleAPIType::kDirXML);
}
void V8Console::Table(const v8::debug::ConsoleCallArguments& info,
const v8::debug::ConsoleContext& consoleContext) {
+ TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("v8.inspector"), "V8Console::Table");
ConsoleHelper(info, consoleContext, m_inspector)
.reportCall(ConsoleAPIType::kTable);
}
void V8Console::Trace(const v8::debug::ConsoleCallArguments& info,
const v8::debug::ConsoleContext& consoleContext) {
+ TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("v8.inspector"), "V8Console::Trace");
ConsoleHelper(info, consoleContext, m_inspector)
.reportCallWithDefaultArgument(ConsoleAPIType::kTrace,
String16("console.trace"));
@@ -243,6 +253,7 @@ void V8Console::Trace(const v8::debug::ConsoleCallArguments& info,
void V8Console::Group(const v8::debug::ConsoleCallArguments& info,
const v8::debug::ConsoleContext& consoleContext) {
+ TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("v8.inspector"), "V8Console::Group");
ConsoleHelper(info, consoleContext, m_inspector)
.reportCallWithDefaultArgument(ConsoleAPIType::kStartGroup,
String16("console.group"));
@@ -251,6 +262,8 @@ void V8Console::Group(const v8::debug::ConsoleCallArguments& info,
void V8Console::GroupCollapsed(
const v8::debug::ConsoleCallArguments& info,
const v8::debug::ConsoleContext& consoleContext) {
+ TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("v8.inspector"),
+ "V8Console::GroupCollapsed");
ConsoleHelper(info, consoleContext, m_inspector)
.reportCallWithDefaultArgument(ConsoleAPIType::kStartGroupCollapsed,
String16("console.groupCollapsed"));
@@ -258,6 +271,8 @@ void V8Console::GroupCollapsed(
void V8Console::GroupEnd(const v8::debug::ConsoleCallArguments& info,
const v8::debug::ConsoleContext& consoleContext) {
+ TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("v8.inspector"),
+ "V8Console::GroupEnd");
ConsoleHelper(info, consoleContext, m_inspector)
.reportCallWithDefaultArgument(ConsoleAPIType::kEndGroup,
String16("console.groupEnd"));
@@ -265,6 +280,7 @@ void V8Console::GroupEnd(const v8::debug::ConsoleCallArguments& info,
void V8Console::Clear(const v8::debug::ConsoleCallArguments& info,
const v8::debug::ConsoleContext& consoleContext) {
+ TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("v8.inspector"), "V8Console::Clear");
ConsoleHelper helper(info, consoleContext, m_inspector);
if (!helper.groupId()) return;
m_inspector->client()->consoleClear(helper.groupId());
@@ -295,6 +311,8 @@ static String16 identifierFromTitleOrStackTrace(
void V8Console::Count(const v8::debug::ConsoleCallArguments& info,
const v8::debug::ConsoleContext& consoleContext) {
+ TRACE_EVENT_BEGIN0(TRACE_DISABLED_BY_DEFAULT("v8.inspector"),
+ "V8Console::Count");
ConsoleHelper helper(info, consoleContext, m_inspector);
String16 title = helper.firstArgToString(String16("default"), false);
String16 identifier = identifierFromTitleOrStackTrace(
@@ -306,10 +324,15 @@ void V8Console::Count(const v8::debug::ConsoleCallArguments& info,
helper.reportCallWithArgument(
ConsoleAPIType::kCount,
title.isEmpty() ? countString : (title + ": " + countString));
+ TRACE_EVENT_END2(TRACE_DISABLED_BY_DEFAULT("v8.inspector"),
+ "V8Console::Count", "title",
+ TRACE_STR_COPY(title.utf8().c_str()), "count", count);
}
void V8Console::CountReset(const v8::debug::ConsoleCallArguments& info,
const v8::debug::ConsoleContext& consoleContext) {
+ TRACE_EVENT_BEGIN0(TRACE_DISABLED_BY_DEFAULT("v8.inspector"),
+ "V8Console::CountReset");
ConsoleHelper helper(info, consoleContext, m_inspector);
String16 title = helper.firstArgToString(String16("default"), false);
String16 identifier = identifierFromTitleOrStackTrace(
@@ -320,10 +343,14 @@ void V8Console::CountReset(const v8::debug::ConsoleCallArguments& info,
helper.reportCallWithArgument(ConsoleAPIType::kWarning,
"Count for '" + title + "' does not exist");
}
+ TRACE_EVENT_END1(TRACE_DISABLED_BY_DEFAULT("v8.inspector"),
+ "V8Console::CountReset", "title",
+ TRACE_STR_COPY(title.utf8().c_str()));
}
void V8Console::Assert(const v8::debug::ConsoleCallArguments& info,
const v8::debug::ConsoleContext& consoleContext) {
+ TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("v8.inspector"), "V8Console::Assert");
ConsoleHelper helper(info, consoleContext, m_inspector);
DCHECK(!helper.firstArgToBoolean(false));
@@ -338,20 +365,30 @@ void V8Console::Assert(const v8::debug::ConsoleCallArguments& info,
void V8Console::Profile(const v8::debug::ConsoleCallArguments& info,
const v8::debug::ConsoleContext& consoleContext) {
+ TRACE_EVENT_BEGIN0(TRACE_DISABLED_BY_DEFAULT("v8.inspector"),
+ "V8Console::Profile");
ConsoleHelper helper(info, consoleContext, m_inspector);
- helper.forEachSession([&helper](V8InspectorSessionImpl* session) {
- session->profilerAgent()->consoleProfile(
- helper.firstArgToString(String16()));
+ String16 title = helper.firstArgToString(String16());
+ helper.forEachSession([&title](V8InspectorSessionImpl* session) {
+ session->profilerAgent()->consoleProfile(title);
});
+ TRACE_EVENT_END1(TRACE_DISABLED_BY_DEFAULT("v8.inspector"),
+ "V8Console::Profile", "title",
+ TRACE_STR_COPY(title.utf8().c_str()));
}
void V8Console::ProfileEnd(const v8::debug::ConsoleCallArguments& info,
const v8::debug::ConsoleContext& consoleContext) {
+ TRACE_EVENT_BEGIN0(TRACE_DISABLED_BY_DEFAULT("v8.inspector"),
+ "V8Console::ProfileEnd");
ConsoleHelper helper(info, consoleContext, m_inspector);
- helper.forEachSession([&helper](V8InspectorSessionImpl* session) {
- session->profilerAgent()->consoleProfileEnd(
- helper.firstArgToString(String16()));
+ String16 title = helper.firstArgToString(String16());
+ helper.forEachSession([&title](V8InspectorSessionImpl* session) {
+ session->profilerAgent()->consoleProfileEnd(title);
});
+ TRACE_EVENT_END1(TRACE_DISABLED_BY_DEFAULT("v8.inspector"),
+ "V8Console::ProfileEnd", "title",
+ TRACE_STR_COPY(title.utf8().c_str()));
}
static void timeFunction(const v8::debug::ConsoleCallArguments& info,
@@ -408,21 +445,26 @@ static void timeEndFunction(const v8::debug::ConsoleCallArguments& info,
void V8Console::Time(const v8::debug::ConsoleCallArguments& info,
const v8::debug::ConsoleContext& consoleContext) {
+ TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("v8.inspector"), "V8Console::Time");
timeFunction(info, consoleContext, false, m_inspector);
}
void V8Console::TimeLog(const v8::debug::ConsoleCallArguments& info,
const v8::debug::ConsoleContext& consoleContext) {
+ TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("v8.inspector"), "V8Console::TimeLog");
timeEndFunction(info, consoleContext, true, m_inspector);
}
void V8Console::TimeEnd(const v8::debug::ConsoleCallArguments& info,
const v8::debug::ConsoleContext& consoleContext) {
+ TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("v8.inspector"), "V8Console::TimeEnd");
timeEndFunction(info, consoleContext, false, m_inspector);
}
void V8Console::TimeStamp(const v8::debug::ConsoleCallArguments& info,
const v8::debug::ConsoleContext& consoleContext) {
+ TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("v8.inspector"),
+ "V8Console::TimeStamp");
ConsoleHelper helper(info, consoleContext, m_inspector);
String16 title = helper.firstArgToString(String16());
m_inspector->client()->consoleTimeStamp(toStringView(title));
@@ -471,7 +513,11 @@ v8::Maybe<int64_t> V8Console::ValidateAndGetTaskId(
void V8Console::scheduleAsyncTask(
const v8::FunctionCallbackInfo<v8::Value>& info) {
- if (info.Length() != 1) {
+ if (info.Length() != 1 && info.Length() != 2) {
+ info.GetIsolate()->ThrowError("Unexpected arguments");
+ return;
+ }
+ if (info.Length() == 2 && !info[1]->IsBoolean()) {
info.GetIsolate()->ThrowError("Unexpected arguments");
return;
}
@@ -479,6 +525,8 @@ void V8Console::scheduleAsyncTask(
v8::debug::ConsoleCallArguments args(info);
ConsoleHelper helper(args, v8::debug::ConsoleContext(), m_inspector);
String16 argName = helper.firstArgToString(String16());
+ bool recurring =
+ info.Length() == 2 ? info[1].As<v8::Boolean>()->Value() : false;
int64_t id = m_taskIdCounter++;
auto it = m_asyncTaskIds.find(id);
@@ -487,11 +535,13 @@ void V8Console::scheduleAsyncTask(
return;
}
- int* taskPtr = new int();
- m_asyncTaskIds.emplace(id, taskPtr);
+ AsyncTaskInfo taskInfo;
+ taskInfo.ptr = new int();
+ taskInfo.recurring = recurring;
+ m_asyncTaskIds.emplace(id, taskInfo);
StringView taskName = StringView(argName.characters16(), argName.length());
- m_inspector->asyncTaskScheduled(taskName, taskPtr, false);
+ m_inspector->asyncTaskScheduled(taskName, taskInfo.ptr, recurring);
info.GetReturnValue().Set(v8::Number::New(info.GetIsolate(), id));
}
@@ -502,8 +552,8 @@ void V8Console::startAsyncTask(
if (maybeArgId.IsNothing()) return;
int64_t taskId = maybeArgId.FromJust();
- int* taskPtr = m_asyncTaskIds[taskId];
- m_inspector->asyncTaskStarted(taskPtr);
+ AsyncTaskInfo taskInfo = m_asyncTaskIds[taskId];
+ m_inspector->asyncTaskStarted(taskInfo.ptr);
}
void V8Console::finishAsyncTask(
@@ -512,10 +562,14 @@ void V8Console::finishAsyncTask(
if (maybeArgId.IsNothing()) return;
int64_t taskId = maybeArgId.FromJust();
- int* taskPtr = m_asyncTaskIds[taskId];
- m_inspector->asyncTaskFinished(taskPtr);
+ AsyncTaskInfo taskInfo = m_asyncTaskIds[taskId];
+ m_inspector->asyncTaskFinished(taskInfo.ptr);
+
+ if (taskInfo.recurring) {
+ return;
+ }
- delete taskPtr;
+ delete taskInfo.ptr;
m_asyncTaskIds.erase(taskId);
}
@@ -525,10 +579,10 @@ void V8Console::cancelAsyncTask(
if (maybeArgId.IsNothing()) return;
int64_t taskId = maybeArgId.FromJust();
- int* taskPtr = m_asyncTaskIds[taskId];
- m_inspector->asyncTaskCanceled(taskPtr);
+ AsyncTaskInfo taskInfo = m_asyncTaskIds[taskId];
+ m_inspector->asyncTaskCanceled(taskInfo.ptr);
- delete taskPtr;
+ delete taskInfo.ptr;
m_asyncTaskIds.erase(taskId);
}