index: pass browserType as extra
This commit is contained in:
parent
c394a571ff
commit
3bb8be88bb
@ -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,
|
||||
|
@ -208,7 +208,8 @@ const startBrowser = async (url, { windowSize, forceBrowser, forceEngine }) => {
|
||||
url: openingLocal ? basePath : url,
|
||||
localUrl,
|
||||
openingLocal,
|
||||
closeHandlers
|
||||
closeHandlers,
|
||||
browserType
|
||||
});
|
||||
|
||||
return Window;
|
||||
|
@ -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;
|
||||
|
@ -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: {
|
||||
|
Loading…
x
Reference in New Issue
Block a user