diff --git a/electron/preload/index.ts b/electron/preload/index.ts index 0136fcf1..1d91f9a3 100644 --- a/electron/preload/index.ts +++ b/electron/preload/index.ts @@ -41,10 +41,15 @@ contextBridge.exposeInMainWorld('electronAPI', { hideWebView: (id: string) => ipcRenderer.invoke('hide-webview', id), changeViewSize: (id: string, size: Size) => ipcRenderer.invoke('change-view-size', id, size), onWebviewNavigated: (callback: (id: string, url: string) => void) => { + const channel = 'webview-navigated' const listener = (event: any, id: string, url: string) => callback(id, url); - ipcRenderer.on('webview-navigated', listener); + ipcRenderer.on(channel, listener); + console.log(`[preload] add ${channel}; count=${ipcRenderer.listenerCount(channel)}`) // Return cleanup function to remove listener - return () => ipcRenderer.off('webview-navigated', listener); + return () => { + ipcRenderer.off(channel, listener); + console.log(`[preload] remove ${channel}; count=${ipcRenderer.listenerCount(channel)}`) + }; }, showWebview: (id: string) => ipcRenderer.invoke('show-webview', id), getActiveWebview: () => ipcRenderer.invoke('get-active-webview'), @@ -197,4 +202,4 @@ window.onmessage = (ev) => { ev.data.payload === 'removeLoading' && removeLoading() } -setTimeout(removeLoading, 4999) \ No newline at end of file +setTimeout(removeLoading, 4999)