fix: ensure the webContents is not destroyed before communicating (#18467)

This commit is contained in:
Samuel Attard 2019-05-28 14:22:35 -07:00 committed by Shelley Vohr
parent 815b9d7707
commit 93b8dc2362

View file

@ -115,7 +115,9 @@ const removeBackgroundPages = function (manifest) {
const sendToBackgroundPages = function (...args) {
for (const page of Object.values(backgroundPages)) {
page.webContents._sendInternalToAll(...args)
if (!page.webContents.isDestroyed()) {
page.webContents._sendInternalToAll(...args)
}
}
}
@ -161,7 +163,7 @@ ipcMainUtils.handle('CHROME_RUNTIME_CONNECT', function (event, extensionId, conn
}
const page = backgroundPages[extensionId]
if (!page) {
if (!page || page.webContents.isDestroyed()) {
throw new Error(`Connect to unknown extension ${extensionId}`)
}
@ -191,7 +193,7 @@ ipcMainUtils.handle('CHROME_RUNTIME_SEND_MESSAGE', async function (event, extens
}
const page = backgroundPages[extensionId]
if (!page) {
if (!page || page.webContents.isDestroyed()) {
throw new Error(`Connect to unknown extension ${extensionId}`)
}