Skip to content

WIP: Support Playwright >= 1.58 (CfT download paths)#1

Merged
benfdking merged 1 commit into
mainfrom
quarylabs-playwright-cft
May 17, 2026
Merged

WIP: Support Playwright >= 1.58 (CfT download paths)#1
benfdking merged 1 commit into
mainfrom
quarylabs-playwright-cft

Conversation

@benfdking
Copy link
Copy Markdown

Starting point for adding Playwright 1.58+ support to our fork. Not ready to merge — this PR exists to host iteration on the CfT (Chrome-for-Testing) browser layout work that blocks sqruff from bumping @playwright/test past 1.57.0.

Starting point

This branch is a direct copy of upstream draft mrmeku/rules_playwright#36 (MatrixFrog:download-paths, head e39e4ed). That PR is a single commit titled "Update download_paths.json to be compatible with newer versions of Playwright" — its author flagged it as "maybe not the ideal long-term fix" and noted it would break older Playwright versions. We're using it as scaffolding, not as a finished implementation.

Why we need this

Playwright 1.58+ made two breaking changes the fork has to absorb before sqruff can update past 1.57.0:

  1. New OS-version-prefixed browser directory: runtime now looks for browsers at ${PLAYWRIGHT_BROWSERS_PATH}/<os>-<arch>/chromium_headless_shell-<rev>/... (e.g. ubuntu24.04-x64/chromium_headless_shell-1223/chrome-headless-shell-linux64/chrome-headless-shell).
  2. Chromium revision bumped 1200 → 1223 and downloads moved from playwright.azureedge.net/builds/chromium/<rev>/... to Chrome-for-Testing URLs at https://cdn.playwright.dev/builds/cft/<browserVersion>/<platform>/chrome[-headless-shell]-<platform>.zip.

rules_playwright 0.5.3 (current BCR) still uses the old azureedge URLs and old layout, so even with playwright_version = "1.60.0" we end up with the 1.57-era binary in the wrong path.

What still needs doing on this branch

  • Confirm download_paths.json is correct for Playwright 1.58 → 1.60 (regenerate from upstream microsoft/playwright's browsers.json if needed).
  • Verify the URL template switches to CfT (cdn.playwright.dev/builds/cft/...) for chromium / chromium-headless-shell on 1.58+ while keeping the old template for <= 1.57 pins, so we don't break existing consumers.
  • Verify the OS-prefixed extraction layout lands the binary where the Playwright runtime expects it (no extra symlinking required).
  • Refresh repositories.bzl / extensions.bzl http_file repo names + sha256s for the new URLs.
  • Validate end-to-end against quarylabs/sqruff via git_override pointed at this branch: bazel test //playground:playwright_test //editors/code:playwright_test on linux x64 (CI matrix) plus a darwin-arm64 smoke test.
  • Once it works, propose the cleaned-up version upstream so we can eventually drop the override.

Refs

@benfdking benfdking force-pushed the quarylabs-playwright-cft branch from e39e4ed to 7c864e0 Compare May 17, 2026 17:04
@benfdking benfdking marked this pull request as ready for review May 17, 2026 17:09
@benfdking benfdking merged commit e5604f8 into main May 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants