diff --git a/packages/playwright-core/src/server/browserType.ts b/packages/playwright-core/src/server/browserType.ts index 98a2adec3..b0966041c 100644 --- a/packages/playwright-core/src/server/browserType.ts +++ b/packages/playwright-core/src/server/browserType.ts @@ -155,7 +155,8 @@ export abstract class BrowserType extends SdkObject { await this._createArtifactDirs(options); const tempDirectories: string[] = []; - const artifactsDir = await fs.promises.mkdtemp(path.join(os.tmpdir(), 'playwright-artifacts-')); + const artifactsDir = path.join(os.tmpdir(), 'playwright-artifacts-' + Math.random().toString(36).slice(2)); + await fs.promises.mkdir(artifactsDir, { recursive: true }); tempDirectories.push(artifactsDir); if (userDataDir) { @@ -164,7 +165,8 @@ export abstract class BrowserType extends SdkObject { if (!await existsAsync(userDataDir)) await fs.promises.mkdir(userDataDir, { recursive: true, mode: 0o700 }); } else { - userDataDir = await fs.promises.mkdtemp(path.join(os.tmpdir(), `playwright_${this._name}dev_profile-`)); + userDataDir = path.join(os.tmpdir(), `playwright_${this._name}dev_profile-` + Math.random().toString(36).slice(2)); + await fs.promises.mkdir(userDataDir, { recursive: true }); tempDirectories.push(userDataDir); } await this.prepareUserDataDir(options, userDataDir); diff --git a/packages/playwright-core/src/server/chromium/chromium.ts b/packages/playwright-core/src/server/chromium/chromium.ts index ec9f63d44..8aef15bc8 100644 --- a/packages/playwright-core/src/server/chromium/chromium.ts +++ b/packages/playwright-core/src/server/chromium/chromium.ts @@ -89,7 +89,8 @@ export class Chromium extends BrowserType { else if (headersMap && !Object.keys(headersMap).some(key => key.toLowerCase() === 'user-agent')) headersMap['User-Agent'] = getUserAgent(); - const artifactsDir = await progress.race(fs.promises.mkdtemp(ARTIFACTS_FOLDER)); + const artifactsDir = ARTIFACTS_FOLDER + Math.random().toString(36).slice(2); + await progress.race(fs.promises.mkdir(artifactsDir, { recursive: true })); const doCleanup = async () => { await removeFolders([artifactsDir]); const cb = onClose;