66#include " NativeScriptException.h"
77
88#include " ArgConverter.h"
9+ #include " NetworkDomainCallbackHandlers.h"
910
1011using namespace std ;
1112using namespace tns ;
@@ -19,7 +20,8 @@ JsV8InspectorClient::JsV8InspectorClient(v8::Isolate* isolate)
1920 session_(nullptr ),
2021 connection(nullptr ),
2122 context_(),
22- running_nested_loop_(false ) {
23+ running_nested_loop_(false ),
24+ isConnected(false ) {
2325 JEnv env;
2426
2527 inspectorClass = env.FindClass (" com/tns/AndroidJsV8Inspector" );
@@ -38,6 +40,7 @@ JsV8InspectorClient::JsV8InspectorClient(v8::Isolate* isolate)
3840void JsV8InspectorClient::connect (jobject connection) {
3941 JEnv env;
4042 this ->connection = env.NewGlobalRef (connection);
43+ this ->isConnected = true ;
4144}
4245
4346void JsV8InspectorClient::createInspectorSession (v8::Isolate* isolate, const v8::Local<v8::Context>& context) {
@@ -58,6 +61,7 @@ void JsV8InspectorClient::disconnect() {
5861 JEnv env;
5962 env.DeleteGlobalRef (this ->connection );
6063 this ->connection = nullptr ;
64+ this ->isConnected = false ;
6165
6266 this ->createInspectorSession (isolate_, JsV8InspectorClient::PersistentToLocal (isolate_, context_));
6367}
@@ -133,7 +137,6 @@ void JsV8InspectorClient::sendProtocolNotification(const v8_inspector::StringVie
133137 v8_inspector::String16 msg = ToString16 (message);
134138
135139 JEnv env;
136- const char * msss = msg.utf8 ().c_str ();
137140 JniLocalRef str (env.NewStringUTF (msg.utf8 ().c_str ()));
138141 env.CallStaticVoidMethod (inspectorClass, sendMethod, this ->connection , (jstring) str);
139142}
@@ -257,11 +260,27 @@ void MessageHandler(v8::Local<v8::Message> message, v8::Local<v8::Value> excepti
257260// inspector->createStackTrace(stack), script_id);
258261}
259262
263+ void JsV8InspectorClient::attachInspectorCallbacks (Isolate* isolate,
264+ Local<ObjectTemplate>& globalObjectTemplate) {
265+ v8::HandleScope scope (isolate);
266+
267+ auto inspectorJSObject = ObjectTemplate::New (isolate);
268+
269+ inspectorJSObject->Set (ArgConverter::ConvertToV8String (isolate, " responseReceived" ), FunctionTemplate::New (isolate, NetworkDomainCallbackHandlers::ResponseReceivedCallback));
270+ inspectorJSObject->Set (ArgConverter::ConvertToV8String (isolate, " requestWillBeSent" ), FunctionTemplate::New (isolate, NetworkDomainCallbackHandlers::RequestWillBeSentCallback));
271+ inspectorJSObject->Set (ArgConverter::ConvertToV8String (isolate, " dataForRequestId" ), FunctionTemplate::New (isolate, NetworkDomainCallbackHandlers::DataForRequestIdCallback));
272+ inspectorJSObject->Set (ArgConverter::ConvertToV8String (isolate, " loadingFinished" ), FunctionTemplate::New (isolate, NetworkDomainCallbackHandlers::LoadingFinishedCallback));
273+ inspectorJSObject->SetAccessor (ArgConverter::ConvertToV8String (isolate, " isConnected" ), JsV8InspectorClient::InspectorIsConnectedGetterCallback);
274+
275+ globalObjectTemplate->Set (ArgConverter::ConvertToV8String (isolate, " __inspector" ), inspectorJSObject);
276+ }
277+
278+ void JsV8InspectorClient::InspectorIsConnectedGetterCallback (v8::Local<v8::String> property, const v8::PropertyCallbackInfo<v8::Value>& info) {
279+ info.GetReturnValue ().Set (JsV8InspectorClient::GetInstance ()->isConnected );
280+ }
281+
260282JsV8InspectorClient* JsV8InspectorClient::instance = nullptr ;
261283jclass JsV8InspectorClient::inspectorClass = nullptr ;
262284jmethodID JsV8InspectorClient::sendMethod = nullptr ;
263285jmethodID JsV8InspectorClient::sendToDevToolsConsoleMethod = nullptr ;
264286jmethodID JsV8InspectorClient::getInspectorMessageMethod = nullptr ;
265-
266-
267-
0 commit comments