Skip to content

Commit

Permalink
fix: launching firefox with executable path should not expect project…
Browse files Browse the repository at this point in the history
…Root

Closes #8919
  • Loading branch information
OrKoN committed Sep 8, 2022
1 parent 7a2d9df commit dca838d
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 dca838d

Please sign in to comment.