diff --git a/runtime/src/main/java/com/tns/AndroidJsV8Inspector.java b/runtime/src/main/java/com/tns/AndroidJsV8Inspector.java index ce299f62b..1586c80ec 100644 --- a/runtime/src/main/java/com/tns/AndroidJsV8Inspector.java +++ b/runtime/src/main/java/com/tns/AndroidJsV8Inspector.java @@ -14,6 +14,8 @@ public class AndroidJsV8Inspector { + private static boolean DEBUG_LOG_ENABLED = false; + public static final String DISCONNECT_MESSAGE = "nativescript-inspector-disconnect"; private JsV8InspectorServer server; private Logger logger; @@ -46,7 +48,10 @@ public void start() throws IOException this.server = new JsV8InspectorServer(context.getPackageName() + "-inspectorServer"); this.server.start(-1); - //Log.d("V8Inspector", "init ThreadId:" + Thread.currentThread().getId()); + if (DEBUG_LOG_ENABLED) + { + Log.d("V8Inspector", "start debugger ThreadId:" + Thread.currentThread().getId()); + } init(); } @@ -72,7 +77,10 @@ public JsV8InspectorServer(String name) @Override protected Response serveHttp(IHTTPSession session) { - //Log.d("{N}.v8-inspector", "http request for " + session.getUri()); + if (DEBUG_LOG_ENABLED) + { + Log.d("{N}.v8-inspector", "http request for " + session.getUri()); + } return super.serveHttp(session); } @@ -94,7 +102,10 @@ public JsV8InspectorWebSocket(NanoHTTPD.IHTTPSession handshakeRequest) @Override protected void onOpen() { - //Log.d("V8Inspector", "onOpen: ThreadID: " + Thread.currentThread().getId()); + if (DEBUG_LOG_ENABLED) + { + Log.d("V8Inspector", "onOpen: ThreadID: " + Thread.currentThread().getId()); + } final Object waitObject = new Object(); @@ -103,38 +114,24 @@ protected void onOpen() @Override public void run() { - try - { - //Log.d("V8Inspector", "onOpen: runnable ThreadID : " + Thread.currentThread().getId()); - connect(JsV8InspectorWebSocket.this); - } - finally + if (DEBUG_LOG_ENABLED) { - synchronized (waitObject) - { - waitObject.notify(); - } + Log.d("V8Inspector", "onOpen: runnable ThreadID : " + Thread.currentThread().getId()); } - } - }); - try - { - synchronized (waitObject) - { - waitObject.wait(); + connect(JsV8InspectorWebSocket.this); } - } - catch (InterruptedException e) - { - e.printStackTrace(); - } + }); } @Override protected void onClose(NanoWSD.WebSocketFrame.CloseCode code, String reason, boolean initiatedByRemote) { - //Log.d("V8Inspector", "onClose"); + if (DEBUG_LOG_ENABLED) + { + Log.d("V8Inspector", "onClose"); + } + mainHandler.post(new Runnable() { @Override @@ -150,8 +147,10 @@ public void run() @Override protected void onMessage(final NanoWSD.WebSocketFrame message) { - //Log.d("V8Inspector", "onMessage"); - //Log.d("V8Inspector", "onMessage TextPayload" + message.getTextPayload() + " ThreadId:" + Thread.currentThread().getId()); + if (DEBUG_LOG_ENABLED) + { + Log.d("V8Inspector", "To dbg backend: " + message.getTextPayload() + " ThreadId:" + Thread.currentThread().getId()); + } inspectorMessages.offer(message.getTextPayload()); mainHandler.post(new Runnable() @@ -172,7 +171,11 @@ public void run() @Override public void send(String payload) throws IOException { - //Log.d("V8Inspector", "send " + payload); + if (DEBUG_LOG_ENABLED) + { + Log.d("V8Inspector", "To dbg client: " + payload); + } + super.send(payload); } @@ -184,6 +187,10 @@ public String getInspectorMessage() if (message != null && message.equalsIgnoreCase(DISCONNECT_MESSAGE)) { + if (DEBUG_LOG_ENABLED) + { + Log.d("V8Inspector", "disconecting"); + } disconnect(); return null; } @@ -198,11 +205,9 @@ public String getInspectorMessage() return null; } - @Override protected void onPong(NanoWSD.WebSocketFrame pong) { - //Log.d("V8Inspector", "onPong"); } @Override diff --git a/runtime/src/main/jni/JsV8InspectorClient.cpp b/runtime/src/main/jni/JsV8InspectorClient.cpp index aa7f79456..5aefc8e25 100644 --- a/runtime/src/main/jni/JsV8InspectorClient.cpp +++ b/runtime/src/main/jni/JsV8InspectorClient.cpp @@ -41,8 +41,6 @@ void JsV8InspectorClient::connect(jobject connection) { JEnv env; this->connection = env.NewGlobalRef(connection); - - this->doConnect(isolate_, JsV8InspectorClient::PersistentToLocal(isolate_, context_)); } void JsV8InspectorClient::doConnect(v8::Isolate *isolate, const v8::Local &context) @@ -117,7 +115,10 @@ v8::Local JsV8InspectorClient::ensureDefaultContextInGroup(int cont void JsV8InspectorClient::doDispatchMessage(v8::Isolate *isolate, const std::string &message) { - assert(session_ != nullptr); + if (session_ == nullptr) + { + return; + } const String16 msg(message.c_str()); v8_inspector::StringView message_view(reinterpret_cast(msg.characters16()), msg.length()); @@ -202,6 +203,8 @@ void JsV8InspectorClient::init() v8::Persistent persistentContext(context->GetIsolate(), context); context_.Reset(isolate_, persistentContext); + + this->doConnect(isolate_, JsV8InspectorClient::PersistentToLocal(isolate_, context_)); } JsV8InspectorClient *JsV8InspectorClient::GetInstance()