Skip to content

Commit 233b7c3

Browse files
committed
feat: initial support for __inspectorSendEvent
1 parent 4834a2b commit 233b7c3

File tree

2 files changed

+21
-0
lines changed

2 files changed

+21
-0
lines changed

test-app/runtime/src/main/cpp/JsV8InspectorClient.cpp

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
208227
void 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

285305
void JsV8InspectorClient::InspectorIsConnectedGetterCallback(v8::Local<v8::String> property, const v8::PropertyCallbackInfo<v8::Value>& info) {

test-app/runtime/src/main/cpp/JsV8InspectorClient.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ class JsV8InspectorClient : V8InspectorClient, v8_inspector::V8Inspector::Channe
2828

2929
static void sendToFrontEndCallback(const v8::FunctionCallbackInfo<v8::Value>& args);
3030
static void consoleLogCallback(v8::Isolate* isolate, ConsoleAPIType method, const std::vector<v8::Local<v8::Value>>& args);
31+
static void inspectorSendEventCallback(const v8::FunctionCallbackInfo<v8::Value>& args);
3132

3233
// Overrides of V8InspectorClient
3334
void runMessageLoopOnPause(int context_group_id) override;

0 commit comments

Comments
 (0)