From 124fbdbd7427dda8512be557e387a70eac38bd94 Mon Sep 17 00:00:00 2001 From: Samuel Attard Date: Sun, 9 Oct 2016 11:51:46 +1100 Subject: [PATCH] Allow web frame methods to return async promises --- lib/renderer/init.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) 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)