diff --git a/packages/browserless/src/driver.js b/packages/browserless/src/driver.js index 1d60ea37c8..b2edf448b5 100644 --- a/packages/browserless/src/driver.js +++ b/packages/browserless/src/driver.js @@ -49,20 +49,15 @@ const spawn = ({ ...launchOpts } = {}) => puppeteer[mode]({ ignoreHTTPSErrors: true, args, ...launchOpts }) -const getProcess = subprocess => { - if (!subprocess) return - if ('process' in subprocess) return subprocess.process() - if ('pid' in subprocess) return subprocess +const pid = subprocess => { + if ('pid' in subprocess) return subprocess.pid + const browserProcess = 'process' in subprocess ? subprocess.process() : undefined + if (browserProcess === undefined || browserProcess === null) return + return 'pid' in browserProcess ? browserProcess.pid : undefined } -const getPid = input => { - const subprocess = getProcess(input) - return subprocess ? subprocess.pid : undefined -} - -const close = async (input, { signal = 'SIGKILL', ...debugOpts } = {}) => { - const subprocess = getProcess(input) - if (!subprocess) return +const close = async (subprocess, { signal = 'SIGKILL', ...debugOpts } = {}) => { + if (pid(subprocess) === undefined) return // It's necessary to call `browser.close` for removing temporal files associated // and remove listeners attached to the main process; check @@ -74,4 +69,4 @@ const close = async (input, { signal = 'SIGKILL', ...debugOpts } = {}) => { return { pid: subprocess.pid } } -module.exports = { spawn, getPid, getProcess, close, defaultArgs } +module.exports = { spawn, pid, close, defaultArgs } diff --git a/packages/browserless/src/index.js b/packages/browserless/src/index.js index 45e29a8985..4492dce644 100644 --- a/packages/browserless/src/index.js +++ b/packages/browserless/src/index.js @@ -46,11 +46,9 @@ module.exports = ({ timeout: globalTimeout = 30000, ...launchOpts } = {}) => { promise.then(async browser => { browser.once('disconnected', getBrowser) - const pid = driver.getPid(browser) - debug('spawn', { respawn: isRespawn, - pid: pid || launchOpts.mode, + pid: driver.pid(browser) || launchOpts.mode, version: await browser.version() }) }) @@ -99,7 +97,7 @@ module.exports = ({ timeout: globalTimeout = 30000, ...launchOpts } = {}) => { getBrowserContext() ]) const page = await browserContext.newPage() - debug('createPage', { pid: driver.getPid(browserProcess), id: browserContext._id }) + debug('createPage', { pid: driver.pid(browserProcess), id: browserContext._id }) return page } @@ -110,7 +108,7 @@ module.exports = ({ timeout: globalTimeout = 30000, ...launchOpts } = {}) => { getBrowserContext(), pReflect(page.close()) ]) - debug('closePage', { pid: driver.getPid(browserProcess), id: browserContext._id }) + debug('closePage', { pid: driver.pid(browserProcess), id: browserContext._id }) } } @@ -170,7 +168,7 @@ module.exports = ({ timeout: globalTimeout = 30000, ...launchOpts } = {}) => { const id = browserContext._id await pReflect(browserContext.close()) - debug('destroyContext', { pid: driver.getPid(browserProcess), id }) + debug('destroyContext', { pid: driver.pid(browserProcess), id }) } return {