From dee91b6772ebdcb829242ffffd6c0d87e9849bdf Mon Sep 17 00:00:00 2001 From: Scott Nonnenberg Date: Mon, 10 Dec 2018 13:48:51 -0800 Subject: [PATCH] main process: Don't send IPC to event.sender if it is destroyed --- main.js | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/main.js b/main.js index f2010ae160..5d671d65f2 100644 --- a/main.js +++ b/main.js @@ -950,9 +950,14 @@ function getDataFromMainWindow(name, callback) { function installSettingsGetter(name) { ipc.on(`get-${name}`, event => { if (mainWindow && mainWindow.webContents) { - getDataFromMainWindow(name, (error, value) => - event.sender.send(`get-success-${name}`, error, value) - ); + getDataFromMainWindow(name, (error, value) => { + const contents = event.sender; + if (contents.isDestroyed()) { + return; + } + + contents.send(`get-success-${name}`, error, value); + }); } }); } @@ -960,9 +965,14 @@ function installSettingsGetter(name) { function installSettingsSetter(name) { ipc.on(`set-${name}`, (event, value) => { if (mainWindow && mainWindow.webContents) { - ipc.once(`set-success-${name}`, (_event, error) => - event.sender.send(`set-success-${name}`, error) - ); + ipc.once(`set-success-${name}`, (_event, error) => { + const contents = event.sender; + if (contents.isDestroyed()) { + return; + } + + contents.send(`set-success-${name}`, error); + }); mainWindow.webContents.send(`set-${name}`, value); } });