From 3bb8be88bb910916254a30c940f331ab1d84e550 Mon Sep 17 00:00:00 2001 From: CanadaHonk Date: Thu, 19 Jan 2023 21:09:56 +0000 Subject: [PATCH] index: pass browserType as extra --- src/api/idle.js | 6 +++--- src/index.js | 3 ++- src/launcher/inject.js | 14 ++++++-------- src/lib/ipc.js | 4 ++-- 4 files changed, 13 insertions(+), 14 deletions(-) diff --git a/src/api/idle.js b/src/api/idle.js index 3a25ed5..7cbd065 100644 --- a/src/api/idle.js +++ b/src/api/idle.js @@ -3,9 +3,9 @@ import { log } from '../lib/logger.js'; const killProcesses = async pids => new Promise(resolve => exec(process.platform !== 'win32' ? `kill -9 ${pids.join(' ')}` : `taskkill /F ${pids.map(x => `/PID ${x}`).join(' ')}`, (e, out) => resolve(out))); -export default async (CDP, { browserEngine, closeHandlers }) => { - if (browserEngine !== 'chromium') { // current implementation is for chromium-based only - const warning = () => log(`Warning: Idle API is currently only for Chromium (running on ${browserEngine})`); +export default async (CDP, { browserType, closeHandlers }) => { + if (browserType !== 'chromium') { // current implementation is for chromium-based only + const warning = () => log(`Warning: Idle API is currently only for Chromium (running on ${browserType})`); return { hibernate: warning, diff --git a/src/index.js b/src/index.js index bac024a..e3e06b2 100644 --- a/src/index.js +++ b/src/index.js @@ -208,7 +208,8 @@ const startBrowser = async (url, { windowSize, forceBrowser, forceEngine }) => { url: openingLocal ? basePath : url, localUrl, openingLocal, - closeHandlers + closeHandlers, + browserType }); return Window; diff --git a/src/launcher/inject.js b/src/launcher/inject.js index cb30922..e13c942 100644 --- a/src/launcher/inject.js +++ b/src/launcher/inject.js @@ -25,7 +25,7 @@ const acquireTarget = async (CDP, filter = () => true) => { })).sessionId; }; -export default async (CDP, proc, injectionType = 'browser', { browserName, openingLocal, localUrl, url, closeHandlers }) => { +export default async (CDP, proc, injectionType = 'browser', { browserName, browserType, openingLocal, localUrl, url, closeHandlers }) => { let pageLoadCallback, pageLoadPromise = new Promise(res => pageLoadCallback = res); let frameLoadCallback = () => {}, onWindowMessage = () => {}; CDP.onMessage(msg => { @@ -42,12 +42,10 @@ export default async (CDP, proc, injectionType = 'browser', { browserName, openi const browserInfo = await CDP.sendMessage('Browser.getVersion'); log('browser:', browserInfo.product); - const browserEngine = browserInfo.jsVersion.startsWith('1.') ? 'firefox' : 'chromium'; - let sessionId; if (injectionType === 'browser') sessionId = await acquireTarget(CDP, target => target.url !== 'about:blank'); - if (openingLocal && browserEngine === 'chromium') await LocalCDP(CDP, { sessionId, localUrl, url }); + if (openingLocal && browserType === 'chromium') await LocalCDP(CDP, { sessionId, localUrl, url }); await CDP.sendMessage('Runtime.enable', {}, sessionId); // enable runtime API @@ -68,7 +66,7 @@ export default async (CDP, proc, injectionType = 'browser', { browserName, openi const [ ipcMessageCallback, injectIPC, IPC ] = await IPCApi({ browserName, browserInfo, - browserEngine + browserType }, { evalInWindow, evalOnNewDocument: source => CDP.sendMessage('Page.addScriptToEvaluateOnNewDocument', { source }, sessionId), @@ -92,8 +90,8 @@ export default async (CDP, proc, injectionType = 'browser', { browserName, openi const versions = { product: generateVersionInfo(browserName, browserInfo.product.split('/')[1]), - engine: generateVersionInfo(browserEngine, browserInfo.product.split('/')[1]), - jsEngine: generateVersionInfo(browserEngine === 'chromium' ? 'v8' : 'spidermonkey', browserInfo.jsVersion) + engine: generateVersionInfo(browserType, browserInfo.product.split('/')[1]), + jsEngine: generateVersionInfo(browserType === 'chromium' ? 'v8' : 'spidermonkey', browserInfo.jsVersion) }; const Window = { @@ -123,7 +121,7 @@ export default async (CDP, proc, injectionType = 'browser', { browserName, openi proc.on('close', Window.close); - Window.idle = await IdleApi(Window.cdp, { browserEngine, closeHandlers }); + Window.idle = await IdleApi(Window.cdp, { browserType, closeHandlers }); Window.controls = await ControlsApi(Window.cdp); return Window; diff --git a/src/lib/ipc.js b/src/lib/ipc.js index e9e05dd..8c14ec8 100644 --- a/src/lib/ipc.js +++ b/src/lib/ipc.js @@ -1,4 +1,4 @@ -export default ({ browserName, browserInfo, browserEngine }, { evalInWindow, evalOnNewDocument, pageLoadPromise }) => { +export default ({ browserName, browserInfo, browserType }, { evalInWindow, evalOnNewDocument, pageLoadPromise }) => { const injection = `(() => { if (window.Gluon) return; let onIPCReply = {}, ipcListeners = {}; @@ -8,7 +8,7 @@ window.Gluon = { builder: '${'GLUGUN_VERSION' === 'G\LUGUN_VERSION' ? 'nothing' : 'Glugun GLUGUN_VERSION'}', node: '${process.versions.node}', browser: '${browserInfo.product.split('/')[1]}', - browserType: '${browserEngine}', + browserType: '${browserType}', product: '${browserName}', js: {