Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
67 changes: 36 additions & 31 deletions runtime/src/main/java/com/tns/AndroidJsV8Inspector.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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();
}
Expand All @@ -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);
}

Expand All @@ -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();

Expand All @@ -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
Expand All @@ -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()
Expand All @@ -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);
}

Expand All @@ -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;
}
Expand All @@ -198,11 +205,9 @@ public String getInspectorMessage()
return null;
}


@Override
protected void onPong(NanoWSD.WebSocketFrame pong)
{
//Log.d("V8Inspector", "onPong");
}

@Override
Expand Down
9 changes: 6 additions & 3 deletions runtime/src/main/jni/JsV8InspectorClient.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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<v8::Context> &context)
Expand Down Expand Up @@ -117,7 +115,10 @@ v8::Local<v8::Context> 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<const uint16_t *>(msg.characters16()), msg.length());
Expand Down Expand Up @@ -202,6 +203,8 @@ void JsV8InspectorClient::init()

v8::Persistent<v8::Context> persistentContext(context->GetIsolate(), context);
context_.Reset(isolate_, persistentContext);

this->doConnect(isolate_, JsV8InspectorClient::PersistentToLocal(isolate_, context_));
}

JsV8InspectorClient *JsV8InspectorClient::GetInstance()
Expand Down