diff --git a/lib/renderer/init.js b/lib/renderer/init.js index 2356a81dda..de5bf35509 100644 --- a/lib/renderer/init.js +++ b/lib/renderer/init.js @@ -39,7 +39,13 @@ electron.ipcRenderer.on('ELECTRON_INTERNAL_RENDERER_SYNC_WEB_FRAME_METHOD', (eve electron.ipcRenderer.on('ELECTRON_INTERNAL_RENDERER_ASYNC_WEB_FRAME_METHOD', (event, requestId, method, args) => { const responseCallback = function (result) { - event.sender.send(`ELECTRON_INTERNAL_BROWSER_ASYNC_WEB_FRAME_RESPONSE_${requestId}`, result) + Promise.resolve(result) + .then((resolvedResult) => { + event.sender.send(`ELECTRON_INTERNAL_BROWSER_ASYNC_WEB_FRAME_RESPONSE_${requestId}`, resolvedResult) + }) + .catch((resolvedError) => { + console.error(`An async web frame method (${method}) returned a promise that threw an error: `, resolvedError) + }) } args.push(responseCallback) electron.webFrame[method].apply(electron.webFrame, args)