fix(launcher): support relative userDataDir on headless Windows (#6506)

Launching headless with a relative `userDataDir` hangs on Windows. Fix by calling `path.resolve` (idempotent) to add an absolute path instead in `defaultArgs`.

Issues: #3453
This commit is contained in:
Ralf Vogler 2020-10-13 12:59:58 +02:00 committed by GitHub
parent 8fabe32800
commit f3086d7c97
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 4 additions and 3 deletions

View File

@ -189,7 +189,8 @@ class ChromeLauncher implements ProductLauncher {
args = [],
userDataDir = null,
} = options;
if (userDataDir) chromeArguments.push(`--user-data-dir=${userDataDir}`);
if (userDataDir)
chromeArguments.push(`--user-data-dir=${path.resolve(userDataDir)}`);
if (devtools) chromeArguments.push('--auto-open-devtools-for-tabs');
if (headless) {
chromeArguments.push('--headless', '--hide-scrollbars', '--mute-audio');

View File

@ -306,7 +306,7 @@ describe('Launcher specs', function () {
'--headless'
);
expect(puppeteer.defaultArgs({ userDataDir: 'foo' })).toContain(
'--user-data-dir=foo'
`--user-data-dir=${path.resolve('foo')}`
);
} else if (isFirefox) {
expect(puppeteer.defaultArgs()).toContain('--headless');
@ -330,7 +330,7 @@ describe('Launcher specs', function () {
'-profile'
);
expect(puppeteer.defaultArgs({ userDataDir: 'foo' })).toContain(
'foo'
path.resolve('foo')
);
}
});