| Index: test/inspector/inspector-impl.cc
|
| diff --git a/test/inspector/inspector-impl.cc b/test/inspector/inspector-impl.cc
|
| deleted file mode 100644
|
| index 664fdf8366baec8f79209c8562ed3b5876701eac..0000000000000000000000000000000000000000
|
| --- a/test/inspector/inspector-impl.cc
|
| +++ /dev/null
|
| @@ -1,254 +0,0 @@
|
| -// Copyright 2016 the V8 project authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "test/inspector/inspector-impl.h"
|
| -
|
| -#include "include/v8.h"
|
| -
|
| -#include "src/vector.h"
|
| -#include "test/inspector/isolate-data.h"
|
| -#include "test/inspector/task-runner.h"
|
| -
|
| -namespace {
|
| -
|
| -class ChannelImpl final : public v8_inspector::V8Inspector::Channel {
|
| - public:
|
| - ChannelImpl(InspectorClientImpl::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 {}
|
| -
|
| - InspectorClientImpl::FrontendChannel* frontend_channel_;
|
| - int session_id_;
|
| - DISALLOW_COPY_AND_ASSIGN(ChannelImpl);
|
| -};
|
| -
|
| -v8::internal::Vector<uint16_t> ToVector(v8::Local<v8::String> str) {
|
| - v8::internal::Vector<uint16_t> buffer =
|
| - v8::internal::Vector<uint16_t>::New(str->Length());
|
| - str->Write(buffer.start(), 0, str->Length());
|
| - return buffer;
|
| -}
|
| -
|
| -void MessageHandler(v8::Local<v8::Message> message,
|
| - v8::Local<v8::Value> exception) {
|
| - v8::Isolate* isolate = v8::Isolate::GetCurrent();
|
| - v8::Local<v8::Context> context = isolate->GetEnteredContext();
|
| - if (context.IsEmpty()) return;
|
| - v8_inspector::V8Inspector* inspector =
|
| - IsolateData::FromContext(context)->inspector()->inspector();
|
| -
|
| - v8::Local<v8::StackTrace> stack = message->GetStackTrace();
|
| - int script_id =
|
| - static_cast<int>(message->GetScriptOrigin().ScriptID()->Value());
|
| - if (!stack.IsEmpty() && stack->GetFrameCount() > 0) {
|
| - int top_script_id = stack->GetFrame(0)->GetScriptId();
|
| - if (top_script_id == script_id) script_id = 0;
|
| - }
|
| - int line_number = message->GetLineNumber(context).FromMaybe(0);
|
| - int column_number = 0;
|
| - if (message->GetStartColumn(context).IsJust())
|
| - column_number = message->GetStartColumn(context).FromJust() + 1;
|
| -
|
| - v8_inspector::StringView detailed_message;
|
| - v8::internal::Vector<uint16_t> message_text_string = ToVector(message->Get());
|
| - v8_inspector::StringView message_text(message_text_string.start(),
|
| - message_text_string.length());
|
| - v8::internal::Vector<uint16_t> url_string;
|
| - if (message->GetScriptOrigin().ResourceName()->IsString()) {
|
| - url_string =
|
| - ToVector(message->GetScriptOrigin().ResourceName().As<v8::String>());
|
| - }
|
| - v8_inspector::StringView url(url_string.start(), url_string.length());
|
| -
|
| - inspector->exceptionThrown(context, message_text, exception, detailed_message,
|
| - url, line_number, column_number,
|
| - inspector->createStackTrace(stack), script_id);
|
| -}
|
| -
|
| -v8::Local<v8::String> ToString(v8::Isolate* isolate,
|
| - const v8_inspector::StringView& string) {
|
| - if (string.is8Bit())
|
| - return v8::String::NewFromOneByte(isolate, string.characters8(),
|
| - v8::NewStringType::kNormal,
|
| - static_cast<int>(string.length()))
|
| - .ToLocalChecked();
|
| - else
|
| - return v8::String::NewFromTwoByte(isolate, string.characters16(),
|
| - v8::NewStringType::kNormal,
|
| - static_cast<int>(string.length()))
|
| - .ToLocalChecked();
|
| -}
|
| -
|
| -void Print(v8::Isolate* isolate, const v8_inspector::StringView& string) {
|
| - v8::Local<v8::String> v8_string = ToString(isolate, string);
|
| - v8::String::Utf8Value utf8_string(v8_string);
|
| - fwrite(*utf8_string, sizeof(**utf8_string), utf8_string.length(), stdout);
|
| -}
|
| -} // namespace
|
| -
|
| -InspectorClientImpl::InspectorClientImpl(v8::Isolate* isolate,
|
| - TaskRunner* task_runner,
|
| - FrontendChannel* frontend_channel)
|
| - : task_runner_(task_runner),
|
| - isolate_(isolate),
|
| - frontend_channel_(frontend_channel) {
|
| - isolate_->AddMessageListener(MessageHandler);
|
| - inspector_ = v8_inspector::V8Inspector::create(isolate_, this);
|
| -}
|
| -
|
| -InspectorClientImpl::~InspectorClientImpl() {}
|
| -
|
| -int InspectorClientImpl::ConnectSession(int context_group_id,
|
| - const v8_inspector::StringView& state) {
|
| - 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);
|
| - context_group_by_session_[sessions_[session_id].get()] = context_group_id;
|
| - return session_id;
|
| -}
|
| -
|
| -std::unique_ptr<v8_inspector::StringBuffer>
|
| -InspectorClientImpl::DisconnectSession(int session_id) {
|
| - auto it = sessions_.find(session_id);
|
| - CHECK(it != sessions_.end());
|
| - 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;
|
| -}
|
| -
|
| -void InspectorClientImpl::SendMessage(int session_id,
|
| - const v8_inspector::StringView& message) {
|
| - auto it = sessions_.find(session_id);
|
| - if (it != sessions_.end()) it->second->dispatchProtocolMessage(message);
|
| -}
|
| -
|
| -void InspectorClientImpl::BreakProgram(
|
| - int context_group_id, const v8_inspector::StringView& reason,
|
| - const v8_inspector::StringView& details) {
|
| - for (int session_id : GetSessionIds(context_group_id)) {
|
| - auto it = sessions_.find(session_id);
|
| - if (it != sessions_.end()) it->second->breakProgram(reason, details);
|
| - }
|
| -}
|
| -
|
| -void InspectorClientImpl::SchedulePauseOnNextStatement(
|
| - int context_group_id, const v8_inspector::StringView& reason,
|
| - const v8_inspector::StringView& details) {
|
| - for (int session_id : GetSessionIds(context_group_id)) {
|
| - auto it = sessions_.find(session_id);
|
| - if (it != sessions_.end())
|
| - it->second->schedulePauseOnNextStatement(reason, details);
|
| - }
|
| -}
|
| -
|
| -void InspectorClientImpl::CancelPauseOnNextStatement(int context_group_id) {
|
| - for (int session_id : GetSessionIds(context_group_id)) {
|
| - auto it = sessions_.find(session_id);
|
| - if (it != sessions_.end()) it->second->cancelPauseOnNextStatement();
|
| - }
|
| -}
|
| -
|
| -void InspectorClientImpl::ContextCreated(v8::Local<v8::Context> context,
|
| - int context_group_id) {
|
| - v8_inspector::V8ContextInfo info(context, context_group_id,
|
| - v8_inspector::StringView());
|
| - info.hasMemoryOnConsole = true;
|
| - inspector_->contextCreated(info);
|
| -}
|
| -
|
| -void InspectorClientImpl::ContextDestroyed(v8::Local<v8::Context> context) {
|
| - inspector_->contextDestroyed(context);
|
| -}
|
| -
|
| -std::vector<int> InspectorClientImpl::GetSessionIds(int context_group_id) {
|
| - std::vector<int> result;
|
| - for (auto& it : sessions_) {
|
| - if (context_group_by_session_[it.second.get()] == context_group_id)
|
| - result.push_back(it.first);
|
| - }
|
| - return result;
|
| -}
|
| -
|
| -bool InspectorClientImpl::formatAccessorsAsProperties(
|
| - v8::Local<v8::Value> object) {
|
| - v8::Isolate* isolate = v8::Isolate::GetCurrent();
|
| - v8::Local<v8::Context> context = isolate->GetCurrentContext();
|
| - v8::Local<v8::Private> shouldFormatAccessorsPrivate = v8::Private::ForApi(
|
| - isolate, v8::String::NewFromUtf8(isolate, "allowAccessorFormatting",
|
| - v8::NewStringType::kNormal)
|
| - .ToLocalChecked());
|
| - CHECK(object->IsObject());
|
| - return object.As<v8::Object>()
|
| - ->HasPrivate(context, shouldFormatAccessorsPrivate)
|
| - .FromMaybe(false);
|
| -}
|
| -
|
| -v8::Local<v8::Context> InspectorClientImpl::ensureDefaultContextInGroup(
|
| - int context_group_id) {
|
| - CHECK(isolate_);
|
| - return task_runner_->data()->GetContext(context_group_id);
|
| -}
|
| -
|
| -void InspectorClientImpl::SetCurrentTimeMSForTest(double time) {
|
| - current_time_ = time;
|
| - current_time_set_for_test_ = true;
|
| -}
|
| -
|
| -double InspectorClientImpl::currentTimeMS() {
|
| - if (current_time_set_for_test_) return current_time_;
|
| - return v8::base::OS::TimeCurrentMillis();
|
| -}
|
| -
|
| -void InspectorClientImpl::SetMemoryInfoForTest(
|
| - v8::Local<v8::Value> memory_info) {
|
| - memory_info_.Reset(isolate_, memory_info);
|
| -}
|
| -
|
| -void InspectorClientImpl::SetLogConsoleApiMessageCalls(bool log) {
|
| - log_console_api_message_calls_ = log;
|
| -}
|
| -
|
| -v8::MaybeLocal<v8::Value> InspectorClientImpl::memoryInfo(
|
| - v8::Isolate* isolate, v8::Local<v8::Context>) {
|
| - if (memory_info_.IsEmpty()) return v8::MaybeLocal<v8::Value>();
|
| - return memory_info_.Get(isolate);
|
| -}
|
| -
|
| -void InspectorClientImpl::runMessageLoopOnPause(int) {
|
| - task_runner_->RunMessageLoop(true);
|
| -}
|
| -
|
| -void InspectorClientImpl::quitMessageLoopOnPause() {
|
| - task_runner_->QuitMessageLoop();
|
| -}
|
| -
|
| -void InspectorClientImpl::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_, message);
|
| - fprintf(stdout, " (");
|
| - Print(isolate_, url);
|
| - fprintf(stdout, ":%d:%d)", lineNumber, columnNumber);
|
| - Print(isolate_, stack->toString()->string());
|
| - fprintf(stdout, "\n");
|
| -}
|
|
|