index: pass browserType as extra

This commit is contained in:
CanadaHonk 2023-01-19 21:09:56 +00:00
parent c394a571ff
commit 3bb8be88bb
4 changed files with 13 additions and 14 deletions

View File

@ -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,

View File

@ -208,7 +208,8 @@ const startBrowser = async (url, { windowSize, forceBrowser, forceEngine }) => {
url: openingLocal ? basePath : url,
localUrl,
openingLocal,
closeHandlers
closeHandlers,
browserType
});
return Window;

View File

@ -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;

View File

@ -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: {