Skip to content

Support Chrome for Testing (CfT) download URLs used by Playwright >= 1.57 #44

@0patrik

Description

@0patrik

Problem

Playwright 1.57+ switched from Chromium to Chrome for Testing builds. The download URLs changed from:

https://playwright.azureedge.net/builds/chromium/{revision}/chromium-linux.zip

to:

https://cdn.playwright.dev/builds/cft/{browserVersion}/linux64/chrome-linux64.zip

The download_paths.json in rules_playwright (v0.5.4) still uses the old builds/chromium/%s/ pattern. Attempting to use Playwright >= 1.57 with rules_playwright results in 404 errors when Bazel tries to fetch browser binaries:

Error downloading [.../builds/chromium/1208/chromium-linux.zip]:
GET returned 404 The specified blob does not exist.

Expected behavior

rules_playwright should support the new CfT download URL format used by Playwright >= 1.57.

Reference

In playwright-core 1.58.2, the download paths are constructed via a cftUrl() helper:

function cftUrl(suffix) {
  return ({ browserVersion }) => ({
    path: `builds/cft/${browserVersion}/${suffix}`,
    mirrors: ["https://cdn.playwright.dev"]
  });
}

// Example entries:
"ubuntu24.04-x64": cftUrl("linux64/chrome-linux64.zip"),
"mac15-arm64": cftUrl("mac-arm64/chrome-mac-arm64.zip"),

Note: ARM64 Linux still uses the old pattern (builds/chromium/%s/chromium-linux-arm64.zip).

Playwright release notes

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions