@@ -205,6 +205,25 @@ JsV8InspectorClient* JsV8InspectorClient::GetInstance() {
205205 return instance;
206206}
207207
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+
208227void JsV8InspectorClient::sendToFrontEndCallback (const v8::FunctionCallbackInfo<v8::Value>& args) {
209228 if ((instance == nullptr ) || (instance->connection_ == nullptr )) {
210229 return ;
@@ -280,6 +299,7 @@ void JsV8InspectorClient::attachInspectorCallbacks(Isolate* isolate,
280299 inspectorJSObject->Set (ArgConverter::ConvertToV8String (isolate, " attributeRemoved" ), FunctionTemplate::New (isolate, DOMDomainCallbackHandlers::AttributeRemovedCallback));
281300
282301 globalObjectTemplate->Set (ArgConverter::ConvertToV8String (isolate, " __inspector" ), inspectorJSObject);
302+ globalObjectTemplate->Set (ArgConverter::ConvertToV8String (isolate, " __inspectorSendEvent" ), FunctionTemplate::New (isolate, JsV8InspectorClient::inspectorSendEventCallback));
283303}
284304
285305void JsV8InspectorClient::InspectorIsConnectedGetterCallback (v8::Local<v8::String> property, const v8::PropertyCallbackInfo<v8::Value>& info) {
0 commit comments