Index: test/inspector/isolate-data.cc |
diff --git a/test/inspector/isolate-data.cc b/test/inspector/isolate-data.cc |
index cdc8cf0e1947283f478b7b57d142100bba9961ef..a7548259bb18b8bbc3695e7dac8ec2c3fa10e743 100644 |
--- a/test/inspector/isolate-data.cc |
+++ b/test/inspector/isolate-data.cc |
@@ -4,6 +4,7 @@ |
#include "test/inspector/isolate-data.h" |
+#include "src/inspector/test-interface.h" |
#include "test/inspector/task-runner.h" |
namespace { |
@@ -38,45 +39,20 @@ void Print(v8::Isolate* isolate, const v8_inspector::StringView& string) { |
fwrite(*utf8_string, sizeof(**utf8_string), utf8_string.length(), stdout); |
} |
-class ChannelImpl final : public v8_inspector::V8Inspector::Channel { |
- public: |
- ChannelImpl(IsolateData::FrontendChannel* frontend_channel, int session_id) |
- : frontend_channel_(frontend_channel), session_id_(session_id) {} |
- virtual ~ChannelImpl() = default; |
- |
- private: |
- void sendResponse( |
- int callId, |
- std::unique_ptr<v8_inspector::StringBuffer> message) override { |
- frontend_channel_->SendMessageToFrontend(session_id_, message->string()); |
- } |
- void sendNotification( |
- std::unique_ptr<v8_inspector::StringBuffer> message) override { |
- frontend_channel_->SendMessageToFrontend(session_id_, message->string()); |
- } |
- void flushProtocolNotifications() override {} |
- |
- IsolateData::FrontendChannel* frontend_channel_; |
- int session_id_; |
- DISALLOW_COPY_AND_ASSIGN(ChannelImpl); |
-}; |
- |
} // namespace |
IsolateData::IsolateData(TaskRunner* task_runner, |
IsolateData::SetupGlobalTasks setup_global_tasks, |
- v8::StartupData* startup_data, |
- FrontendChannel* channel) |
+ v8::StartupData* startup_data, bool with_inspector) |
: task_runner_(task_runner), |
- setup_global_tasks_(std::move(setup_global_tasks)), |
- frontend_channel_(channel) { |
+ setup_global_tasks_(std::move(setup_global_tasks)) { |
v8::Isolate::CreateParams params; |
params.array_buffer_allocator = |
v8::ArrayBuffer::Allocator::NewDefaultAllocator(); |
params.snapshot_blob = startup_data; |
isolate_ = v8::Isolate::New(params); |
isolate_->SetMicrotasksPolicy(v8::MicrotasksPolicy::kScoped); |
- if (frontend_channel_) { |
+ if (with_inspector) { |
isolate_->AddMessageListener(&IsolateData::MessageHandler); |
inspector_ = v8_inspector::V8Inspector::create(isolate_, this); |
} |
@@ -141,11 +117,10 @@ v8::MaybeLocal<v8::Module> IsolateData::ModuleResolveCallback( |
} |
int IsolateData::ConnectSession(int context_group_id, |
- const v8_inspector::StringView& state) { |
+ const v8_inspector::StringView& state, |
+ v8_inspector::V8Inspector::Channel* channel) { |
int session_id = ++last_session_id_; |
- channels_[session_id].reset(new ChannelImpl(frontend_channel_, session_id)); |
- sessions_[session_id] = |
- inspector_->connect(context_group_id, channels_[session_id].get(), state); |
+ sessions_[session_id] = inspector_->connect(context_group_id, channel, state); |
context_group_by_session_[sessions_[session_id].get()] = context_group_id; |
return session_id; |
} |
@@ -157,7 +132,6 @@ std::unique_ptr<v8_inspector::StringBuffer> IsolateData::DisconnectSession( |
context_group_by_session_.erase(it->second.get()); |
std::unique_ptr<v8_inspector::StringBuffer> result = it->second->stateJSON(); |
sessions_.erase(it); |
- channels_.erase(session_id); |
return result; |
} |
@@ -193,6 +167,27 @@ void IsolateData::CancelPauseOnNextStatement(int context_group_id) { |
} |
} |
+void IsolateData::AsyncTaskScheduled(const v8_inspector::StringView& name, |
+ void* task, bool recurring) { |
+ inspector_->asyncTaskScheduled(name, task, recurring); |
+} |
+ |
+void IsolateData::AsyncTaskStarted(void* task) { |
+ inspector_->asyncTaskStarted(task); |
+} |
+ |
+void IsolateData::AsyncTaskFinished(void* task) { |
+ inspector_->asyncTaskFinished(task); |
+} |
+ |
+void IsolateData::SetMaxAsyncTaskStacksForTest(int limit) { |
+ v8_inspector::SetMaxAsyncTaskStacksForTest(inspector_.get(), limit); |
+} |
+ |
+void IsolateData::DumpAsyncTaskStacksStateForTest() { |
+ v8_inspector::DumpAsyncTaskStacksStateForTest(inspector_.get()); |
+} |
+ |
// static |
void IsolateData::MessageHandler(v8::Local<v8::Message> message, |
v8::Local<v8::Value> exception) { |