Skip to content

Commit cf2f4fe

Browse files
committed
Avoid deprecated ipcRenderer.sendTo.
Signed-off-by: Anders Kaseorg <[email protected]>
1 parent 47cdd5f commit cf2f4fe

File tree

6 files changed

+42
-9
lines changed

6 files changed

+42
-9
lines changed

app/main/index.ts

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,14 @@
11
import type {Event} from "electron/common";
22
import {clipboard} from "electron/common";
33
import type {IpcMainEvent, WebContents} from "electron/main";
4-
import {BrowserWindow, app, dialog, powerMonitor, session} from "electron/main";
4+
import {
5+
BrowserWindow,
6+
app,
7+
dialog,
8+
powerMonitor,
9+
session,
10+
webContents,
11+
} from "electron/main";
512
import {Buffer} from "node:buffer";
613
import crypto from "node:crypto";
714
import path from "node:path";
@@ -389,6 +396,21 @@ ${error}`,
389396
},
390397
);
391398

399+
ipcMain.on(
400+
"forward-to",
401+
<Channel extends keyof RendererMessage>(
402+
_event: IpcMainEvent,
403+
webContentsId: number,
404+
listener: Channel,
405+
...parameters: Parameters<RendererMessage[Channel]>
406+
) => {
407+
const contents = webContents.fromId(webContentsId);
408+
if (contents !== undefined) {
409+
send(contents, listener, ...parameters);
410+
}
411+
},
412+
);
413+
392414
ipcMain.on("update-menu", (_event, props: MenuProps) => {
393415
AppMenu.setMenu(props);
394416
if (props.activeTabIndex !== undefined) {

app/main/typed-ipc-main.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,15 @@ export const ipcMain: {
3333
...args: Parameters<RendererMessage[Channel]>
3434
) => void,
3535
): void;
36+
on(
37+
channel: "forward-to",
38+
listener: <Channel extends keyof RendererMessage>(
39+
event: IpcMainEvent,
40+
webContentsId: number,
41+
channel: Channel,
42+
...args: Parameters<RendererMessage[Channel]>
43+
) => void,
44+
): void;
3645
on<Channel extends keyof MainMessage>(
3746
channel: Channel,
3847
listener: MainListener<Channel>,

app/renderer/js/components/webview.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -226,7 +226,7 @@ export default class WebView {
226226
channel: Channel,
227227
...args: Parameters<RendererMessage[Channel]>
228228
): void {
229-
ipcRenderer.sendTo(this.webContentsId, channel, ...args);
229+
ipcRenderer.send("forward-to", this.webContentsId, channel, ...args);
230230
}
231231

232232
private registerListeners(): void {

app/renderer/js/pages/preference/general-section.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -356,7 +356,8 @@ export function initGeneralSection({$root}: GeneralSectionProps): void {
356356
const newValue = !ConfigUtil.getConfigItem("silent", true);
357357
ConfigUtil.setConfigItem("silent", newValue);
358358
updateSilentOption();
359-
ipcRenderer.sendTo(
359+
ipcRenderer.send(
360+
"forward-to",
360361
currentBrowserWindow.webContents.id,
361362
"toggle-silent",
362363
newValue,

app/renderer/js/tray.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ function sendAction<Channel extends keyof RendererMessage>(
138138
win.restore();
139139
}
140140

141-
ipcRenderer.sendTo(win.webContents.id, channel, ...args);
141+
ipcRenderer.send("forward-to", win.webContents.id, channel, ...args);
142142
}
143143

144144
const createTray = function (): void {

app/renderer/js/typed-ipc-renderer.ts

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,12 @@ export const ipcRenderer: {
3737
rendererChannel: Channel,
3838
...args: Parameters<RendererMessage[Channel]>
3939
): void;
40+
send<Channel extends keyof RendererMessage>(
41+
channel: "forward-to",
42+
webContentsId: number,
43+
rendererChannel: Channel,
44+
...args: Parameters<RendererMessage[Channel]>
45+
): void;
4046
send<Channel extends keyof MainMessage>(
4147
channel: Channel,
4248
...args: Parameters<MainMessage[Channel]>
@@ -56,11 +62,6 @@ export const ipcRenderer: {
5662
: never,
5763
transfer?: MessagePort[],
5864
): void;
59-
sendTo<Channel extends keyof RendererMessage>(
60-
webContentsId: number,
61-
channel: Channel,
62-
...args: Parameters<RendererMessage[Channel]>
63-
): void;
6465
sendToHost<Channel extends keyof RendererMessage>(
6566
channel: Channel,
6667
...args: Parameters<RendererMessage[Channel]>

0 commit comments

Comments
 (0)