From 2fca5e7740cf629263aeb71838c8aa771b64aa96 Mon Sep 17 00:00:00 2001 From: CanadaHonk Date: Sat, 7 Jan 2023 17:08:39 +0000 Subject: [PATCH] launcher/eval: better error handling --- src/launcher/inject.js | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/launcher/inject.js b/src/launcher/inject.js index 5487048..79c6104 100644 --- a/src/launcher/inject.js +++ b/src/launcher/inject.js @@ -35,10 +35,15 @@ export default async (CDP, proc, injectionType = 'browser', { browserName } = { name: '_gluonSend' }, sessionId); - const evalInWindow = async func => (await CDP.sendMessage(`Runtime.evaluate`, { - expression: typeof func === 'string' ? func : `(${func.toString()})()` - }, sessionId)).result.value; + const evalInWindow = async func => { + const reply = await CDP.sendMessage(`Runtime.evaluate`, { + expression: typeof func === 'string' ? func : `(${func.toString()})()` + }, sessionId); + if (reply.exceptionDetails) return new Error(reply.exceptionDetails.text); + + return reply.result?.value ?? reply; + }; const [ ipcMessageCallback, injectIPC, IPC ] = await IPCApi({ browserName, @@ -49,7 +54,6 @@ export default async (CDP, proc, injectionType = 'browser', { browserName } = { evalOnNewDocument: source => CDP.sendMessage('Page.addScriptToEvaluateOnNewDocument', { source }, sessionId), pageLoadPromise: new Promise(res => frameLoadCallback = res) }); - onWindowMessage = ipcMessageCallback; log('finished setup');