diff --git a/lib/Browser.js b/lib/Browser.js index 4a136ed5..7f688faa 100644 --- a/lib/Browser.js +++ b/lib/Browser.js @@ -58,11 +58,11 @@ class Browser { `--user-data-dir=${this._userDataDir}`, ]); if (typeof options.headless !== 'boolean' || options.headless) { - this._chromeArguments.push(...[ - `--headless`, - `--disable-gpu`, - `--hide-scrollbars`, - ]); + this._chromeArguments.push( + `--headless`, + `--disable-gpu`, + `--hide-scrollbars` + ); } if (typeof options.executablePath === 'string') { this._chromeExecutable = options.executablePath; @@ -96,7 +96,7 @@ class Browser { } /** - * @return {string} + * @return {!Promise} */ async version() { await this._ensureChromeIsRunning(); @@ -104,12 +104,18 @@ class Browser { return version.Browser; } + /** + * @return {!Promise} + */ async _ensureChromeIsRunning() { if (!this._launchPromise) this._launchPromise = this._launchChrome(); return this._launchPromise; } + /** + * @return {!Promise} + */ async _launchChrome() { this._chromeProcess = childProcess.spawn(this._chromeExecutable, this._chromeArguments, {}); let stderr = ''; @@ -146,24 +152,27 @@ class Browser { module.exports = Browser; helper.tracePublicAPI(Browser); +/** + * @param {!ChildProcess} chromeProcess + * @return {!Promise} + */ function waitForRemoteDebuggingPort(chromeProcess) { - const rl = readline.createInterface({ input: chromeProcess.stderr }); - let fulfill; - let promise = new Promise(x => fulfill = x); - rl.on('line', onLine); - rl.once('close', () => fulfill(-1)); - return promise; + return new Promise(fulfill => { + const rl = readline.createInterface({ input: chromeProcess.stderr }); + rl.on('line', onLine); + rl.once('close', () => fulfill(-1)); - /** - * @param {string} line - */ - function onLine(line) { - const match = line.match(/^DevTools listening on .*:([\d]+)$/); - if (!match) - return; - rl.removeListener('line', onLine); - fulfill(Number.parseInt(match[1], 10)); - } + /** + * @param {string} line + */ + function onLine(line) { + const match = line.match(/^DevTools listening on .*:(\d+)$/); + if (!match) + return; + rl.removeListener('line', onLine); + fulfill(Number.parseInt(match[1], 10)); + } + }); } class TaskQueue { @@ -172,11 +181,11 @@ class TaskQueue { } /** - * @param {function():!Promise} task + * @param {function()} task * @return {!Promise} */ postTask(task) { - let result = this._chain.then(task); + const result = this._chain.then(task); this._chain = result.catch(() => {}); return result; }