Issue 1:
System info

Playwright Version: [v1.34.3]

Operating System: [Windows 10, Debian 11]

Browser: [All]

Other info: I use remote.ssh extension on my Debian 11. X Server send Display information to my Windows via VcXsrv or X410

Config file

default

Test file (self-contained)

default

Steps

Run in UI mode via remote ssh connection

Click Open in VS Code icon on any test

Actual/Expected

The UI send a link to xdg-open and receive my Windows the following link format:

vscode-remote://ssh-remote+connectionName/path/to/example.spec.ts/vscode:/file//path/to/example.spec.ts:7:17

It's wrong, Windows cannot recognize vscode-remote url shema.

The correct url format is the following:

vscode://vscode-remote/ssh-remote+connectionName/path/to/example.spec.ts:7:17

Issue 2:
System info

Playwright Version: v1.32.1

Operating System: macOS-latest (GA)

Browser: WebKit

Other info:

Source code

I provided exact source code that allows reproducing the issue locally.

Link to the GitHub repository with the repro

MRE: https://github.com/johny-ss/actions

or

Github action file

name: Tests

on:
push:
branches: [main]
pull_request:
branches: [main]

# Cancel current job when pushing new commit into the PR
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
e2e:
# timeout-minutes: 60
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false # keep running other jobs if one fails
matrix:
os: [macos-latest, windows-latest, ubuntu-latest]
browser: [chromium, firefox]
include:
- os: macos-latest
browser: webkit
env:
# Playwright uses different paths on different OS's.
# To make it work cross-platform, we need to set the path manually.
# Alternatively, `PLAYWRIGHT_BROWSERS_PATH=0` install binaries in node_modules
PLAYWRIGHT_BROWSERS_PATH: ${{ github.workspace }}/ms-playwright
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 16

# installing dependencies with cache
- name: Cache dependencies
id: cache-deps
uses: actions/cache@v3
with:
path: ./node_modules
key: modules-${{ hashFiles('package-lock.json') }}
- name: Install dependencies
if: steps.cache-deps.outputs.cache-hit != 'true'
run: npm ci --ignore-scripts

# installing browsers with cache
- name: Store Playwright's Version
shell: bash #necessary for it to work on Windows, which uses powershell by default
run: echo "PLAYWRIGHT_VERSION=$(node -p 'require("@playwright/test/package.json").version')" >> $GITHUB_OUTPUT
id: playwright-version
- name: Cache browsers
id: cache-browsers
uses: actions/cache@v3
with:
key: ${{ runner.os }}-${{ matrix.browser }}-playwright-${{ steps.playwright-version.outputs.PLAYWRIGHT_VERSION }}
path: ${{ env.PLAYWRIGHT_BROWSERS_PATH }}
- name: Download browsers
if: steps.cache-browsers.outputs.cache-hit != 'true'
run: npx playwright install --with-deps ${{ matrix.browser }}

# running tests
- run: npx playwright test --project=${{ matrix.browser }}
- name: Upload Artifacts
if: failure()
uses: actions/upload-artifact@v3
with:
name: ${{ matrix.browser }}-${{ matrix.os }}-test-results
path: test-results/
retention-days: 7

Test file (self-contained): It can be any test, it doesn't matter

Steps

Run the github actions of my repository. macOS-webkit throws error, and if you run again ubunto-webkit (now with cache), also throw error.

Expected

The test on webkit should succeed even when the browser and its dependencies are cached.

Actual

In ubuntu-webkit, if the browser IS NOT cached, the execution of the tests gives this error:

in macOS webkit, the execution of the tests gives the following error:

My guess is that the PLAYWRIGHT_BROWSERS_PATH environment variable doesn't work well with webkit, because if I remove it and don't cache at all, the tests work fine.

note: If you want to reproduce in another repo, you can change the --project flag to --browser to avoid plawright.config.ts.