Skip to content

Commit

Permalink
fix: FirefoxLauncher should not use BrowserFetcher in puppeteer-core (#…
Browse files Browse the repository at this point in the history
…8920)

* fix: FirefoxLauncher should not use BrowserFetcher in puppeteer-core

Closes #8919

Co-authored-by: Thiago Perrotta <tbperrotta@gmail.com>
  • Loading branch information
OrKoN and thiagowfx committed Sep 8, 2022
1 parent d8830cb commit f2e8de7
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 1 deletion.
28 changes: 28 additions & 0 deletions scripts/test-install.sh
Expand Up @@ -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));
})();
"
4 changes: 3 additions & 1 deletion src/node/FirefoxLauncher.ts
Expand Up @@ -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);
Expand Down

0 comments on commit f2e8de7

Please sign in to comment.