@@ -205,6 +205,25 @@ JsV8InspectorClient* JsV8InspectorClient::GetInstance() {
205
205
return instance;
206
206
}
207
207
208
+ void JsV8InspectorClient::inspectorSendEventCallback (const FunctionCallbackInfo<Value>& args) {
209
+ if ((instance == nullptr ) || (instance->connection_ == nullptr )) {
210
+ return ;
211
+ }
212
+ Isolate* isolate = args.GetIsolate ();
213
+
214
+ Local<v8::String> arg = args[0 ].As <v8::String>();
215
+ std::string message = ArgConverter::ConvertToString (arg);
216
+
217
+ JEnv env;
218
+ // TODO: Pete: Check if we can use a wide (utf 16) string here
219
+ JniLocalRef str (env.NewStringUTF (message.c_str ()));
220
+ env.CallStaticVoidMethod (instance->inspectorClass_ , instance->sendMethod_ , instance->connection_ , (jstring) str);
221
+
222
+ // TODO: ios uses this method, but doesn't work on android
223
+ // so I'm just sending directly to the socket (which seems to work)
224
+ // instance->dispatchMessage(message);
225
+ }
226
+
208
227
void JsV8InspectorClient::sendToFrontEndCallback (const v8::FunctionCallbackInfo<v8::Value>& args) {
209
228
if ((instance == nullptr ) || (instance->connection_ == nullptr )) {
210
229
return ;
@@ -280,6 +299,7 @@ void JsV8InspectorClient::attachInspectorCallbacks(Isolate* isolate,
280
299
inspectorJSObject->Set (ArgConverter::ConvertToV8String (isolate, " attributeRemoved" ), FunctionTemplate::New (isolate, DOMDomainCallbackHandlers::AttributeRemovedCallback));
281
300
282
301
globalObjectTemplate->Set (ArgConverter::ConvertToV8String (isolate, " __inspector" ), inspectorJSObject);
302
+ globalObjectTemplate->Set (ArgConverter::ConvertToV8String (isolate, " __inspectorSendEvent" ), FunctionTemplate::New (isolate, JsV8InspectorClient::inspectorSendEventCallback));
283
303
}
284
304
285
305
void JsV8InspectorClient::InspectorIsConnectedGetterCallback (v8::Local<v8::String> property, const v8::PropertyCallbackInfo<v8::Value>& info) {
0 commit comments