Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(255)

Unified Diff: test/inspector/task-runner.cc

Issue 2890463004: [inspector] Refactor inspector test (Closed)
Patch Set: better crash fix Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « test/inspector/task-runner.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: test/inspector/task-runner.cc
diff --git a/test/inspector/task-runner.cc b/test/inspector/task-runner.cc
index b26680fdf646199bc0211f98121925644a8476f4..79ccc8a8ec7092994ae3e9aacdc2696a378625ce 100644
--- a/test/inspector/task-runner.cc
+++ b/test/inspector/task-runner.cc
@@ -17,7 +17,15 @@ void ReportUncaughtException(v8::Isolate* isolate,
CHECK(try_catch.HasCaught());
v8::HandleScope handle_scope(isolate);
std::string message = *v8::String::Utf8Value(try_catch.Message()->Get());
- fprintf(stderr, "Unhandle exception: %s\n", message.data());
+ int line = try_catch.Message()
+ ->GetLineNumber(isolate->GetCurrentContext())
+ .FromJust();
+ std::string source_line =
+ *v8::String::Utf8Value(try_catch.Message()
+ ->GetSourceLine(isolate->GetCurrentContext())
+ .ToLocalChecked());
+ fprintf(stderr, "Unhandle exception: %s @%s[%d]\n", message.data(),
+ source_line.data(), line);
}
v8::internal::Vector<uint16_t> ToVector(v8::Local<v8::String> str) {
@@ -32,10 +40,12 @@ v8::internal::Vector<uint16_t> ToVector(v8::Local<v8::String> str) {
TaskRunner::TaskRunner(IsolateData::SetupGlobalTasks setup_global_tasks,
bool catch_exceptions,
v8::base::Semaphore* ready_semaphore,
- v8::StartupData* startup_data)
+ v8::StartupData* startup_data,
+ InspectorClientImpl::FrontendChannel* channel)
: Thread(Options("Task Runner")),
setup_global_tasks_(std::move(setup_global_tasks)),
startup_data_(startup_data),
+ channel_(channel),
catch_exceptions_(catch_exceptions),
ready_semaphore_(ready_semaphore),
data_(nullptr),
@@ -47,13 +57,8 @@ TaskRunner::TaskRunner(IsolateData::SetupGlobalTasks setup_global_tasks,
TaskRunner::~TaskRunner() { Join(); }
void TaskRunner::Run() {
- data_.reset(
- new IsolateData(this, std::move(setup_global_tasks_), startup_data_));
-
- v8::Isolate::Scope isolate_scope(isolate());
- v8::HandleScope handle_scope(isolate());
- default_context_group_id_ = data_->CreateContextGroup();
-
+ data_.reset(new IsolateData(this, std::move(setup_global_tasks_),
+ startup_data_, channel_));
if (ready_semaphore_) ready_semaphore_->Signal();
RunMessageLoop(false);
}
@@ -66,7 +71,7 @@ void TaskRunner::RunMessageLoop(bool only_protocol) {
v8::Isolate::Scope isolate_scope(isolate());
if (catch_exceptions_) {
v8::TryCatch try_catch(isolate());
- task->RunOnTaskRunner(this);
+ task->RunOnIsolate(data_.get());
delete task;
if (try_catch.HasCaught()) {
ReportUncaughtException(isolate(), try_catch);
@@ -75,7 +80,7 @@ void TaskRunner::RunMessageLoop(bool only_protocol) {
_exit(0);
}
} else {
- task->RunOnTaskRunner(this);
+ task->RunOnIsolate(data_.get());
delete task;
}
}
@@ -115,44 +120,45 @@ TaskRunner::Task* TaskRunner::GetNext(bool only_protocol) {
return nullptr;
}
-AsyncTask::AsyncTask(const char* task_name,
- v8_inspector::V8Inspector* inspector)
- : inspector_(task_name ? inspector : nullptr) {
- if (inspector_) {
- inspector_->asyncTaskScheduled(
- v8_inspector::StringView(reinterpret_cast<const uint8_t*>(task_name),
- strlen(task_name)),
- this, false);
- }
+AsyncTask::AsyncTask(IsolateData* data, const char* task_name)
+ : instrumenting_(data && task_name) {
+ if (!instrumenting_) return;
+ data->inspector()->inspector()->asyncTaskScheduled(
+ v8_inspector::StringView(reinterpret_cast<const uint8_t*>(task_name),
+ strlen(task_name)),
+ this, false);
}
void AsyncTask::Run() {
- if (inspector_) inspector_->asyncTaskStarted(this);
+ if (instrumenting_) data()->inspector()->inspector()->asyncTaskStarted(this);
AsyncRun();
- if (inspector_) inspector_->asyncTaskFinished(this);
+ if (instrumenting_) data()->inspector()->inspector()->asyncTaskFinished(this);
}
ExecuteStringTask::ExecuteStringTask(
+ IsolateData* data, int context_group_id, const char* task_name,
const v8::internal::Vector<uint16_t>& expression,
v8::Local<v8::String> name, v8::Local<v8::Integer> line_offset,
- v8::Local<v8::Integer> column_offset, v8::Local<v8::Boolean> is_module,
- const char* task_name, v8_inspector::V8Inspector* inspector)
- : AsyncTask(task_name, inspector),
+ v8::Local<v8::Integer> column_offset, v8::Local<v8::Boolean> is_module)
+ : AsyncTask(data, task_name),
expression_(expression),
name_(ToVector(name)),
line_offset_(line_offset.As<v8::Int32>()->Value()),
column_offset_(column_offset.As<v8::Int32>()->Value()),
- is_module_(is_module->Value()) {}
+ is_module_(is_module->Value()),
+ context_group_id_(context_group_id) {}
ExecuteStringTask::ExecuteStringTask(
- const v8::internal::Vector<const char>& expression)
- : AsyncTask(nullptr, nullptr), expression_utf8_(expression) {}
+ const v8::internal::Vector<const char>& expression, int context_group_id)
+ : AsyncTask(nullptr, nullptr),
+ expression_utf8_(expression),
+ context_group_id_(context_group_id) {}
void ExecuteStringTask::AsyncRun() {
v8::MicrotasksScope microtasks_scope(isolate(),
v8::MicrotasksScope::kRunMicrotasks);
v8::HandleScope handle_scope(isolate());
- v8::Local<v8::Context> context = default_context();
+ v8::Local<v8::Context> context = data()->GetContext(context_group_id_);
v8::Context::Scope context_scope(context);
v8::Local<v8::String> name =
@@ -193,7 +199,6 @@ void ExecuteStringTask::AsyncRun() {
v8::MaybeLocal<v8::Value> result;
result = script->Run(context);
} else {
- IsolateData::FromContext(context)->RegisterModule(context, name_,
- &scriptSource);
+ data()->RegisterModule(context, name_, &scriptSource);
}
}
« no previous file with comments | « test/inspector/task-runner.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698