From be0285f3a3fc178957e2a099b1cd30e52aa6a122 Mon Sep 17 00:00:00 2001 From: dev4s Date: Mon, 12 Oct 2020 18:39:13 +0200 Subject: [PATCH 1/2] In line debugger - can't connect through websocket --- .../src/main/cpp/JsV8InspectorClient.cpp | 4 ++ .../src/inspector/protocol/DOM.cpp | 42 ++++++++++++------- 2 files changed, 30 insertions(+), 16 deletions(-) diff --git a/test-app/runtime/src/main/cpp/JsV8InspectorClient.cpp b/test-app/runtime/src/main/cpp/JsV8InspectorClient.cpp index 97ad26520..dba36a634 100644 --- a/test-app/runtime/src/main/cpp/JsV8InspectorClient.cpp +++ b/test-app/runtime/src/main/cpp/JsV8InspectorClient.cpp @@ -44,9 +44,13 @@ void JsV8InspectorClient::connect(jobject connection) { this->isConnected = true; } +//NOTE: dev4s - changed for now void JsV8InspectorClient::scheduleBreak() { + v8::Locker locker(isolate_); Isolate::Scope isolate_scope(isolate_); v8::HandleScope handleScope(isolate_); + auto context = Runtime::GetRuntime(isolate_)->GetContext(); + Context::Scope context_scope(context); this->session_->schedulePauseOnNextStatement(v8_inspector::StringView(), v8_inspector::StringView()); } diff --git a/test-app/runtime/src/main/cpp/v8_inspector/src/inspector/protocol/DOM.cpp b/test-app/runtime/src/main/cpp/v8_inspector/src/inspector/protocol/DOM.cpp index 86ec4521a..687db9eed 100644 --- a/test-app/runtime/src/main/cpp/v8_inspector/src/inspector/protocol/DOM.cpp +++ b/test-app/runtime/src/main/cpp/v8_inspector/src/inspector/protocol/DOM.cpp @@ -1923,6 +1923,7 @@ void DomainDispatcherImpl::getContentQuads(const v8_crdtp::Dispatchable& dispatc return; } +//NOTE: dev4s - changed for now void DomainDispatcherImpl::getDocument(const v8_crdtp::Dispatchable& dispatchable, DictionaryValue* params, ErrorSupport* errors) { // Prepare input parameters. @@ -1932,34 +1933,43 @@ void DomainDispatcherImpl::getDocument(const v8_crdtp::Dispatchable& dispatchabl errors->SetName("depth"); in_depth = ValueConversions::fromValue(depthValue, errors); } + protocol::Value* pierceValue = params ? params->get("pierce") : nullptr; Maybe in_pierce; if (pierceValue) { errors->SetName("pierce"); in_pierce = ValueConversions::fromValue(pierceValue, errors); } + if (MaybeReportInvalidParams(dispatchable, *errors)) return; // Declare output parameters. std::unique_ptr out_root; std::unique_ptr weak = weakPtr(); - DispatchResponse response = m_backend->getDocument(std::move(in_depth), std::move(in_pierce), &out_root); - if (response.IsFallThrough()) { - channel()->FallThrough(dispatchable.CallId(), v8_crdtp::SpanFrom("DOM.getDocument"), dispatchable.Serialized()); - return; - } - if (weak->get()) { - std::vector result; - if (response.IsSuccess()) { - v8_crdtp::cbor::EnvelopeEncoder envelope_encoder; - envelope_encoder.EncodeStart(&result); - result.push_back(v8_crdtp::cbor::EncodeIndefiniteLengthMapStart()); - v8_crdtp::SerializeField(v8_crdtp::SpanFrom("root"), out_root, &result); - result.push_back(v8_crdtp::cbor::EncodeStop()); - envelope_encoder.EncodeStop(&result); + + if (depthValue && pierceValue) { + //NOTE: in_depth & in_pierce are not used in the method getDocument, see in v8-dom-agent-impl.cpp:63 + DispatchResponse response = m_backend->getDocument(std::move(in_depth), + std::move(in_pierce), &out_root); + if (response.IsFallThrough()) { + channel()->FallThrough(dispatchable.CallId(), v8_crdtp::SpanFrom("DOM.getDocument"), + dispatchable.Serialized()); + return; } - weak->get()->sendResponse(dispatchable.CallId(), response, v8_crdtp::Serializable::From(std::move(result))); - } + if (weak->get()) { + std::vector result; + if (response.IsSuccess()) { + v8_crdtp::cbor::EnvelopeEncoder envelope_encoder; + envelope_encoder.EncodeStart(&result); + result.push_back(v8_crdtp::cbor::EncodeIndefiniteLengthMapStart()); + v8_crdtp::SerializeField(v8_crdtp::SpanFrom("root"), out_root, &result); + result.push_back(v8_crdtp::cbor::EncodeStop()); + envelope_encoder.EncodeStop(&result); + } + weak->get()->sendResponse(dispatchable.CallId(), response, + v8_crdtp::Serializable::From(std::move(result))); + } + } return; } From 8e1bd284f6275a75aefbe27a6c3cf9459fc79dfb Mon Sep 17 00:00:00 2001 From: dev4s Date: Mon, 12 Oct 2020 19:17:56 +0200 Subject: [PATCH 2/2] Removed some comments --- test-app/runtime/src/main/cpp/JsV8InspectorClient.cpp | 1 - .../src/main/cpp/v8_inspector/src/inspector/protocol/DOM.cpp | 1 - 2 files changed, 2 deletions(-) diff --git a/test-app/runtime/src/main/cpp/JsV8InspectorClient.cpp b/test-app/runtime/src/main/cpp/JsV8InspectorClient.cpp index dba36a634..fb11caf80 100644 --- a/test-app/runtime/src/main/cpp/JsV8InspectorClient.cpp +++ b/test-app/runtime/src/main/cpp/JsV8InspectorClient.cpp @@ -44,7 +44,6 @@ void JsV8InspectorClient::connect(jobject connection) { this->isConnected = true; } -//NOTE: dev4s - changed for now void JsV8InspectorClient::scheduleBreak() { v8::Locker locker(isolate_); Isolate::Scope isolate_scope(isolate_); diff --git a/test-app/runtime/src/main/cpp/v8_inspector/src/inspector/protocol/DOM.cpp b/test-app/runtime/src/main/cpp/v8_inspector/src/inspector/protocol/DOM.cpp index 687db9eed..ba2ee42c8 100644 --- a/test-app/runtime/src/main/cpp/v8_inspector/src/inspector/protocol/DOM.cpp +++ b/test-app/runtime/src/main/cpp/v8_inspector/src/inspector/protocol/DOM.cpp @@ -1923,7 +1923,6 @@ void DomainDispatcherImpl::getContentQuads(const v8_crdtp::Dispatchable& dispatc return; } -//NOTE: dev4s - changed for now void DomainDispatcherImpl::getDocument(const v8_crdtp::Dispatchable& dispatchable, DictionaryValue* params, ErrorSupport* errors) { // Prepare input parameters.