fix: handle empty event scenario in ipc callbacks (#48992)
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com> Co-authored-by: deepak1556 <hop2deep@gmail.com>
This commit is contained in:
parent
d9c33a951a
commit
00646c9db6
2 changed files with 18 additions and 0 deletions
|
|
@ -76,6 +76,8 @@ void ElectronApiSWIPCHandlerImpl::Message(bool internal,
|
|||
v8::Isolate* isolate = electron::JavascriptEnvironment::GetIsolate();
|
||||
v8::HandleScope handle_scope(isolate);
|
||||
auto* event = MakeIPCEvent(isolate, session->Get(), internal);
|
||||
if (!event)
|
||||
return;
|
||||
v8::Local<v8::Object> event_object =
|
||||
event->GetWrapper(isolate).ToLocalChecked();
|
||||
session->Get()->Message(event_object, channel, std::move(arguments));
|
||||
|
|
@ -92,6 +94,8 @@ void ElectronApiSWIPCHandlerImpl::Invoke(bool internal,
|
|||
v8::HandleScope handle_scope(isolate);
|
||||
auto* event =
|
||||
MakeIPCEvent(isolate, session->Get(), internal, std::move(callback));
|
||||
if (!event)
|
||||
return;
|
||||
v8::Local<v8::Object> event_object =
|
||||
event->GetWrapper(isolate).ToLocalChecked();
|
||||
session->Get()->Invoke(event_object, channel, std::move(arguments));
|
||||
|
|
@ -106,6 +110,8 @@ void ElectronApiSWIPCHandlerImpl::ReceivePostMessage(
|
|||
v8::Isolate* isolate = electron::JavascriptEnvironment::GetIsolate();
|
||||
v8::HandleScope handle_scope(isolate);
|
||||
auto* event = MakeIPCEvent(isolate, session->Get(), false);
|
||||
if (!event)
|
||||
return;
|
||||
v8::Local<v8::Object> event_object =
|
||||
event->GetWrapper(isolate).ToLocalChecked();
|
||||
session->Get()->ReceivePostMessage(event_object, channel,
|
||||
|
|
@ -123,6 +129,8 @@ void ElectronApiSWIPCHandlerImpl::MessageSync(bool internal,
|
|||
v8::HandleScope handle_scope(isolate);
|
||||
auto* event =
|
||||
MakeIPCEvent(isolate, session->Get(), internal, std::move(callback));
|
||||
if (!event)
|
||||
return;
|
||||
v8::Local<v8::Object> event_object =
|
||||
event->GetWrapper(isolate).ToLocalChecked();
|
||||
session->Get()->MessageSync(event_object, channel, std::move(arguments));
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue