From 68fd0e4e9335825b91233de19dff4af133387cd3 Mon Sep 17 00:00:00 2001 From: Dmitry Gozman Date: Wed, 15 Jul 2026 11:05:38 +0100 Subject: [PATCH] chore: remove debian11 browser builds Also cleanup builds for old mac versions. --- .gitignore | 1 + packages/playwright-core/browsers.json | 8 +- .../src/server/registry/index.ts | 168 ++++++------- .../src/server/registry/nativeDeps.ts | 225 ------------------ .../src/server/webkit/wkPage.ts | 7 +- packages/utils/hostPlatform.ts | 29 ++- 6 files changed, 103 insertions(+), 335 deletions(-) diff --git a/.gitignore b/.gitignore index ee3c339313e6a..df4ab0745589b 100644 --- a/.gitignore +++ b/.gitignore @@ -41,3 +41,4 @@ test-results playwright.env /firefox/ .playwright/ +.npmrc diff --git a/packages/playwright-core/browsers.json b/packages/playwright-core/browsers.json index cdb17ffb3e102..1e6400f84e2a7 100644 --- a/packages/playwright-core/browsers.json +++ b/packages/playwright-core/browsers.json @@ -50,8 +50,6 @@ "revisionOverrides": { "mac14": "2251", "mac14-arm64": "2251", - "debian11-x64": "2105", - "debian11-arm64": "2105", "ubuntu20.04-x64": "2092", "ubuntu20.04-arm64": "2092" }, @@ -61,11 +59,7 @@ { "name": "ffmpeg", "revision": "1011", - "installByDefault": true, - "revisionOverrides": { - "mac12": "1010", - "mac12-arm64": "1010" - } + "installByDefault": true }, { "name": "winldd", diff --git a/packages/playwright-core/src/server/registry/index.ts b/packages/playwright-core/src/server/registry/index.ts index 1d843a9ff7ae8..2b6e0141a7689 100644 --- a/packages/playwright-core/src/server/registry/index.ts +++ b/packages/playwright-core/src/server/registry/index.ts @@ -155,21 +155,21 @@ const DOWNLOAD_PATHS: Record = { 'ubuntu22.04-arm64': 'builds/chromium/%s/chromium-linux-arm64.zip', 'ubuntu24.04-arm64': 'builds/chromium/%s/chromium-linux-arm64.zip', 'ubuntu26.04-arm64': 'builds/chromium/%s/chromium-linux-arm64.zip', - 'debian11-x64': cftUrl('linux64/chrome-linux64.zip'), - 'debian11-arm64': 'builds/chromium/%s/chromium-linux-arm64.zip', + 'debian11-x64': undefined, + 'debian11-arm64': undefined, 'debian12-x64': cftUrl('linux64/chrome-linux64.zip'), 'debian12-arm64': 'builds/chromium/%s/chromium-linux-arm64.zip', 'debian13-x64': cftUrl('linux64/chrome-linux64.zip'), 'debian13-arm64': 'builds/chromium/%s/chromium-linux-arm64.zip', - 'mac10.13': cftUrl('mac-x64/chrome-mac-x64.zip'), - 'mac10.14': cftUrl('mac-x64/chrome-mac-x64.zip'), - 'mac10.15': cftUrl('mac-x64/chrome-mac-x64.zip'), - 'mac11': cftUrl('mac-x64/chrome-mac-x64.zip'), - 'mac11-arm64': cftUrl('mac-arm64/chrome-mac-arm64.zip'), - 'mac12': cftUrl('mac-x64/chrome-mac-x64.zip'), - 'mac12-arm64': cftUrl('mac-arm64/chrome-mac-arm64.zip'), - 'mac13': cftUrl('mac-x64/chrome-mac-x64.zip'), - 'mac13-arm64': cftUrl('mac-arm64/chrome-mac-arm64.zip'), + 'mac10.13': undefined, + 'mac10.14': undefined, + 'mac10.15': undefined, + 'mac11': undefined, + 'mac11-arm64': undefined, + 'mac12': undefined, + 'mac12-arm64': undefined, + 'mac13': undefined, + 'mac13-arm64': undefined, 'mac14': cftUrl('mac-x64/chrome-mac-x64.zip'), 'mac14-arm64': cftUrl('mac-arm64/chrome-mac-arm64.zip'), 'mac15': cftUrl('mac-x64/chrome-mac-x64.zip'), @@ -190,8 +190,8 @@ const DOWNLOAD_PATHS: Record = { 'ubuntu22.04-arm64': 'builds/chromium/%s/chromium-headless-shell-linux-arm64.zip', 'ubuntu24.04-arm64': 'builds/chromium/%s/chromium-headless-shell-linux-arm64.zip', 'ubuntu26.04-arm64': 'builds/chromium/%s/chromium-headless-shell-linux-arm64.zip', - 'debian11-x64': cftUrl('linux64/chrome-headless-shell-linux64.zip'), - 'debian11-arm64': 'builds/chromium/%s/chromium-headless-shell-linux-arm64.zip', + 'debian11-x64': undefined, + 'debian11-arm64': undefined, 'debian12-x64': cftUrl('linux64/chrome-headless-shell-linux64.zip'), 'debian12-arm64': 'builds/chromium/%s/chromium-headless-shell-linux-arm64.zip', 'debian13-x64': cftUrl('linux64/chrome-headless-shell-linux64.zip'), @@ -199,12 +199,12 @@ const DOWNLOAD_PATHS: Record = { 'mac10.13': undefined, 'mac10.14': undefined, 'mac10.15': undefined, - 'mac11': cftUrl('mac-x64/chrome-headless-shell-mac-x64.zip'), - 'mac11-arm64': cftUrl('mac-arm64/chrome-headless-shell-mac-arm64.zip'), - 'mac12': cftUrl('mac-x64/chrome-headless-shell-mac-x64.zip'), - 'mac12-arm64': cftUrl('mac-arm64/chrome-headless-shell-mac-arm64.zip'), - 'mac13': cftUrl('mac-x64/chrome-headless-shell-mac-x64.zip'), - 'mac13-arm64': cftUrl('mac-arm64/chrome-headless-shell-mac-arm64.zip'), + 'mac11': undefined, + 'mac11-arm64': undefined, + 'mac12': undefined, + 'mac12-arm64': undefined, + 'mac13': undefined, + 'mac13-arm64': undefined, 'mac14': cftUrl('mac-x64/chrome-headless-shell-mac-x64.zip'), 'mac14-arm64': cftUrl('mac-arm64/chrome-headless-shell-mac-arm64.zip'), 'mac15': cftUrl('mac-x64/chrome-headless-shell-mac-x64.zip'), @@ -225,21 +225,21 @@ const DOWNLOAD_PATHS: Record = { 'ubuntu22.04-arm64': 'builds/chromium-tip-of-tree/%s/chromium-tip-of-tree-linux-arm64.zip', 'ubuntu24.04-arm64': 'builds/chromium-tip-of-tree/%s/chromium-tip-of-tree-linux-arm64.zip', 'ubuntu26.04-arm64': 'builds/chromium-tip-of-tree/%s/chromium-tip-of-tree-linux-arm64.zip', - 'debian11-x64': cftUrl('linux64/chrome-linux64.zip'), - 'debian11-arm64': 'builds/chromium-tip-of-tree/%s/chromium-tip-of-tree-linux-arm64.zip', + 'debian11-x64': undefined, + 'debian11-arm64': undefined, 'debian12-x64': cftUrl('linux64/chrome-linux64.zip'), 'debian12-arm64': 'builds/chromium-tip-of-tree/%s/chromium-tip-of-tree-linux-arm64.zip', 'debian13-x64': cftUrl('linux64/chrome-linux64.zip'), 'debian13-arm64': 'builds/chromium-tip-of-tree/%s/chromium-tip-of-tree-linux-arm64.zip', - 'mac10.13': cftUrl('mac-x64/chrome-mac-x64.zip'), - 'mac10.14': cftUrl('mac-x64/chrome-mac-x64.zip'), - 'mac10.15': cftUrl('mac-x64/chrome-mac-x64.zip'), - 'mac11': cftUrl('mac-x64/chrome-mac-x64.zip'), - 'mac11-arm64': cftUrl('mac-arm64/chrome-mac-arm64.zip'), - 'mac12': cftUrl('mac-x64/chrome-mac-x64.zip'), - 'mac12-arm64': cftUrl('mac-arm64/chrome-mac-arm64.zip'), - 'mac13': cftUrl('mac-x64/chrome-mac-x64.zip'), - 'mac13-arm64': cftUrl('mac-arm64/chrome-mac-arm64.zip'), + 'mac10.13': undefined, + 'mac10.14': undefined, + 'mac10.15': undefined, + 'mac11': undefined, + 'mac11-arm64': undefined, + 'mac12': undefined, + 'mac12-arm64': undefined, + 'mac13': undefined, + 'mac13-arm64': undefined, 'mac14': cftUrl('mac-x64/chrome-mac-x64.zip'), 'mac14-arm64': cftUrl('mac-arm64/chrome-mac-arm64.zip'), 'mac15': cftUrl('mac-x64/chrome-mac-x64.zip'), @@ -260,8 +260,8 @@ const DOWNLOAD_PATHS: Record = { 'ubuntu22.04-arm64': 'builds/chromium-tip-of-tree/%s/chromium-tip-of-tree-headless-shell-linux-arm64.zip', 'ubuntu24.04-arm64': 'builds/chromium-tip-of-tree/%s/chromium-tip-of-tree-headless-shell-linux-arm64.zip', 'ubuntu26.04-arm64': 'builds/chromium-tip-of-tree/%s/chromium-tip-of-tree-headless-shell-linux-arm64.zip', - 'debian11-x64': cftUrl('linux64/chrome-headless-shell-linux64.zip'), - 'debian11-arm64': 'builds/chromium-tip-of-tree/%s/chromium-tip-of-tree-headless-shell-linux-arm64.zip', + 'debian11-x64': undefined, + 'debian11-arm64': undefined, 'debian12-x64': cftUrl('linux64/chrome-headless-shell-linux64.zip'), 'debian12-arm64': 'builds/chromium-tip-of-tree/%s/chromium-tip-of-tree-headless-shell-linux-arm64.zip', 'debian13-x64': cftUrl('linux64/chrome-headless-shell-linux64.zip'), @@ -269,12 +269,12 @@ const DOWNLOAD_PATHS: Record = { 'mac10.13': undefined, 'mac10.14': undefined, 'mac10.15': undefined, - 'mac11': cftUrl('mac-x64/chrome-headless-shell-mac-x64.zip'), - 'mac11-arm64': cftUrl('mac-arm64/chrome-headless-shell-mac-arm64.zip'), - 'mac12': cftUrl('mac-x64/chrome-headless-shell-mac-x64.zip'), - 'mac12-arm64': cftUrl('mac-arm64/chrome-headless-shell-mac-arm64.zip'), - 'mac13': cftUrl('mac-x64/chrome-headless-shell-mac-x64.zip'), - 'mac13-arm64': cftUrl('mac-arm64/chrome-headless-shell-mac-arm64.zip'), + 'mac11': undefined, + 'mac11-arm64': undefined, + 'mac12': undefined, + 'mac12-arm64': undefined, + 'mac13': undefined, + 'mac13-arm64': undefined, 'mac14': cftUrl('mac-x64/chrome-headless-shell-mac-x64.zip'), 'mac14-arm64': cftUrl('mac-arm64/chrome-headless-shell-mac-arm64.zip'), 'mac15': cftUrl('mac-x64/chrome-headless-shell-mac-x64.zip'), @@ -295,21 +295,21 @@ const DOWNLOAD_PATHS: Record = { 'ubuntu22.04-arm64': 'builds/firefox/%s/firefox-ubuntu-22.04-arm64.zip', 'ubuntu24.04-arm64': 'builds/firefox/%s/firefox-ubuntu-24.04-arm64.zip', 'ubuntu26.04-arm64': 'builds/firefox/%s/firefox-ubuntu-24.04-arm64.zip', - 'debian11-x64': 'builds/firefox/%s/firefox-debian-11.zip', - 'debian11-arm64': 'builds/firefox/%s/firefox-debian-11-arm64.zip', + 'debian11-x64': undefined, + 'debian11-arm64': undefined, 'debian12-x64': 'builds/firefox/%s/firefox-debian-12.zip', 'debian12-arm64': 'builds/firefox/%s/firefox-debian-12-arm64.zip', 'debian13-x64': 'builds/firefox/%s/firefox-debian-13.zip', 'debian13-arm64': 'builds/firefox/%s/firefox-debian-13-arm64.zip', - 'mac10.13': 'builds/firefox/%s/firefox-mac.zip', - 'mac10.14': 'builds/firefox/%s/firefox-mac.zip', - 'mac10.15': 'builds/firefox/%s/firefox-mac.zip', - 'mac11': 'builds/firefox/%s/firefox-mac.zip', - 'mac11-arm64': 'builds/firefox/%s/firefox-mac-arm64.zip', - 'mac12': 'builds/firefox/%s/firefox-mac.zip', - 'mac12-arm64': 'builds/firefox/%s/firefox-mac-arm64.zip', - 'mac13': 'builds/firefox/%s/firefox-mac.zip', - 'mac13-arm64': 'builds/firefox/%s/firefox-mac-arm64.zip', + 'mac10.13': undefined, + 'mac10.14': undefined, + 'mac10.15': undefined, + 'mac11': undefined, + 'mac11-arm64': undefined, + 'mac12': undefined, + 'mac12-arm64': undefined, + 'mac13': undefined, + 'mac13-arm64': undefined, 'mac14': 'builds/firefox/%s/firefox-mac.zip', 'mac14-arm64': 'builds/firefox/%s/firefox-mac-arm64.zip', 'mac15': 'builds/firefox/%s/firefox-mac.zip', @@ -330,21 +330,21 @@ const DOWNLOAD_PATHS: Record = { 'ubuntu22.04-arm64': 'builds/firefox-beta/%s/firefox-beta-ubuntu-22.04-arm64.zip', 'ubuntu24.04-arm64': 'builds/firefox-beta/%s/firefox-beta-ubuntu-24.04-arm64.zip', 'ubuntu26.04-arm64': 'builds/firefox-beta/%s/firefox-beta-ubuntu-24.04-arm64.zip', - 'debian11-x64': 'builds/firefox-beta/%s/firefox-beta-debian-11.zip', - 'debian11-arm64': 'builds/firefox-beta/%s/firefox-beta-debian-11-arm64.zip', + 'debian11-x64': undefined, + 'debian11-arm64': undefined, 'debian12-x64': 'builds/firefox-beta/%s/firefox-beta-debian-12.zip', 'debian12-arm64': 'builds/firefox-beta/%s/firefox-beta-debian-12-arm64.zip', 'debian13-x64': 'builds/firefox-beta/%s/firefox-beta-debian-12.zip', 'debian13-arm64': 'builds/firefox-beta/%s/firefox-beta-debian-12-arm64.zip', - 'mac10.13': 'builds/firefox-beta/%s/firefox-beta-mac.zip', - 'mac10.14': 'builds/firefox-beta/%s/firefox-beta-mac.zip', - 'mac10.15': 'builds/firefox-beta/%s/firefox-beta-mac.zip', - 'mac11': 'builds/firefox-beta/%s/firefox-beta-mac.zip', - 'mac11-arm64': 'builds/firefox-beta/%s/firefox-beta-mac-arm64.zip', - 'mac12': 'builds/firefox-beta/%s/firefox-beta-mac.zip', - 'mac12-arm64': 'builds/firefox-beta/%s/firefox-beta-mac-arm64.zip', - 'mac13': 'builds/firefox-beta/%s/firefox-beta-mac.zip', - 'mac13-arm64': 'builds/firefox-beta/%s/firefox-beta-mac-arm64.zip', + 'mac10.13': undefined, + 'mac10.14': undefined, + 'mac10.15': undefined, + 'mac11': undefined, + 'mac11-arm64': undefined, + 'mac12': undefined, + 'mac12-arm64': undefined, + 'mac13': undefined, + 'mac13-arm64': undefined, 'mac14': 'builds/firefox-beta/%s/firefox-beta-mac.zip', 'mac14-arm64': 'builds/firefox-beta/%s/firefox-beta-mac-arm64.zip', 'mac15': 'builds/firefox-beta/%s/firefox-beta-mac.zip', @@ -365,8 +365,8 @@ const DOWNLOAD_PATHS: Record = { 'ubuntu22.04-arm64': 'builds/webkit/%s/webkit-ubuntu-22.04-arm64.zip', 'ubuntu24.04-arm64': 'builds/webkit/%s/webkit-ubuntu-24.04-arm64.zip', 'ubuntu26.04-arm64': 'builds/webkit/%s/webkit-ubuntu-26.04-arm64.zip', - 'debian11-x64': 'builds/webkit/%s/webkit-debian-11.zip', - 'debian11-arm64': 'builds/webkit/%s/webkit-debian-11-arm64.zip', + 'debian11-x64': undefined, + 'debian11-arm64': undefined, 'debian12-x64': 'builds/webkit/%s/webkit-debian-12.zip', 'debian12-arm64': 'builds/webkit/%s/webkit-debian-12-arm64.zip', 'debian13-x64': 'builds/webkit/%s/webkit-debian-13.zip', @@ -400,21 +400,21 @@ const DOWNLOAD_PATHS: Record = { 'ubuntu22.04-arm64': 'builds/ffmpeg/%s/ffmpeg-linux-arm64.zip', 'ubuntu24.04-arm64': 'builds/ffmpeg/%s/ffmpeg-linux-arm64.zip', 'ubuntu26.04-arm64': 'builds/ffmpeg/%s/ffmpeg-linux-arm64.zip', - 'debian11-x64': 'builds/ffmpeg/%s/ffmpeg-linux.zip', - 'debian11-arm64': 'builds/ffmpeg/%s/ffmpeg-linux-arm64.zip', + 'debian11-x64': undefined, + 'debian11-arm64': undefined, 'debian12-x64': 'builds/ffmpeg/%s/ffmpeg-linux.zip', 'debian12-arm64': 'builds/ffmpeg/%s/ffmpeg-linux-arm64.zip', 'debian13-x64': 'builds/ffmpeg/%s/ffmpeg-linux.zip', 'debian13-arm64': 'builds/ffmpeg/%s/ffmpeg-linux-arm64.zip', - 'mac10.13': 'builds/ffmpeg/%s/ffmpeg-mac.zip', - 'mac10.14': 'builds/ffmpeg/%s/ffmpeg-mac.zip', - 'mac10.15': 'builds/ffmpeg/%s/ffmpeg-mac.zip', - 'mac11': 'builds/ffmpeg/%s/ffmpeg-mac.zip', - 'mac11-arm64': 'builds/ffmpeg/%s/ffmpeg-mac-arm64.zip', - 'mac12': 'builds/ffmpeg/%s/ffmpeg-mac.zip', - 'mac12-arm64': 'builds/ffmpeg/%s/ffmpeg-mac-arm64.zip', - 'mac13': 'builds/ffmpeg/%s/ffmpeg-mac.zip', - 'mac13-arm64': 'builds/ffmpeg/%s/ffmpeg-mac-arm64.zip', + 'mac10.13': undefined, + 'mac10.14': undefined, + 'mac10.15': undefined, + 'mac11': undefined, + 'mac11-arm64': undefined, + 'mac12': undefined, + 'mac12-arm64': undefined, + 'mac13': undefined, + 'mac13-arm64': undefined, 'mac14': 'builds/ffmpeg/%s/ffmpeg-mac.zip', 'mac14-arm64': 'builds/ffmpeg/%s/ffmpeg-mac-arm64.zip', 'mac15': 'builds/ffmpeg/%s/ffmpeg-mac.zip', @@ -470,21 +470,21 @@ const DOWNLOAD_PATHS: Record = { 'ubuntu22.04-arm64': 'builds/android/%s/android.zip', 'ubuntu24.04-arm64': 'builds/android/%s/android.zip', 'ubuntu26.04-arm64': 'builds/android/%s/android.zip', - 'debian11-x64': 'builds/android/%s/android.zip', - 'debian11-arm64': 'builds/android/%s/android.zip', + 'debian11-x64': undefined, + 'debian11-arm64': undefined, 'debian12-x64': 'builds/android/%s/android.zip', 'debian12-arm64': 'builds/android/%s/android.zip', 'debian13-x64': 'builds/android/%s/android.zip', 'debian13-arm64': 'builds/android/%s/android.zip', - 'mac10.13': 'builds/android/%s/android.zip', - 'mac10.14': 'builds/android/%s/android.zip', - 'mac10.15': 'builds/android/%s/android.zip', - 'mac11': 'builds/android/%s/android.zip', - 'mac11-arm64': 'builds/android/%s/android.zip', - 'mac12': 'builds/android/%s/android.zip', - 'mac12-arm64': 'builds/android/%s/android.zip', - 'mac13': 'builds/android/%s/android.zip', - 'mac13-arm64': 'builds/android/%s/android.zip', + 'mac10.13': undefined, + 'mac10.14': undefined, + 'mac10.15': undefined, + 'mac11': undefined, + 'mac11-arm64': undefined, + 'mac12': undefined, + 'mac12-arm64': undefined, + 'mac13': undefined, + 'mac13-arm64': undefined, 'mac14': 'builds/android/%s/android.zip', 'mac14-arm64': 'builds/android/%s/android.zip', 'mac15': 'builds/android/%s/android.zip', diff --git a/packages/playwright-core/src/server/registry/nativeDeps.ts b/packages/playwright-core/src/server/registry/nativeDeps.ts index 7cb4583c2a912..5e02aabbafd57 100644 --- a/packages/playwright-core/src/server/registry/nativeDeps.ts +++ b/packages/playwright-core/src/server/registry/nativeDeps.ts @@ -883,217 +883,6 @@ export const deps: any = { }, }, - 'debian11-x64': { - tools: [ - 'xvfb', - 'fonts-noto-color-emoji', - 'fonts-unifont', - 'libfontconfig1', - 'libfreetype6', - 'xfonts-cyrillic', - 'xfonts-scalable', - 'fonts-liberation', - 'fonts-ipafont-gothic', - 'fonts-wqy-zenhei', - 'fonts-tlwg-loma-otf', - 'fonts-freefont-ttf', - ], - chromium: [ - 'libasound2', - 'libatk-bridge2.0-0', - 'libatk1.0-0', - 'libatspi2.0-0', - 'libcairo2', - 'libcups2', - 'libdbus-1-3', - 'libdrm2', - 'libgbm1', - 'libglib2.0-0', - 'libnspr4', - 'libnss3', - 'libpango-1.0-0', - 'libwayland-client0', - 'libx11-6', - 'libxcb1', - 'libxcomposite1', - 'libxdamage1', - 'libxext6', - 'libxfixes3', - 'libxkbcommon0', - 'libxrandr2' - ], - firefox: [ - 'libasound2', - 'libatk1.0-0', - 'libavcodec58', - 'libcairo-gobject2', - 'libcairo2', - 'libdbus-1-3', - 'libdbus-glib-1-2', - 'libfontconfig1', - 'libfreetype6', - 'libgdk-pixbuf-2.0-0', - 'libglib2.0-0', - 'libgtk-3-0', - 'libharfbuzz0b', - 'libpango-1.0-0', - 'libpangocairo-1.0-0', - 'libx11-6', - 'libx11-xcb1', - 'libxcb-shm0', - 'libxcb1', - 'libxcomposite1', - 'libxcursor1', - 'libxdamage1', - 'libxext6', - 'libxfixes3', - 'libxi6', - 'libxrandr2', - 'libxrender1', - 'libxtst6' - ], - webkit: [ - 'gstreamer1.0-libav', - 'gstreamer1.0-plugins-bad', - 'gstreamer1.0-plugins-base', - 'gstreamer1.0-plugins-good', - 'libatk-bridge2.0-0', - 'libatk1.0-0', - 'libcairo2', - 'libdbus-1-3', - 'libdrm2', - 'libegl1', - 'libenchant-2-2', - 'libepoxy0', - 'libevdev2', - 'libfontconfig1', - 'libfreetype6', - 'libgbm1', - 'libgdk-pixbuf-2.0-0', - 'libgles2', - 'libglib2.0-0', - 'libglx0', - 'libgstreamer-gl1.0-0', - 'libgstreamer-plugins-base1.0-0', - 'libgstreamer1.0-0', - 'libgtk-3-0', - 'libgudev-1.0-0', - 'libharfbuzz-icu0', - 'libharfbuzz0b', - 'libhyphen0', - 'libicu67', - 'libjpeg62-turbo', - 'liblcms2-2', - 'libmanette-0.2-0', - 'libnghttp2-14', - 'libnotify4', - 'libopengl0', - 'libopenjp2-7', - 'libopus0', - 'libpango-1.0-0', - 'libpng16-16', - 'libproxy1v5', - 'libsecret-1-0', - 'libwayland-client0', - 'libwayland-egl1', - 'libwayland-server0', - 'libwebp6', - 'libwebpdemux2', - 'libwoff1', - 'libx11-6', - 'libxcomposite1', - 'libxdamage1', - 'libxkbcommon0', - 'libxml2', - 'libxslt1.1', - 'libatomic1', - 'libevent-2.1-7', - ], - lib2package: { - 'libasound.so.2': 'libasound2', - 'libatk-1.0.so.0': 'libatk1.0-0', - 'libatk-bridge-2.0.so.0': 'libatk-bridge2.0-0', - 'libatspi.so.0': 'libatspi2.0-0', - 'libcairo-gobject.so.2': 'libcairo-gobject2', - 'libcairo.so.2': 'libcairo2', - 'libcups.so.2': 'libcups2', - 'libdbus-1.so.3': 'libdbus-1-3', - 'libdbus-glib-1.so.2': 'libdbus-glib-1-2', - 'libdrm.so.2': 'libdrm2', - 'libEGL.so.1': 'libegl1', - 'libenchant-2.so.2': 'libenchant-2-2', - 'libepoxy.so.0': 'libepoxy0', - 'libevdev.so.2': 'libevdev2', - 'libfontconfig.so.1': 'libfontconfig1', - 'libfreetype.so.6': 'libfreetype6', - 'libgbm.so.1': 'libgbm1', - 'libgdk_pixbuf-2.0.so.0': 'libgdk-pixbuf-2.0-0', - 'libgdk-3.so.0': 'libgtk-3-0', - 'libgio-2.0.so.0': 'libglib2.0-0', - 'libGLESv2.so.2': 'libgles2', - 'libglib-2.0.so.0': 'libglib2.0-0', - 'libGLX.so.0': 'libglx0', - 'libgmodule-2.0.so.0': 'libglib2.0-0', - 'libgobject-2.0.so.0': 'libglib2.0-0', - 'libgstallocators-1.0.so.0': 'libgstreamer-plugins-base1.0-0', - 'libgstapp-1.0.so.0': 'libgstreamer-plugins-base1.0-0', - 'libgstaudio-1.0.so.0': 'libgstreamer-plugins-base1.0-0', - 'libgstbase-1.0.so.0': 'libgstreamer1.0-0', - 'libgstfft-1.0.so.0': 'libgstreamer-plugins-base1.0-0', - 'libgstgl-1.0.so.0': 'libgstreamer-gl1.0-0', - 'libgstpbutils-1.0.so.0': 'libgstreamer-plugins-base1.0-0', - 'libgstreamer-1.0.so.0': 'libgstreamer1.0-0', - 'libgsttag-1.0.so.0': 'libgstreamer-plugins-base1.0-0', - 'libgstvideo-1.0.so.0': 'libgstreamer-plugins-base1.0-0', - 'libgtk-3.so.0': 'libgtk-3-0', - 'libgudev-1.0.so.0': 'libgudev-1.0-0', - 'libharfbuzz-icu.so.0': 'libharfbuzz-icu0', - 'libharfbuzz.so.0': 'libharfbuzz0b', - 'libhyphen.so.0': 'libhyphen0', - 'libicui18n.so.67': 'libicu67', - 'libicuuc.so.67': 'libicu67', - 'libjpeg.so.62': 'libjpeg62-turbo', - 'liblcms2.so.2': 'liblcms2-2', - 'libmanette-0.2.so.0': 'libmanette-0.2-0', - 'libnotify.so.4': 'libnotify4', - 'libnspr4.so': 'libnspr4', - 'libnss3.so': 'libnss3', - 'libnssutil3.so': 'libnss3', - 'libOpenGL.so.0': 'libopengl0', - 'libopenjp2.so.7': 'libopenjp2-7', - 'libopus.so.0': 'libopus0', - 'libpango-1.0.so.0': 'libpango-1.0-0', - 'libpangocairo-1.0.so.0': 'libpangocairo-1.0-0', - 'libpng16.so.16': 'libpng16-16', - 'libproxy.so.1': 'libproxy1v5', - 'libsecret-1.so.0': 'libsecret-1-0', - 'libsmime3.so': 'libnss3', - 'libwayland-client.so.0': 'libwayland-client0', - 'libwayland-egl.so.1': 'libwayland-egl1', - 'libwayland-server.so.0': 'libwayland-server0', - 'libwebp.so.6': 'libwebp6', - 'libwebpdemux.so.2': 'libwebpdemux2', - 'libwoff2dec.so.1.0.2': 'libwoff1', - 'libX11-xcb.so.1': 'libx11-xcb1', - 'libX11.so.6': 'libx11-6', - 'libxcb-shm.so.0': 'libxcb-shm0', - 'libxcb.so.1': 'libxcb1', - 'libXcomposite.so.1': 'libxcomposite1', - 'libXcursor.so.1': 'libxcursor1', - 'libXdamage.so.1': 'libxdamage1', - 'libXext.so.6': 'libxext6', - 'libXfixes.so.3': 'libxfixes3', - 'libXi.so.6': 'libxi6', - 'libxkbcommon.so.0': 'libxkbcommon0', - 'libxml2.so.2': 'libxml2', - 'libXrandr.so.2': 'libxrandr2', - 'libXrender.so.1': 'libxrender1', - 'libxslt.so.1': 'libxslt1.1', - 'libXtst.so.6': 'libxtst6', - 'libatomic.so.1': 'libatomic1', - 'libevent-2.1.so.7': 'libevent-2.1-7', - } - }, 'debian12-x64': { tools: [ 'xvfb', @@ -1471,20 +1260,6 @@ deps['ubuntu26.04-arm64'] = { }, }; -deps['debian11-arm64'] = { - tools: [...deps['debian11-x64'].tools], - chromium: [...deps['debian11-x64'].chromium], - firefox: [ - ...deps['debian11-x64'].firefox, - ], - webkit: [ - ...deps['debian11-x64'].webkit, - ], - lib2package: { - ...deps['debian11-x64'].lib2package, - }, -}; - deps['debian12-arm64'] = { tools: [...deps['debian12-x64'].tools], chromium: [...deps['debian12-x64'].chromium], diff --git a/packages/playwright-core/src/server/webkit/wkPage.ts b/packages/playwright-core/src/server/webkit/wkPage.ts index f9c9ed6b907a4..ef084aed771e6 100644 --- a/packages/playwright-core/src/server/webkit/wkPage.ts +++ b/packages/playwright-core/src/server/webkit/wkPage.ts @@ -850,8 +850,7 @@ export class WKPage implements PageDelegate { private _toolbarHeight(): number { if (this._page.browserContext._browser?.options.headful) { - if (hostPlatform === 'mac10.15') - return 55; + // note: historically, value for mac10.15 was 55 if (hostPlatform === 'mac26-arm64' || hostPlatform === 'mac26') return 69; return 59; @@ -960,9 +959,9 @@ export class WKPage implements PageDelegate { frameSwapWallTime: event.timestamp // timestamp is in seconds, we need to convert to milliseconds. ? event.timestamp * 1000 - // Fallback for Debian 11 and Ubuntu 20.04 where WebKit is frozen on an older + // Fallback for Ubuntu 20.04 where WebKit is frozen on an older // version that did not send timestamp. - // TODO: remove this fallback when Debian 11 and Ubuntu 20.04 are EOL. + // TODO: remove this fallback when Ubuntu 20.04 is EOL. : Date.now(), viewportWidth: event.deviceWidth, viewportHeight: event.deviceHeight, diff --git a/packages/utils/hostPlatform.ts b/packages/utils/hostPlatform.ts index 46b639d9be5bb..82974b982c7c6 100644 --- a/packages/utils/hostPlatform.ts +++ b/packages/utils/hostPlatform.ts @@ -48,29 +48,28 @@ function calculatePlatform(): { hostPlatform: HostPlatform, isOfficiallySupporte const platform = os.platform(); if (platform === 'darwin') { const ver = os.release().split('.').map((a: string) => parseInt(a, 10)); - let macVersion = ''; + let macVersion = 0; if (ver[0] < 18) { // Everything before 10.14 is considered 10.13. - macVersion = 'mac10.13'; + macVersion = 10.13; } else if (ver[0] === 18) { - macVersion = 'mac10.14'; + macVersion = 10.14; } else if (ver[0] === 19) { - macVersion = 'mac10.15'; + macVersion = 10.15; } else if (ver[0] < 25) { - // Darwin 20..24 → macOS 11..15 (BigSur..Sequoia). - macVersion = 'mac' + (ver[0] - 9); - // BigSur is the first version that might run on Apple Silicon. - if (os.cpus().some(cpu => cpu.model.includes('Apple'))) - macVersion += '-arm64'; + macVersion = 11 + (ver[0] - 20); // Darwin 20..24 → macOS 11..15 (BigSur..Sequoia) } else { // Apple jumped from macOS 15 (Sequoia) to macOS 26 (Tahoe), so Darwin 25 = macOS 26. // Best-effort support for MacOS beta versions. const LAST_STABLE_MACOS_MAJOR_VERSION = 26; - macVersion = 'mac' + Math.min(ver[0] + 1, LAST_STABLE_MACOS_MAJOR_VERSION); - if (os.cpus().some(cpu => cpu.model.includes('Apple'))) - macVersion += '-arm64'; + macVersion = Math.min(ver[0] + 1, LAST_STABLE_MACOS_MAJOR_VERSION); + } + let macPlatform = 'mac' + macVersion; + if (macVersion >= 11 && os.cpus().some(cpu => cpu.model.includes('Apple'))) { + // BigSur is the first version that might run on Apple Silicon. + macPlatform += '-arm64'; } - return { hostPlatform: macVersion as HostPlatform, isOfficiallySupportedPlatform: true }; + return { hostPlatform: macPlatform as HostPlatform, isOfficiallySupportedPlatform: macVersion >= 14 }; } if (platform === 'linux') { if (!['x64', 'arm64'].includes(os.arch())) @@ -108,9 +107,9 @@ function calculatePlatform(): { hostPlatform: HostPlatform, isOfficiallySupporte return { hostPlatform: ('ubuntu24.04' + archSuffix) as HostPlatform, isOfficiallySupportedPlatform: false }; } if (distroInfo?.id === 'debian' || distroInfo?.id === 'raspbian') { - const isOfficiallySupportedPlatform = distroInfo?.id === 'debian'; if (distroInfo?.version === '11') - return { hostPlatform: ('debian11' + archSuffix) as HostPlatform, isOfficiallySupportedPlatform }; + return { hostPlatform: ('debian11' + archSuffix) as HostPlatform, isOfficiallySupportedPlatform: false }; + const isOfficiallySupportedPlatform = distroInfo?.id === 'debian'; if (distroInfo?.version === '12') return { hostPlatform: ('debian12' + archSuffix) as HostPlatform, isOfficiallySupportedPlatform }; if (distroInfo?.version === '13')