From 7c54ef0895d24e7caf3f27546ea537418dfa4260 Mon Sep 17 00:00:00 2001 From: Oj Date: Thu, 5 Jan 2023 15:59:16 +0000 Subject: [PATCH] launcher/inject: get browser info first, and always await --- src/launcher/inject.js | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/src/launcher/inject.js b/src/launcher/inject.js index da9020e..f6cd0b8 100644 --- a/src/launcher/inject.js +++ b/src/launcher/inject.js @@ -8,27 +8,21 @@ export default async (CDP, proc, injectionType = 'browser', { browserName } = { if (msg.method === 'Runtime.executionContextCreated') injectIPC(); // ensure IPC injection again }); + const browserInfo = await CDP.sendMessage('Browser.getVersion'); + log('browser:', browserInfo.product); - let browserInfo, sessionId; + const browserEngine = browserInfo.jsVersion.startsWith('1.') ? 'firefox' : 'chromium'; + + let sessionId; if (injectionType === 'browser') { // connected to browser itself, need to get and attach to a target - CDP.sendMessage('Browser.getVersion').then(x => { // get browser info async as we have time while attaching - browserInfo = x; - log('browser:', x.product); - }); - const target = (await CDP.sendMessage('Target.getTargets')).targetInfos[0]; sessionId = (await CDP.sendMessage('Target.attachToTarget', { targetId: target.targetId, flatten: true })).sessionId; - } else { // already attached to target - browserInfo = await CDP.sendMessage('Browser.getVersion'); - log('browser:', browserInfo.product); } - const browserEngine = browserInfo.jsVersion.startsWith('1.') ? 'firefox' : 'chromium'; - CDP.sendMessage('Runtime.enable', {}, sessionId); // enable runtime API