From 5d96c39cc3da215541fae0fd3f2c506792d30838 Mon Sep 17 00:00:00 2001 From: Sean Larkin Date: Mon, 2 Feb 2026 16:56:17 -0800 Subject: [PATCH 1/2] fix: normalize temporary directory path handling for remote environments --- .../src/extension.ts | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/vscode-extensions/playwright-local-browser-server-vscode-extension/src/extension.ts b/vscode-extensions/playwright-local-browser-server-vscode-extension/src/extension.ts index 1b776e7fe77..f028a840d54 100644 --- a/vscode-extensions/playwright-local-browser-server-vscode-extension/src/extension.ts +++ b/vscode-extensions/playwright-local-browser-server-vscode-extension/src/extension.ts @@ -40,16 +40,23 @@ const VSCODE_SETTINGS_EXTENSION_FILTER: string = `@ext:${EXTENSION_ID}`; async function writeExtensionInstalledFileAsync(terminal: ITerminal): Promise { try { // If on a remote environment, write a file to os.tempdir() using workspace fs - let tempDir: string; + let fileUri: vscode.Uri; if (vscode.env.remoteName) { - tempDir = await runWorkspaceCommandAsync({ + const markerPrefix: string = '<<>>'; + const markerSuffix: string = '<<>>'; + const output: string = await runWorkspaceCommandAsync({ terminalOptions: { name: 'playwright-local-browser-server', hideFromUser: true }, - commandLine: `node -p "require('node:os').tmpdir()"`, + commandLine: `node -p "'${markerPrefix}' + require('node:os').tmpdir() + '${markerSuffix}'"`, terminal }); + const tempDir: string = output.slice( + output.indexOf(markerPrefix) + markerPrefix.length, + output.indexOf(markerSuffix) + ); + // For remote environments, use the vscode-remote scheme // The workspace folder should have the correct scheme already const workspaceFolder: vscode.WorkspaceFolder | undefined = vscode.workspace.workspaceFolders?.[0]; From 0d41d689525f25696239a1afc89261cd97971de8 Mon Sep 17 00:00:00 2001 From: Sean Larkin Date: Mon, 2 Feb 2026 17:10:14 -0800 Subject: [PATCH 2/2] fix: use the more accurate logic --- .../src/extension.ts | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/vscode-extensions/playwright-local-browser-server-vscode-extension/src/extension.ts b/vscode-extensions/playwright-local-browser-server-vscode-extension/src/extension.ts index f028a840d54..251dac4e6e4 100644 --- a/vscode-extensions/playwright-local-browser-server-vscode-extension/src/extension.ts +++ b/vscode-extensions/playwright-local-browser-server-vscode-extension/src/extension.ts @@ -42,6 +42,7 @@ async function writeExtensionInstalledFileAsync(terminal: ITerminal): Promise startIndex) { + tempDir = output.substring(startIndex + markerPrefix.length, endIndex).trim(); + } else { + throw new Error('Failed to parse temp directory from command output'); + } // For remote environments, use the vscode-remote scheme // The workspace folder should have the correct scheme already