From 7dc9b79fb3376ed7e6d5f2a1ded0b9ac499dacc6 Mon Sep 17 00:00:00 2001
From: Giacomo Cusinato <7659518+giacomocusinato@users.noreply.github.com>
Date: Tue, 8 Apr 2025 22:21:37 +0700
Subject: [PATCH] fix: use `ElectronConnectionHandler` to connect ide updater
 services

---
 .../arduino-electron-main-module.ts           | 21 ++++++++-----------
 1 file changed, 9 insertions(+), 12 deletions(-)

diff --git a/arduino-ide-extension/src/electron-main/arduino-electron-main-module.ts b/arduino-ide-extension/src/electron-main/arduino-electron-main-module.ts
index b6fd604e4..f1cd406ef 100644
--- a/arduino-ide-extension/src/electron-main/arduino-electron-main-module.ts
+++ b/arduino-ide-extension/src/electron-main/arduino-electron-main-module.ts
@@ -1,5 +1,5 @@
-import { ConnectionHandler } from '@theia/core/lib/common/messaging/handler';
-import { JsonRpcConnectionHandler } from '@theia/core/lib/common/messaging/proxy-factory';
+import { ElectronConnectionHandler } from '@theia/core/lib/electron-main/messaging/electron-connection-handler';
+import { RpcConnectionHandler } from '@theia/core/lib/common/messaging/proxy-factory';
 import { ElectronMainWindowService } from '@theia/core/lib/electron-common/electron-main-window-service';
 import { TheiaMainApi } from '@theia/core/lib/electron-main/electron-api-main';
 import {
@@ -33,18 +33,15 @@ export default new ContainerModule((bind, unbind, isBound, rebind) => {
   bind(IDEUpdaterImpl).toSelf().inSingletonScope();
   bind(IDEUpdater).toService(IDEUpdaterImpl);
   bind(ElectronMainApplicationContribution).toService(IDEUpdater);
-  bind(ConnectionHandler)
+  bind(ElectronConnectionHandler)
     .toDynamicValue(
       (context) =>
-        new JsonRpcConnectionHandler<IDEUpdaterClient>(
-          IDEUpdaterPath,
-          (client) => {
-            const server = context.container.get<IDEUpdater>(IDEUpdater);
-            server.setClient(client);
-            client.onDidCloseConnection(() => server.disconnectClient(client));
-            return server;
-          }
-        )
+        new RpcConnectionHandler<IDEUpdaterClient>(IDEUpdaterPath, (client) => {
+          const server = context.container.get<IDEUpdater>(IDEUpdater);
+          server.setClient(client);
+          client.onDidCloseConnection(() => server.disconnectClient(client));
+          return server;
+        })
     )
     .inSingletonScope();