From f2e8de777fc5d547778fdc6cac658add84ed4082 Mon Sep 17 00:00:00 2001 From: Alex Rudenko Date: Thu, 8 Sep 2022 14:45:16 +0200 Subject: [PATCH] fix: FirefoxLauncher should not use BrowserFetcher in puppeteer-core (#8920) * fix: FirefoxLauncher should not use BrowserFetcher in puppeteer-core Closes #8919 Co-authored-by: Thiago Perrotta --- scripts/test-install.sh | 28 ++++++++++++++++++++++++++++ src/node/FirefoxLauncher.ts | 4 +++- 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/scripts/test-install.sh b/scripts/test-install.sh index 15d1a552dee..c7d14e4f40a 100755 --- a/scripts/test-install.sh +++ b/scripts/test-install.sh @@ -127,3 +127,31 @@ echo '{"type":"module"}' >>$TMPDIR/package.json npm install --loglevel silent "${tarball}" node --input-type="module" --eval="import puppeteer from 'puppeteer-core'" node --input-type="module" --eval="import 'puppeteer-core/lib/esm/puppeteer/revisions.js';" + +echo "Testing... Puppeteer Core launch with executablePath" +TMPDIR="$(mktemp -d)" +cd "$TMPDIR" +echo '{"type":"module"}' >> "$TMPDIR/package.json" +npm install --loglevel silent "${tarball}" +# The test tries to launch the node process because +# real browsers are not downloaded by puppeteer-core. +# The expected error is "Failed to launch the browser process" +# so the test verifies that it does not fail for other reasons. +node --input-type="module" --eval=" +import puppeteer from 'puppeteer-core'; +(async () => { + puppeteer.launch({ + product: 'firefox', + executablePath: 'node' + }).catch(error => error.message.includes('Failed to launch the browser process') ? process.exit(0) : process.exit(1)); +})(); +" +node --input-type="module" --eval=" +import puppeteer from 'puppeteer-core'; +(async () => { + puppeteer.launch({ + product: 'chrome', + executablePath: 'node' + }).catch(error => error.message.includes('Failed to launch the browser process') ? process.exit(0) : process.exit(1)); +})(); +" diff --git a/src/node/FirefoxLauncher.ts b/src/node/FirefoxLauncher.ts index c27f1b8d8b3..7f36fb42f01 100644 --- a/src/node/FirefoxLauncher.ts +++ b/src/node/FirefoxLauncher.ts @@ -113,7 +113,9 @@ export class FirefoxLauncher implements ProductLauncher { firefoxArguments.push(userDataDir); } - await this._updateRevision(); + if (!this._isPuppeteerCore) { + await this._updateRevision(); + } let firefoxExecutable = executablePath; if (!executablePath) { const {missingText, executablePath} = resolveExecutablePath(this);