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

Unified Diff: test/inspector/inspector-impl.cc

Issue 2894773003: [inspector] Merge InspectorClientImpl into IsolateData (Closed)
Patch Set: 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/inspector-impl.h ('k') | test/inspector/inspector-test.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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");
-}
« no previous file with comments | « test/inspector/inspector-impl.h ('k') | test/inspector/inspector-test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698