Commit e821cc7a authored by Samuel Groß's avatar Samuel Groß Committed by V8 LUCI CQ

Fix name collision of v8::internal::IsolateData

The v8::internal::IsolateData class in test/inspector/isolate-data.h
collides with v8::internal::IsolateData defined in
src/execution/isolate-data.h. In some circumstances, this can lead to
compilation or runtime issues. To fix that, this CL renames the class in
test/inspector to InspectorIsolateData.

Change-Id: I4b62b2a9d141169480c5a0591c1bcb2f275f87f4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3116248Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
Commit-Queue: Samuel Groß <saelo@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76481}
parent ef84e57e
......@@ -36,7 +36,7 @@ namespace {
base::SmallVector<TaskRunner*, 2> task_runners;
class UtilsExtension : public IsolateData::SetupGlobalTask {
class UtilsExtension : public InspectorIsolateData::SetupGlobalTask {
public:
~UtilsExtension() override = default;
void Run(v8::Isolate* isolate,
......@@ -120,7 +120,8 @@ class UtilsExtension : public IsolateData::SetupGlobalTask {
ToVector(args.GetIsolate(), args[2].As<v8::String>());
int context_group_id = args[0].As<v8::Int32>()->Value();
RunSyncTask(backend_runner_,
[&context_group_id, &reason, &details](IsolateData* data) {
[&context_group_id, &reason,
&details](InspectorIsolateData* data) {
data->SchedulePauseOnNextStatement(
context_group_id,
v8_inspector::StringView(reason.data(), reason.size()),
......@@ -134,9 +135,10 @@ class UtilsExtension : public IsolateData::SetupGlobalTask {
return;
}
int context_group_id = args[0].As<v8::Int32>()->Value();
RunSyncTask(backend_runner_, [&context_group_id](IsolateData* data) {
data->CancelPauseOnNextStatement(context_group_id);
});
RunSyncTask(backend_runner_,
[&context_group_id](InspectorIsolateData* data) {
data->CancelPauseOnNextStatement(context_group_id);
});
}
static void CreateContextGroup(
......@@ -145,9 +147,10 @@ class UtilsExtension : public IsolateData::SetupGlobalTask {
return;
}
int context_group_id = 0;
RunSyncTask(backend_runner_, [&context_group_id](IsolateData* data) {
context_group_id = data->CreateContextGroup();
});
RunSyncTask(backend_runner_,
[&context_group_id](InspectorIsolateData* data) {
context_group_id = data->CreateContextGroup();
});
args.GetReturnValue().Set(
v8::Int32::New(args.GetIsolate(), context_group_id));
}
......@@ -158,9 +161,10 @@ class UtilsExtension : public IsolateData::SetupGlobalTask {
return;
}
int context_group_id = args[0].As<v8::Int32>()->Value();
RunSyncTask(backend_runner_, [&context_group_id](IsolateData* data) {
data->ResetContextGroup(context_group_id);
});
RunSyncTask(backend_runner_,
[&context_group_id](InspectorIsolateData* data) {
data->ResetContextGroup(context_group_id);
});
}
static void ConnectSession(const v8::FunctionCallbackInfo<v8::Value>& args) {
......@@ -170,8 +174,8 @@ class UtilsExtension : public IsolateData::SetupGlobalTask {
}
v8::Local<v8::Context> context = args.GetIsolate()->GetCurrentContext();
FrontendChannelImpl* channel = new FrontendChannelImpl(
IsolateData::FromContext(context)->task_runner(),
IsolateData::FromContext(context)->GetContextGroupId(context),
InspectorIsolateData::FromContext(context)->task_runner(),
InspectorIsolateData::FromContext(context)->GetContextGroupId(context),
args.GetIsolate(), args[2].As<v8::Function>());
std::vector<uint8_t> state =
......@@ -179,7 +183,7 @@ class UtilsExtension : public IsolateData::SetupGlobalTask {
int context_group_id = args[0].As<v8::Int32>()->Value();
int session_id = 0;
RunSyncTask(backend_runner_, [&context_group_id, &session_id, &channel,
&state](IsolateData* data) {
&state](InspectorIsolateData* data) {
session_id = data->ConnectSession(
context_group_id,
v8_inspector::StringView(state.data(), state.size()), channel);
......@@ -197,9 +201,10 @@ class UtilsExtension : public IsolateData::SetupGlobalTask {
}
int session_id = args[0].As<v8::Int32>()->Value();
std::vector<uint8_t> state;
RunSyncTask(backend_runner_, [&session_id, &state](IsolateData* data) {
state = data->DisconnectSession(session_id);
});
RunSyncTask(backend_runner_,
[&session_id, &state](InspectorIsolateData* data) {
state = data->DisconnectSession(session_id);
});
channels_.erase(session_id);
args.GetReturnValue().Set(ToV8String(args.GetIsolate(), state));
}
......@@ -227,7 +232,7 @@ bool StrictAccessCheck(v8::Local<v8::Context> accessing_context,
return accessing_context.IsEmpty();
}
class InspectorExtension : public IsolateData::SetupGlobalTask {
class InspectorExtension : public InspectorIsolateData::SetupGlobalTask {
public:
~InspectorExtension() override = default;
void Run(v8::Isolate* isolate,
......@@ -292,7 +297,7 @@ class InspectorExtension : public IsolateData::SetupGlobalTask {
static void FireContextCreated(
const v8::FunctionCallbackInfo<v8::Value>& args) {
v8::Local<v8::Context> context = args.GetIsolate()->GetCurrentContext();
IsolateData* data = IsolateData::FromContext(context);
InspectorIsolateData* data = InspectorIsolateData::FromContext(context);
data->FireContextCreated(context, data->GetContextGroupId(context),
v8_inspector::StringView());
}
......@@ -300,13 +305,13 @@ class InspectorExtension : public IsolateData::SetupGlobalTask {
static void FireContextDestroyed(
const v8::FunctionCallbackInfo<v8::Value>& args) {
v8::Local<v8::Context> context = args.GetIsolate()->GetCurrentContext();
IsolateData* data = IsolateData::FromContext(context);
InspectorIsolateData* data = InspectorIsolateData::FromContext(context);
data->FireContextDestroyed(context);
}
static void FreeContext(const v8::FunctionCallbackInfo<v8::Value>& args) {
v8::Local<v8::Context> context = args.GetIsolate()->GetCurrentContext();
IsolateData* data = IsolateData::FromContext(context);
InspectorIsolateData* data = InspectorIsolateData::FromContext(context);
data->FreeContext(context);
}
......@@ -316,7 +321,7 @@ class InspectorExtension : public IsolateData::SetupGlobalTask {
return;
}
v8::Local<v8::Context> context = args.GetIsolate()->GetCurrentContext();
IsolateData* data = IsolateData::FromContext(context);
InspectorIsolateData* data = InspectorIsolateData::FromContext(context);
data->AddInspectedObject(args[0].As<v8::Int32>()->Value(), args[1]);
}
......@@ -325,7 +330,7 @@ class InspectorExtension : public IsolateData::SetupGlobalTask {
if (args.Length() != 1 || !args[0]->IsInt32()) {
return;
}
IsolateData::FromContext(args.GetIsolate()->GetCurrentContext())
InspectorIsolateData::FromContext(args.GetIsolate()->GetCurrentContext())
->SetMaxAsyncTaskStacksForTest(args[0].As<v8::Int32>()->Value());
}
......@@ -334,7 +339,7 @@ class InspectorExtension : public IsolateData::SetupGlobalTask {
if (args.Length() != 0) {
return;
}
IsolateData::FromContext(args.GetIsolate()->GetCurrentContext())
InspectorIsolateData::FromContext(args.GetIsolate()->GetCurrentContext())
->DumpAsyncTaskStacksStateForTest();
}
......@@ -343,7 +348,7 @@ class InspectorExtension : public IsolateData::SetupGlobalTask {
return;
}
v8::Local<v8::Context> context = args.GetIsolate()->GetCurrentContext();
IsolateData* data = IsolateData::FromContext(context);
InspectorIsolateData* data = InspectorIsolateData::FromContext(context);
std::vector<uint16_t> reason =
ToVector(args.GetIsolate(), args[0].As<v8::String>());
v8_inspector::StringView reason_view(reason.data(), reason.size());
......@@ -380,7 +385,7 @@ class InspectorExtension : public IsolateData::SetupGlobalTask {
ToVector(args.GetIsolate(), args[2].As<v8::String>());
v8_inspector::StringView details_view(details.data(), details.size());
v8::Local<v8::Context> context = args.GetIsolate()->GetCurrentContext();
IsolateData* data = IsolateData::FromContext(context);
InspectorIsolateData* data = InspectorIsolateData::FromContext(context);
int context_group_id = data->GetContextGroupId(context);
data->SchedulePauseOnNextStatement(context_group_id, reason_view,
details_view);
......@@ -442,7 +447,7 @@ class InspectorExtension : public IsolateData::SetupGlobalTask {
}
v8::Isolate* isolate = args.GetIsolate();
v8::Local<v8::Context> context = isolate->GetCurrentContext();
IsolateData* data = IsolateData::FromContext(context);
InspectorIsolateData* data = InspectorIsolateData::FromContext(context);
std::vector<uint16_t> description =
ToVector(isolate, args[0].As<v8::String>());
v8_inspector::StringView description_view(description.data(),
......@@ -462,7 +467,7 @@ class InspectorExtension : public IsolateData::SetupGlobalTask {
return;
}
v8::Local<v8::Context> context = args.GetIsolate()->GetCurrentContext();
IsolateData* data = IsolateData::FromContext(context);
InspectorIsolateData* data = InspectorIsolateData::FromContext(context);
v8_inspector::V8StackTraceId* id =
static_cast<v8_inspector::V8StackTraceId*>(
args[0].As<v8::ArrayBuffer>()->GetBackingStore()->Data());
......@@ -475,7 +480,7 @@ class InspectorExtension : public IsolateData::SetupGlobalTask {
return;
}
v8::Local<v8::Context> context = args.GetIsolate()->GetCurrentContext();
IsolateData* data = IsolateData::FromContext(context);
InspectorIsolateData* data = InspectorIsolateData::FromContext(context);
v8_inspector::V8StackTraceId* id =
static_cast<v8_inspector::V8StackTraceId*>(
args[0].As<v8::ArrayBuffer>()->GetBackingStore()->Data());
......@@ -490,7 +495,7 @@ class InspectorExtension : public IsolateData::SetupGlobalTask {
}
v8::Isolate* isolate = args.GetIsolate();
v8::Local<v8::Context> context = isolate->GetCurrentContext();
IsolateData* data = IsolateData::FromContext(context);
InspectorIsolateData* data = InspectorIsolateData::FromContext(context);
int context_group_id = data->GetContextGroupId(context);
bool with_empty_stack = args[2].As<v8::Boolean>()->Value();
if (with_empty_stack) context->Exit();
......@@ -522,7 +527,7 @@ class InspectorExtension : public IsolateData::SetupGlobalTask {
}
v8::Isolate* isolate = args.GetIsolate();
v8::Local<v8::Context> context = isolate->GetCurrentContext();
IsolateData* data = IsolateData::FromContext(context);
InspectorIsolateData* data = InspectorIsolateData::FromContext(context);
data->SetResourceNamePrefix(v8::Local<v8::String>::Cast(args[0]));
}
};
......@@ -551,7 +556,7 @@ class Watchdog final : public base::Thread {
void FuzzInspector(const uint8_t* data, size_t size) {
base::Semaphore ready_semaphore(0);
IsolateData::SetupGlobalTasks frontend_extensions;
InspectorIsolateData::SetupGlobalTasks frontend_extensions;
frontend_extensions.emplace_back(new UtilsExtension());
TaskRunner frontend_runner(std::move(frontend_extensions),
kSuppressUncaughtExceptions, &ready_semaphore,
......@@ -560,11 +565,11 @@ void FuzzInspector(const uint8_t* data, size_t size) {
int frontend_context_group_id = 0;
RunSyncTask(&frontend_runner,
[&frontend_context_group_id](IsolateData* data) {
[&frontend_context_group_id](InspectorIsolateData* data) {
frontend_context_group_id = data->CreateContextGroup();
});
IsolateData::SetupGlobalTasks backend_extensions;
InspectorIsolateData::SetupGlobalTasks backend_extensions;
backend_extensions.emplace_back(new SetTimeoutExtension());
backend_extensions.emplace_back(new InspectorExtension());
TaskRunner backend_runner(std::move(backend_extensions),
......
......@@ -55,7 +55,7 @@ class FrontendChannelImpl : public v8_inspector::V8Inspector::Channel {
bool is_priority_task() final { return false; }
private:
void Run(IsolateData* data) override {
void Run(InspectorIsolateData* data) override {
v8::MicrotasksScope microtasks_scope(data->isolate(),
v8::MicrotasksScope::kRunMicrotasks);
v8::HandleScope handle_scope(data->isolate());
......
......@@ -43,7 +43,7 @@ namespace {
base::SmallVector<TaskRunner*, 2> task_runners;
class UtilsExtension : public IsolateData::SetupGlobalTask {
class UtilsExtension : public InspectorIsolateData::SetupGlobalTask {
public:
~UtilsExtension() override = default;
void Run(v8::Isolate* isolate,
......@@ -197,7 +197,7 @@ class UtilsExtension : public IsolateData::SetupGlobalTask {
std::string chars;
v8::Isolate* isolate = args.GetIsolate();
v8::Local<v8::Context> context = isolate->GetCurrentContext();
IsolateData* data = IsolateData::FromContext(context);
InspectorIsolateData* data = InspectorIsolateData::FromContext(context);
int context_group_id = data->GetContextGroupId(context);
if (ReadFile(isolate, args[0], &chars)) {
ExecuteStringTask(chars, context_group_id).Run(data);
......@@ -252,7 +252,8 @@ class UtilsExtension : public IsolateData::SetupGlobalTask {
ToVector(args.GetIsolate(), args[2].As<v8::String>());
int context_group_id = args[0].As<v8::Int32>()->Value();
RunSyncTask(backend_runner_,
[&context_group_id, &reason, &details](IsolateData* data) {
[&context_group_id, &reason,
&details](InspectorIsolateData* data) {
data->SchedulePauseOnNextStatement(
context_group_id,
v8_inspector::StringView(reason.data(), reason.size()),
......@@ -266,9 +267,10 @@ class UtilsExtension : public IsolateData::SetupGlobalTask {
FATAL("Internal error: cancelPauseOnNextStatement(context_group_id).");
}
int context_group_id = args[0].As<v8::Int32>()->Value();
RunSyncTask(backend_runner_, [&context_group_id](IsolateData* data) {
data->CancelPauseOnNextStatement(context_group_id);
});
RunSyncTask(backend_runner_,
[&context_group_id](InspectorIsolateData* data) {
data->CancelPauseOnNextStatement(context_group_id);
});
}
static void SetLogConsoleApiMessageCalls(
......@@ -296,7 +298,7 @@ class UtilsExtension : public IsolateData::SetupGlobalTask {
}
std::vector<uint16_t> script =
ToVector(args.GetIsolate(), args[0].As<v8::String>());
RunSyncTask(backend_runner_, [&script](IsolateData* data) {
RunSyncTask(backend_runner_, [&script](InspectorIsolateData* data) {
data->SetAdditionalConsoleApi(
v8_inspector::StringView(script.data(), script.size()));
});
......@@ -308,9 +310,10 @@ class UtilsExtension : public IsolateData::SetupGlobalTask {
FATAL("Internal error: createContextGroup().");
}
int context_group_id = 0;
RunSyncTask(backend_runner_, [&context_group_id](IsolateData* data) {
context_group_id = data->CreateContextGroup();
});
RunSyncTask(backend_runner_,
[&context_group_id](InspectorIsolateData* data) {
context_group_id = data->CreateContextGroup();
});
args.GetReturnValue().Set(
v8::Int32::New(args.GetIsolate(), context_group_id));
}
......@@ -323,7 +326,8 @@ class UtilsExtension : public IsolateData::SetupGlobalTask {
std::vector<uint16_t> name =
ToVector(args.GetIsolate(), args[1].As<v8::String>());
RunSyncTask(backend_runner_, [&context_group_id, name](IsolateData* data) {
RunSyncTask(backend_runner_, [&context_group_id,
name](InspectorIsolateData* data) {
CHECK(data->CreateContext(
context_group_id,
v8_inspector::StringView(name.data(), name.size())));
......@@ -336,9 +340,10 @@ class UtilsExtension : public IsolateData::SetupGlobalTask {
FATAL("Internal error: resetContextGroup(context_group_id).");
}
int context_group_id = args[0].As<v8::Int32>()->Value();
RunSyncTask(backend_runner_, [&context_group_id](IsolateData* data) {
data->ResetContextGroup(context_group_id);
});
RunSyncTask(backend_runner_,
[&context_group_id](InspectorIsolateData* data) {
data->ResetContextGroup(context_group_id);
});
}
static void ConnectSession(const v8::FunctionCallbackInfo<v8::Value>& args) {
......@@ -350,8 +355,8 @@ class UtilsExtension : public IsolateData::SetupGlobalTask {
}
v8::Local<v8::Context> context = args.GetIsolate()->GetCurrentContext();
FrontendChannelImpl* channel = new FrontendChannelImpl(
IsolateData::FromContext(context)->task_runner(),
IsolateData::FromContext(context)->GetContextGroupId(context),
InspectorIsolateData::FromContext(context)->task_runner(),
InspectorIsolateData::FromContext(context)->GetContextGroupId(context),
args.GetIsolate(), args[2].As<v8::Function>());
std::vector<uint8_t> state =
......@@ -359,7 +364,7 @@ class UtilsExtension : public IsolateData::SetupGlobalTask {
int context_group_id = args[0].As<v8::Int32>()->Value();
int session_id = 0;
RunSyncTask(backend_runner_, [&context_group_id, &session_id, &channel,
&state](IsolateData* data) {
&state](InspectorIsolateData* data) {
session_id = data->ConnectSession(
context_group_id,
v8_inspector::StringView(state.data(), state.size()), channel);
......@@ -377,9 +382,10 @@ class UtilsExtension : public IsolateData::SetupGlobalTask {
}
int session_id = args[0].As<v8::Int32>()->Value();
std::vector<uint8_t> state;
RunSyncTask(backend_runner_, [&session_id, &state](IsolateData* data) {
state = data->DisconnectSession(session_id);
});
RunSyncTask(backend_runner_,
[&session_id, &state](InspectorIsolateData* data) {
state = data->DisconnectSession(session_id);
});
channels_.erase(session_id);
args.GetReturnValue().Set(ToV8String(args.GetIsolate(), state));
}
......@@ -412,7 +418,7 @@ bool StrictAccessCheck(v8::Local<v8::Context> accessing_context,
return accessing_context.IsEmpty();
}
class InspectorExtension : public IsolateData::SetupGlobalTask {
class InspectorExtension : public InspectorIsolateData::SetupGlobalTask {
public:
~InspectorExtension() override = default;
void Run(v8::Isolate* isolate,
......@@ -484,7 +490,7 @@ class InspectorExtension : public IsolateData::SetupGlobalTask {
static void FireContextCreated(
const v8::FunctionCallbackInfo<v8::Value>& args) {
v8::Local<v8::Context> context = args.GetIsolate()->GetCurrentContext();
IsolateData* data = IsolateData::FromContext(context);
InspectorIsolateData* data = InspectorIsolateData::FromContext(context);
data->FireContextCreated(context, data->GetContextGroupId(context),
v8_inspector::StringView());
}
......@@ -492,13 +498,13 @@ class InspectorExtension : public IsolateData::SetupGlobalTask {
static void FireContextDestroyed(
const v8::FunctionCallbackInfo<v8::Value>& args) {
v8::Local<v8::Context> context = args.GetIsolate()->GetCurrentContext();
IsolateData* data = IsolateData::FromContext(context);
InspectorIsolateData* data = InspectorIsolateData::FromContext(context);
data->FireContextDestroyed(context);
}
static void FreeContext(const v8::FunctionCallbackInfo<v8::Value>& args) {
v8::Local<v8::Context> context = args.GetIsolate()->GetCurrentContext();
IsolateData* data = IsolateData::FromContext(context);
InspectorIsolateData* data = InspectorIsolateData::FromContext(context);
data->FreeContext(context);
}
......@@ -508,7 +514,7 @@ class InspectorExtension : public IsolateData::SetupGlobalTask {
FATAL("Internal error: addInspectedObject(session_id, object).");
}
v8::Local<v8::Context> context = args.GetIsolate()->GetCurrentContext();
IsolateData* data = IsolateData::FromContext(context);
InspectorIsolateData* data = InspectorIsolateData::FromContext(context);
data->AddInspectedObject(args[0].As<v8::Int32>()->Value(), args[1]);
}
......@@ -517,7 +523,7 @@ class InspectorExtension : public IsolateData::SetupGlobalTask {
if (args.Length() != 1 || !args[0]->IsInt32()) {
FATAL("Internal error: setMaxAsyncTaskStacks(max).");
}
IsolateData::FromContext(args.GetIsolate()->GetCurrentContext())
InspectorIsolateData::FromContext(args.GetIsolate()->GetCurrentContext())
->SetMaxAsyncTaskStacksForTest(args[0].As<v8::Int32>()->Value());
}
......@@ -526,7 +532,7 @@ class InspectorExtension : public IsolateData::SetupGlobalTask {
if (args.Length() != 0) {
FATAL("Internal error: dumpAsyncTaskStacksStateForTest().");
}
IsolateData::FromContext(args.GetIsolate()->GetCurrentContext())
InspectorIsolateData::FromContext(args.GetIsolate()->GetCurrentContext())
->DumpAsyncTaskStacksStateForTest();
}
......@@ -535,7 +541,7 @@ class InspectorExtension : public IsolateData::SetupGlobalTask {
FATAL("Internal error: breakProgram('reason', 'details').");
}
v8::Local<v8::Context> context = args.GetIsolate()->GetCurrentContext();
IsolateData* data = IsolateData::FromContext(context);
InspectorIsolateData* data = InspectorIsolateData::FromContext(context);
std::vector<uint16_t> reason =
ToVector(args.GetIsolate(), args[0].As<v8::String>());
v8_inspector::StringView reason_view(reason.data(), reason.size());
......@@ -572,7 +578,7 @@ class InspectorExtension : public IsolateData::SetupGlobalTask {
ToVector(args.GetIsolate(), args[2].As<v8::String>());
v8_inspector::StringView details_view(details.data(), details.size());
v8::Local<v8::Context> context = args.GetIsolate()->GetCurrentContext();
IsolateData* data = IsolateData::FromContext(context);
InspectorIsolateData* data = InspectorIsolateData::FromContext(context);
int context_group_id = data->GetContextGroupId(context);
data->SchedulePauseOnNextStatement(context_group_id, reason_view,
details_view);
......@@ -636,7 +642,7 @@ class InspectorExtension : public IsolateData::SetupGlobalTask {
}
v8::Isolate* isolate = args.GetIsolate();
v8::Local<v8::Context> context = isolate->GetCurrentContext();
IsolateData* data = IsolateData::FromContext(context);
InspectorIsolateData* data = InspectorIsolateData::FromContext(context);
std::vector<uint16_t> description =
ToVector(isolate, args[0].As<v8::String>());
v8_inspector::StringView description_view(description.data(),
......@@ -656,7 +662,7 @@ class InspectorExtension : public IsolateData::SetupGlobalTask {
FATAL("Internal error: externalAsyncTaskStarted(id)\n");
}
v8::Local<v8::Context> context = args.GetIsolate()->GetCurrentContext();
IsolateData* data = IsolateData::FromContext(context);
InspectorIsolateData* data = InspectorIsolateData::FromContext(context);
v8_inspector::V8StackTraceId* id =
static_cast<v8_inspector::V8StackTraceId*>(
args[0].As<v8::ArrayBuffer>()->GetBackingStore()->Data());
......@@ -669,7 +675,7 @@ class InspectorExtension : public IsolateData::SetupGlobalTask {
FATAL("Internal error: externalAsyncTaskFinished(id)\n");
}
v8::Local<v8::Context> context = args.GetIsolate()->GetCurrentContext();
IsolateData* data = IsolateData::FromContext(context);
InspectorIsolateData* data = InspectorIsolateData::FromContext(context);
v8_inspector::V8StackTraceId* id =
static_cast<v8_inspector::V8StackTraceId*>(
args[0].As<v8::ArrayBuffer>()->GetBackingStore()->Data());
......@@ -686,7 +692,7 @@ class InspectorExtension : public IsolateData::SetupGlobalTask {
}
v8::Isolate* isolate = args.GetIsolate();
v8::Local<v8::Context> context = isolate->GetCurrentContext();
IsolateData* data = IsolateData::FromContext(context);
InspectorIsolateData* data = InspectorIsolateData::FromContext(context);
int context_group_id = data->GetContextGroupId(context);
bool with_empty_stack = args[2].As<v8::Boolean>()->Value();
if (with_empty_stack) context->Exit();
......@@ -717,7 +723,7 @@ class InspectorExtension : public IsolateData::SetupGlobalTask {
}
v8::Isolate* isolate = args.GetIsolate();
v8::Local<v8::Context> context = isolate->GetCurrentContext();
IsolateData* data = IsolateData::FromContext(context);
InspectorIsolateData* data = InspectorIsolateData::FromContext(context);
data->SetResourceNamePrefix(v8::Local<v8::String>::Cast(args[0]));
}
......@@ -731,7 +737,7 @@ class InspectorExtension : public IsolateData::SetupGlobalTask {
}
v8::Isolate* isolate = args.GetIsolate();
v8::Local<v8::Context> context = isolate->GetCurrentContext();
IsolateData* data = IsolateData::FromContext(context);
InspectorIsolateData* data = InspectorIsolateData::FromContext(context);
auto error = v8::Exception::Error(args[0].As<v8::String>());
CHECK(data->AssociateExceptionData(error, args[1].As<v8::String>(),
......@@ -764,7 +770,7 @@ int InspectorTestMain(int argc, char* argv[]) {
}
{
IsolateData::SetupGlobalTasks frontend_extensions;
InspectorIsolateData::SetupGlobalTasks frontend_extensions;
frontend_extensions.emplace_back(new UtilsExtension());
TaskRunner frontend_runner(std::move(frontend_extensions),
kFailOnUncaughtExceptions, &ready_semaphore,
......@@ -774,11 +780,11 @@ int InspectorTestMain(int argc, char* argv[]) {
int frontend_context_group_id = 0;
RunSyncTask(&frontend_runner,
[&frontend_context_group_id](IsolateData* data) {
[&frontend_context_group_id](InspectorIsolateData* data) {
frontend_context_group_id = data->CreateContextGroup();
});
IsolateData::SetupGlobalTasks backend_extensions;
InspectorIsolateData::SetupGlobalTasks backend_extensions;
backend_extensions.emplace_back(new SetTimeoutExtension());
backend_extensions.emplace_back(new InspectorExtension());
TaskRunner backend_runner(
......
......@@ -42,10 +42,10 @@ class Inspectable : public v8_inspector::V8InspectorSession::Inspectable {
} // namespace
IsolateData::IsolateData(TaskRunner* task_runner,
IsolateData::SetupGlobalTasks setup_global_tasks,
v8::StartupData* startup_data,
WithInspector with_inspector)
InspectorIsolateData::InspectorIsolateData(
TaskRunner* task_runner,
InspectorIsolateData::SetupGlobalTasks setup_global_tasks,
v8::StartupData* startup_data, WithInspector with_inspector)
: task_runner_(task_runner),
setup_global_tasks_(std::move(setup_global_tasks)) {
v8::Isolate::CreateParams params;
......@@ -57,8 +57,9 @@ IsolateData::IsolateData(TaskRunner* task_runner,
isolate_.reset(v8::Isolate::New(params));
isolate_->SetMicrotasksPolicy(v8::MicrotasksPolicy::kScoped);
if (with_inspector) {
isolate_->AddMessageListener(&IsolateData::MessageHandler);
isolate_->SetPromiseRejectCallback(&IsolateData::PromiseRejectHandler);
isolate_->AddMessageListener(&InspectorIsolateData::MessageHandler);
isolate_->SetPromiseRejectCallback(
&InspectorIsolateData::PromiseRejectHandler);
inspector_ = v8_inspector::V8Inspector::create(isolate_.get(), this);
}
v8::HandleScope handle_scope(isolate_.get());
......@@ -69,12 +70,13 @@ IsolateData::IsolateData(TaskRunner* task_runner,
v8::String::NewFromUtf8Literal(isolate_.get(), "notInspectable")));
}
IsolateData* IsolateData::FromContext(v8::Local<v8::Context> context) {
return static_cast<IsolateData*>(
InspectorIsolateData* InspectorIsolateData::FromContext(
v8::Local<v8::Context> context) {
return static_cast<InspectorIsolateData*>(
context->GetAlignedPointerFromEmbedderData(kIsolateDataIndex));
}
int IsolateData::CreateContextGroup() {
int InspectorIsolateData::CreateContextGroup() {
int context_group_id = ++last_context_group_id_;
if (!CreateContext(context_group_id, v8_inspector::StringView())) {
DCHECK(isolate_->IsExecutionTerminating());
......@@ -83,8 +85,8 @@ int IsolateData::CreateContextGroup() {
return context_group_id;
}
bool IsolateData::CreateContext(int context_group_id,
v8_inspector::StringView name) {
bool InspectorIsolateData::CreateContext(int context_group_id,
v8_inspector::StringView name) {
v8::HandleScope handle_scope(isolate_.get());
v8::Local<v8::ObjectTemplate> global_template =
v8::ObjectTemplate::New(isolate_.get());
......@@ -104,29 +106,32 @@ bool IsolateData::CreateContext(int context_group_id,
return true;
}
v8::Local<v8::Context> IsolateData::GetDefaultContext(int context_group_id) {
v8::Local<v8::Context> InspectorIsolateData::GetDefaultContext(
int context_group_id) {
return contexts_[context_group_id].begin()->Get(isolate_.get());
}
void IsolateData::ResetContextGroup(int context_group_id) {
void InspectorIsolateData::ResetContextGroup(int context_group_id) {
v8::SealHandleScope seal_handle_scope(isolate());
inspector_->resetContextGroup(context_group_id);
}
int IsolateData::GetContextGroupId(v8::Local<v8::Context> context) {
int InspectorIsolateData::GetContextGroupId(v8::Local<v8::Context> context) {
return static_cast<int>(
reinterpret_cast<intptr_t>(
context->GetAlignedPointerFromEmbedderData(kContextGroupIdIndex)) /
2);
}
void IsolateData::RegisterModule(v8::Local<v8::Context> context,
std::vector<uint16_t> name,
v8::ScriptCompiler::Source* source) {
void InspectorIsolateData::RegisterModule(v8::Local<v8::Context> context,
std::vector<uint16_t> name,
v8::ScriptCompiler::Source* source) {
v8::Local<v8::Module> module;
if (!v8::ScriptCompiler::CompileModule(isolate(), source).ToLocal(&module))
return;
if (!module->InstantiateModule(context, &IsolateData::ModuleResolveCallback)
if (!module
->InstantiateModule(context,
&InspectorIsolateData::ModuleResolveCallback)
.FromMaybe(false)) {
return;
}
......@@ -136,12 +141,12 @@ void IsolateData::RegisterModule(v8::Local<v8::Context> context,
}
// static
v8::MaybeLocal<v8::Module> IsolateData::ModuleResolveCallback(
v8::MaybeLocal<v8::Module> InspectorIsolateData::ModuleResolveCallback(
v8::Local<v8::Context> context, v8::Local<v8::String> specifier,
v8::Local<v8::FixedArray> import_assertions,
v8::Local<v8::Module> referrer) {
// TODO(v8:11189) Consider JSON modules support in the InspectorClient
IsolateData* data = IsolateData::FromContext(context);
InspectorIsolateData* data = InspectorIsolateData::FromContext(context);
std::string str = *v8::String::Utf8Value(data->isolate(), specifier);
v8::MaybeLocal<v8::Module> maybe_module =
data->modules_[ToVector(data->isolate(), specifier)].Get(data->isolate());
......@@ -153,9 +158,9 @@ v8::MaybeLocal<v8::Module> IsolateData::ModuleResolveCallback(
return maybe_module;
}
int IsolateData::ConnectSession(int context_group_id,
const v8_inspector::StringView& state,
v8_inspector::V8Inspector::Channel* channel) {
int InspectorIsolateData::ConnectSession(
int context_group_id, const v8_inspector::StringView& state,
v8_inspector::V8Inspector::Channel* channel) {
v8::SealHandleScope seal_handle_scope(isolate());
int session_id = ++last_session_id_;
sessions_[session_id] = inspector_->connect(context_group_id, channel, state);
......@@ -163,7 +168,7 @@ int IsolateData::ConnectSession(int context_group_id,
return session_id;
}
std::vector<uint8_t> IsolateData::DisconnectSession(int session_id) {
std::vector<uint8_t> InspectorIsolateData::DisconnectSession(int session_id) {
v8::SealHandleScope seal_handle_scope(isolate());
auto it = sessions_.find(session_id);
CHECK(it != sessions_.end());
......@@ -173,16 +178,16 @@ std::vector<uint8_t> IsolateData::DisconnectSession(int session_id) {
return result;
}
void IsolateData::SendMessage(int session_id,
const v8_inspector::StringView& message) {
void InspectorIsolateData::SendMessage(
int session_id, const v8_inspector::StringView& message) {
v8::SealHandleScope seal_handle_scope(isolate());
auto it = sessions_.find(session_id);
if (it != sessions_.end()) it->second->dispatchProtocolMessage(message);
}
void IsolateData::BreakProgram(int context_group_id,
const v8_inspector::StringView& reason,
const v8_inspector::StringView& details) {
void InspectorIsolateData::BreakProgram(
int context_group_id, const v8_inspector::StringView& reason,
const v8_inspector::StringView& details) {
v8::SealHandleScope seal_handle_scope(isolate());
for (int session_id : GetSessionIds(context_group_id)) {
auto it = sessions_.find(session_id);
......@@ -190,7 +195,7 @@ void IsolateData::BreakProgram(int context_group_id,
}
}
void IsolateData::SchedulePauseOnNextStatement(
void InspectorIsolateData::SchedulePauseOnNextStatement(
int context_group_id, const v8_inspector::StringView& reason,
const v8_inspector::StringView& details) {
v8::SealHandleScope seal_handle_scope(isolate());
......@@ -201,7 +206,7 @@ void IsolateData::SchedulePauseOnNextStatement(
}
}
void IsolateData::CancelPauseOnNextStatement(int context_group_id) {
void InspectorIsolateData::CancelPauseOnNextStatement(int context_group_id) {
v8::SealHandleScope seal_handle_scope(isolate());
for (int session_id : GetSessionIds(context_group_id)) {
auto it = sessions_.find(session_id);
......@@ -209,42 +214,42 @@ void IsolateData::CancelPauseOnNextStatement(int context_group_id) {
}
}
void IsolateData::AsyncTaskScheduled(const v8_inspector::StringView& name,
void* task, bool recurring) {
void InspectorIsolateData::AsyncTaskScheduled(
const v8_inspector::StringView& name, void* task, bool recurring) {
v8::SealHandleScope seal_handle_scope(isolate());
inspector_->asyncTaskScheduled(name, task, recurring);
}
void IsolateData::AsyncTaskStarted(void* task) {
void InspectorIsolateData::AsyncTaskStarted(void* task) {
v8::SealHandleScope seal_handle_scope(isolate());
inspector_->asyncTaskStarted(task);
}
void IsolateData::AsyncTaskFinished(void* task) {
void InspectorIsolateData::AsyncTaskFinished(void* task) {
v8::SealHandleScope seal_handle_scope(isolate());
inspector_->asyncTaskFinished(task);
}
v8_inspector::V8StackTraceId IsolateData::StoreCurrentStackTrace(
v8_inspector::V8StackTraceId InspectorIsolateData::StoreCurrentStackTrace(
const v8_inspector::StringView& description) {
v8::SealHandleScope seal_handle_scope(isolate());
return inspector_->storeCurrentStackTrace(description);
}
void IsolateData::ExternalAsyncTaskStarted(
void InspectorIsolateData::ExternalAsyncTaskStarted(
const v8_inspector::V8StackTraceId& parent) {
v8::SealHandleScope seal_handle_scope(isolate());
inspector_->externalAsyncTaskStarted(parent);
}
void IsolateData::ExternalAsyncTaskFinished(
void InspectorIsolateData::ExternalAsyncTaskFinished(
const v8_inspector::V8StackTraceId& parent) {
v8::SealHandleScope seal_handle_scope(isolate());
inspector_->externalAsyncTaskFinished(parent);
}
void IsolateData::AddInspectedObject(int session_id,
v8::Local<v8::Value> object) {
void InspectorIsolateData::AddInspectedObject(int session_id,
v8::Local<v8::Value> object) {
v8::SealHandleScope seal_handle_scope(isolate());
auto it = sessions_.find(session_id);
if (it == sessions_.end()) return;
......@@ -253,24 +258,24 @@ void IsolateData::AddInspectedObject(int session_id,
it->second->addInspectedObject(std::move(inspectable));
}
void IsolateData::SetMaxAsyncTaskStacksForTest(int limit) {
void InspectorIsolateData::SetMaxAsyncTaskStacksForTest(int limit) {
v8::SealHandleScope seal_handle_scope(isolate());
v8_inspector::SetMaxAsyncTaskStacksForTest(inspector_.get(), limit);
}
void IsolateData::DumpAsyncTaskStacksStateForTest() {
void InspectorIsolateData::DumpAsyncTaskStacksStateForTest() {
v8::SealHandleScope seal_handle_scope(isolate());
v8_inspector::DumpAsyncTaskStacksStateForTest(inspector_.get());
}
// static
int IsolateData::HandleMessage(v8::Local<v8::Message> message,
v8::Local<v8::Value> exception) {
int InspectorIsolateData::HandleMessage(v8::Local<v8::Message> message,
v8::Local<v8::Value> exception) {
v8::Isolate* isolate = message->GetIsolate();
v8::Local<v8::Context> context = isolate->GetEnteredOrMicrotaskContext();
if (context.IsEmpty()) return 0;
v8_inspector::V8Inspector* inspector =
IsolateData::FromContext(context)->inspector_.get();
InspectorIsolateData::FromContext(context)->inspector_.get();
v8::Local<v8::StackTrace> stack = message->GetStackTrace();
int script_id = message->GetScriptOrigin().ScriptId();
......@@ -301,13 +306,13 @@ int IsolateData::HandleMessage(v8::Local<v8::Message> message,
}
// static
void IsolateData::MessageHandler(v8::Local<v8::Message> message,
v8::Local<v8::Value> exception) {
void InspectorIsolateData::MessageHandler(v8::Local<v8::Message> message,
v8::Local<v8::Value> exception) {
HandleMessage(message, exception);
}
// static
void IsolateData::PromiseRejectHandler(v8::PromiseRejectMessage data) {
void InspectorIsolateData::PromiseRejectHandler(v8::PromiseRejectMessage data) {
v8::Isolate* isolate = data.GetPromise()->GetIsolate();
v8::Local<v8::Context> context = isolate->GetEnteredOrMicrotaskContext();
if (context.IsEmpty()) return;
......@@ -320,7 +325,7 @@ void IsolateData::PromiseRejectHandler(v8::PromiseRejectMessage data) {
if (!promise->GetPrivate(context, id_private).ToLocal(&id)) return;
if (!id->IsInt32()) return;
v8_inspector::V8Inspector* inspector =
IsolateData::FromContext(context)->inspector_.get();
InspectorIsolateData::FromContext(context)->inspector_.get();
v8::SealHandleScope seal_handle_scope(isolate);
const char* reason_str = "Handler added to rejected promise";
inspector->exceptionRevoked(
......@@ -341,28 +346,29 @@ void IsolateData::PromiseRejectHandler(v8::PromiseRejectMessage data) {
}
}
void IsolateData::FireContextCreated(v8::Local<v8::Context> context,
int context_group_id,
v8_inspector::StringView name) {
void InspectorIsolateData::FireContextCreated(v8::Local<v8::Context> context,
int context_group_id,
v8_inspector::StringView name) {
v8_inspector::V8ContextInfo info(context, context_group_id, name);
info.hasMemoryOnConsole = true;
v8::SealHandleScope seal_handle_scope(isolate());
inspector_->contextCreated(info);
}
void IsolateData::FireContextDestroyed(v8::Local<v8::Context> context) {
void InspectorIsolateData::FireContextDestroyed(
v8::Local<v8::Context> context) {
v8::SealHandleScope seal_handle_scope(isolate());
inspector_->contextDestroyed(context);
}
void IsolateData::FreeContext(v8::Local<v8::Context> context) {
void InspectorIsolateData::FreeContext(v8::Local<v8::Context> context) {
int context_group_id = GetContextGroupId(context);
auto it = contexts_.find(context_group_id);
if (it == contexts_.end()) return;
contexts_.erase(it);
}
std::vector<int> IsolateData::GetSessionIds(int context_group_id) {
std::vector<int> InspectorIsolateData::GetSessionIds(int context_group_id) {
std::vector<int> result;
for (auto& it : sessions_) {
if (context_group_by_session_[it.second.get()] == context_group_id)
......@@ -371,7 +377,8 @@ std::vector<int> IsolateData::GetSessionIds(int context_group_id) {
return result;
}
bool IsolateData::isInspectableHeapObject(v8::Local<v8::Object> object) {
bool InspectorIsolateData::isInspectableHeapObject(
v8::Local<v8::Object> object) {
v8::Local<v8::Context> context = isolate()->GetCurrentContext();
v8::MicrotasksScope microtasks_scope(
isolate(), v8::MicrotasksScope::kDoNotRunMicrotasks);
......@@ -379,55 +386,56 @@ bool IsolateData::isInspectableHeapObject(v8::Local<v8::Object> object) {
.FromMaybe(false);
}
v8::Local<v8::Context> IsolateData::ensureDefaultContextInGroup(
v8::Local<v8::Context> InspectorIsolateData::ensureDefaultContextInGroup(
int context_group_id) {
return GetDefaultContext(context_group_id);
}
void IsolateData::SetCurrentTimeMS(double time) {
void InspectorIsolateData::SetCurrentTimeMS(double time) {
current_time_ = time;
current_time_set_ = true;
}
double IsolateData::currentTimeMS() {
double InspectorIsolateData::currentTimeMS() {
if (current_time_set_) return current_time_;
return V8::GetCurrentPlatform()->CurrentClockTimeMillis();
}
void IsolateData::SetMemoryInfo(v8::Local<v8::Value> memory_info) {
void InspectorIsolateData::SetMemoryInfo(v8::Local<v8::Value> memory_info) {
memory_info_.Reset(isolate_.get(), memory_info);
}
void IsolateData::SetLogConsoleApiMessageCalls(bool log) {
void InspectorIsolateData::SetLogConsoleApiMessageCalls(bool log) {
log_console_api_message_calls_ = log;
}
void IsolateData::SetLogMaxAsyncCallStackDepthChanged(bool log) {
void InspectorIsolateData::SetLogMaxAsyncCallStackDepthChanged(bool log) {
log_max_async_call_stack_depth_changed_ = log;
}
void IsolateData::SetAdditionalConsoleApi(v8_inspector::StringView api_script) {
void InspectorIsolateData::SetAdditionalConsoleApi(
v8_inspector::StringView api_script) {
v8::HandleScope handle_scope(isolate());
additional_console_api_.Reset(isolate(), ToV8String(isolate(), api_script));
}
v8::MaybeLocal<v8::Value> IsolateData::memoryInfo(v8::Isolate* isolate,
v8::Local<v8::Context>) {
v8::MaybeLocal<v8::Value> InspectorIsolateData::memoryInfo(
v8::Isolate* isolate, v8::Local<v8::Context>) {
if (memory_info_.IsEmpty()) return v8::MaybeLocal<v8::Value>();
return memory_info_.Get(isolate);
}
void IsolateData::runMessageLoopOnPause(int) {
void InspectorIsolateData::runMessageLoopOnPause(int) {
v8::SealHandleScope seal_handle_scope(isolate());
task_runner_->RunMessageLoop(true);
}
void IsolateData::quitMessageLoopOnPause() {
void InspectorIsolateData::quitMessageLoopOnPause() {
v8::SealHandleScope seal_handle_scope(isolate());
task_runner_->QuitMessageLoop();
}
void IsolateData::installAdditionalCommandLineAPI(
void InspectorIsolateData::installAdditionalCommandLineAPI(
v8::Local<v8::Context> context, v8::Local<v8::Object> object) {
if (additional_console_api_.IsEmpty()) return;
CHECK(context->GetIsolate() == isolate());
......@@ -442,12 +450,11 @@ void IsolateData::installAdditionalCommandLineAPI(
CHECK(!script.ToLocalChecked()->Run(context).IsEmpty());
}
void IsolateData::consoleAPIMessage(int contextGroupId,
v8::Isolate::MessageErrorLevel level,
const v8_inspector::StringView& message,
const v8_inspector::StringView& url,
unsigned lineNumber, unsigned columnNumber,
v8_inspector::V8StackTrace* stack) {
void InspectorIsolateData::consoleAPIMessage(
int contextGroupId, v8::Isolate::MessageErrorLevel level,
const v8_inspector::StringView& message,
const v8_inspector::StringView& url, unsigned lineNumber,
unsigned columnNumber, v8_inspector::V8StackTrace* stack) {
if (!log_console_api_message_calls_) return;
Print(isolate_.get(), message);
fprintf(stdout, " (");
......@@ -457,18 +464,18 @@ void IsolateData::consoleAPIMessage(int contextGroupId,
fprintf(stdout, "\n");
}
void IsolateData::maxAsyncCallStackDepthChanged(int depth) {
void InspectorIsolateData::maxAsyncCallStackDepthChanged(int depth) {
if (!log_max_async_call_stack_depth_changed_) return;
fprintf(stdout, "maxAsyncCallStackDepthChanged: %d\n", depth);
}
void IsolateData::SetResourceNamePrefix(v8::Local<v8::String> prefix) {
void InspectorIsolateData::SetResourceNamePrefix(v8::Local<v8::String> prefix) {
resource_name_prefix_.Reset(isolate(), prefix);
}
bool IsolateData::AssociateExceptionData(v8::Local<v8::Value> exception,
v8::Local<v8::Name> key,
v8::Local<v8::Value> value) {
bool InspectorIsolateData::AssociateExceptionData(
v8::Local<v8::Value> exception, v8::Local<v8::Name> key,
v8::Local<v8::Value> value) {
return inspector_->associateExceptionData(
this->isolate()->GetCurrentContext(), exception, key, value);
}
......@@ -488,7 +495,8 @@ class StringBufferImpl : public v8_inspector::StringBuffer {
};
} // anonymous namespace
std::unique_ptr<v8_inspector::StringBuffer> IsolateData::resourceNameToUrl(
std::unique_ptr<v8_inspector::StringBuffer>
InspectorIsolateData::resourceNameToUrl(
const v8_inspector::StringView& resourceName) {
if (resource_name_prefix_.IsEmpty()) return nullptr;
v8::HandleScope handle_scope(isolate());
......@@ -498,7 +506,7 @@ std::unique_ptr<v8_inspector::StringBuffer> IsolateData::resourceNameToUrl(
return std::make_unique<StringBufferImpl>(isolate(), url);
}
int64_t IsolateData::generateUniqueId() {
int64_t InspectorIsolateData::generateUniqueId() {
static int64_t last_unique_id = 0L;
// Keep it not too random for tests.
return ++last_unique_id;
......
......@@ -30,7 +30,7 @@ class TaskRunner;
enum WithInspector : bool { kWithInspector = true, kNoInspector = false };
class IsolateData : public v8_inspector::V8InspectorClient {
class InspectorIsolateData : public v8_inspector::V8InspectorClient {
public:
class SetupGlobalTask {
public:
......@@ -40,14 +40,16 @@ class IsolateData : public v8_inspector::V8InspectorClient {
};
using SetupGlobalTasks = std::vector<std::unique_ptr<SetupGlobalTask>>;
IsolateData(const IsolateData&) = delete;
IsolateData& operator=(const IsolateData&) = delete;
IsolateData(TaskRunner* task_runner, SetupGlobalTasks setup_global_tasks,
v8::StartupData* startup_data, WithInspector with_inspector);
static IsolateData* FromContext(v8::Local<v8::Context> context);
InspectorIsolateData(const InspectorIsolateData&) = delete;
InspectorIsolateData& operator=(const InspectorIsolateData&) = delete;
InspectorIsolateData(TaskRunner* task_runner,
SetupGlobalTasks setup_global_tasks,
v8::StartupData* startup_data,
WithInspector with_inspector);
static InspectorIsolateData* FromContext(v8::Local<v8::Context> context);
~IsolateData() override {
// Enter the isolate before destructing this IsolateData, so that
~InspectorIsolateData() override {
// Enter the isolate before destructing this InspectorIsolateData, so that
// destructors that run before the Isolate's destructor still see it as
// entered.
isolate()->Enter();
......@@ -149,7 +151,7 @@ class IsolateData : public v8_inspector::V8InspectorClient {
// disposed in the right order, relative to other member variables.
struct IsolateDeleter {
void operator()(v8::Isolate* isolate) const {
// Exit the isolate after it was entered by ~IsolateData.
// Exit the isolate after it was entered by ~InspectorIsolateData.
isolate->Exit();
isolate->Dispose();
}
......
......@@ -38,11 +38,10 @@ void ReportUncaughtException(v8::Isolate* isolate,
} // namespace
TaskRunner::TaskRunner(IsolateData::SetupGlobalTasks setup_global_tasks,
CatchExceptions catch_exceptions,
v8::base::Semaphore* ready_semaphore,
v8::StartupData* startup_data,
WithInspector with_inspector)
TaskRunner::TaskRunner(
InspectorIsolateData::SetupGlobalTasks setup_global_tasks,
CatchExceptions catch_exceptions, v8::base::Semaphore* ready_semaphore,
v8::StartupData* startup_data, WithInspector with_inspector)
: Thread(Options("Task Runner")),
setup_global_tasks_(std::move(setup_global_tasks)),
startup_data_(startup_data),
......@@ -59,8 +58,8 @@ TaskRunner::TaskRunner(IsolateData::SetupGlobalTasks setup_global_tasks,
TaskRunner::~TaskRunner() {}
void TaskRunner::Run() {
data_.reset(new IsolateData(this, std::move(setup_global_tasks_),
startup_data_, with_inspector_));
data_.reset(new InspectorIsolateData(this, std::move(setup_global_tasks_),
startup_data_, with_inspector_));
if (ready_semaphore_) ready_semaphore_->Signal();
RunMessageLoop(false);
}
......
......@@ -34,17 +34,17 @@ class TaskRunner : public v8::base::Thread {
public:
virtual ~Task() = default;
virtual bool is_priority_task() = 0;
virtual void Run(IsolateData* data) = 0;
virtual void Run(InspectorIsolateData* data) = 0;
};
TaskRunner(IsolateData::SetupGlobalTasks setup_global_tasks,
TaskRunner(InspectorIsolateData::SetupGlobalTasks setup_global_tasks,
CatchExceptions catch_exceptions,
v8::base::Semaphore* ready_semaphore,
v8::StartupData* startup_data, WithInspector with_inspector);
~TaskRunner() override;
TaskRunner(const TaskRunner&) = delete;
TaskRunner& operator=(const TaskRunner&) = delete;
IsolateData* data() const { return data_.get(); }
InspectorIsolateData* data() const { return data_.get(); }
// Thread implementation.
void Run() override;
......@@ -61,12 +61,12 @@ class TaskRunner : public v8::base::Thread {
std::unique_ptr<Task> GetNext(bool only_protocol);
v8::Isolate* isolate() const { return data_->isolate(); }
IsolateData::SetupGlobalTasks setup_global_tasks_;
InspectorIsolateData::SetupGlobalTasks setup_global_tasks_;
v8::StartupData* startup_data_;
WithInspector with_inspector_;
CatchExceptions catch_exceptions_;
v8::base::Semaphore* ready_semaphore_;
std::unique_ptr<IsolateData> data_;
std::unique_ptr<InspectorIsolateData> data_;
// deferred_queue_ combined with queue_ (in this order) have all tasks in the
// correct order. Sometimes we skip non-protocol tasks by moving them from
......
......@@ -14,7 +14,7 @@
namespace v8 {
namespace internal {
void ExecuteStringTask::Run(IsolateData* data) {
void ExecuteStringTask::Run(InspectorIsolateData* data) {
v8::MicrotasksScope microtasks_scope(data->isolate(),
v8::MicrotasksScope::kRunMicrotasks);
v8::HandleScope handle_scope(data->isolate());
......
......@@ -30,7 +30,7 @@ void RunSyncTask(TaskRunner* task_runner, T callback) {
bool is_priority_task() final { return true; }
private:
void Run(IsolateData* data) override {
void Run(InspectorIsolateData* data) override {
callback_(data);
if (ready_semaphore_) ready_semaphore_->Signal();
}
......@@ -51,7 +51,7 @@ class SendMessageToBackendTask : public TaskRunner::Task {
bool is_priority_task() final { return true; }
private:
void Run(IsolateData* data) override {
void Run(InspectorIsolateData* data) override {
v8_inspector::StringView message_view(message_.data(), message_.size());
data->SendMessage(session_id_, message_view);
}
......@@ -71,7 +71,7 @@ inline void RunAsyncTask(TaskRunner* task_runner,
AsyncTask(const AsyncTask&) = delete;
AsyncTask& operator=(const AsyncTask&) = delete;
bool is_priority_task() override { return inner_->is_priority_task(); }
void Run(IsolateData* data) override {
void Run(InspectorIsolateData* data) override {
data->AsyncTaskStarted(inner_.get());
inner_->Run(data);
data->AsyncTaskFinished(inner_.get());
......@@ -107,7 +107,7 @@ class ExecuteStringTask : public TaskRunner::Task {
ExecuteStringTask(const ExecuteStringTask&) = delete;
ExecuteStringTask& operator=(const ExecuteStringTask&) = delete;
bool is_priority_task() override { return false; }
void Run(IsolateData* data) override;
void Run(InspectorIsolateData* data) override;
private:
std::vector<uint16_t> expression_;
......@@ -128,7 +128,7 @@ class SetTimeoutTask : public TaskRunner::Task {
bool is_priority_task() final { return false; }
private:
void Run(IsolateData* data) override {
void Run(InspectorIsolateData* data) override {
v8::MicrotasksScope microtasks_scope(data->isolate(),
v8::MicrotasksScope::kRunMicrotasks);
v8::HandleScope handle_scope(data->isolate());
......@@ -144,7 +144,7 @@ class SetTimeoutTask : public TaskRunner::Task {
int context_group_id_;
};
class SetTimeoutExtension : public IsolateData::SetupGlobalTask {
class SetTimeoutExtension : public InspectorIsolateData::SetupGlobalTask {
public:
void Run(v8::Isolate* isolate,
v8::Local<v8::ObjectTemplate> global) override {
......@@ -162,7 +162,7 @@ class SetTimeoutExtension : public IsolateData::SetupGlobalTask {
}
v8::Isolate* isolate = args.GetIsolate();
v8::Local<v8::Context> context = isolate->GetCurrentContext();
IsolateData* data = IsolateData::FromContext(context);
InspectorIsolateData* data = InspectorIsolateData::FromContext(context);
int context_group_id = data->GetContextGroupId(context);
const char* task_name = "setTimeout";
v8_inspector::StringView task_name_view(
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment