diff --git a/packages/playwright-core/src/server/registry/index.ts b/packages/playwright-core/src/server/registry/index.ts index 385f0f3ede..16cfa363c3 100644 --- a/packages/playwright-core/src/server/registry/index.ts +++ b/packages/playwright-core/src/server/registry/index.ts @@ -78,8 +78,10 @@ const DOWNLOAD_PATHS = { '': undefined, 'generic-linux': 'builds/chromium/%s/chromium-linux.zip', 'generic-linux-arm64': 'builds/chromium/%s/chromium-linux-arm64.zip', + 'ubuntu18.04': 'builds/chromium/%s/chromium-linux.zip', 'ubuntu20.04': 'builds/chromium/%s/chromium-linux.zip', 'ubuntu22.04': 'builds/chromium/%s/chromium-linux.zip', + 'ubuntu18.04-arm64': 'builds/chromium/%s/chromium-linux-arm64.zip', 'ubuntu20.04-arm64': 'builds/chromium/%s/chromium-linux-arm64.zip', 'ubuntu22.04-arm64': 'builds/chromium/%s/chromium-linux-arm64.zip', 'debian11': 'builds/chromium/%s/chromium-linux.zip', @@ -96,8 +98,10 @@ const DOWNLOAD_PATHS = { '': undefined, 'generic-linux': 'builds/chromium-tip-of-tree/%s/chromium-tip-of-tree-linux.zip', 'generic-linux-arm64': 'builds/chromium-tip-of-tree/%s/chromium-tip-of-tree-linux-arm64.zip', + 'ubuntu18.04': 'builds/chromium-tip-of-tree/%s/chromium-tip-of-tree-linux.zip', 'ubuntu20.04': 'builds/chromium-tip-of-tree/%s/chromium-tip-of-tree-linux.zip', 'ubuntu22.04': 'builds/chromium-tip-of-tree/%s/chromium-tip-of-tree-linux.zip', + 'ubuntu18.04-arm64': 'builds/chromium-tip-of-tree/%s/chromium-tip-of-tree-linux-arm64.zip', 'ubuntu20.04-arm64': 'builds/chromium-tip-of-tree/%s/chromium-tip-of-tree-linux-arm64.zip', 'ubuntu22.04-arm64': 'builds/chromium-tip-of-tree/%s/chromium-tip-of-tree-linux-arm64.zip', 'debian11': 'builds/chromium-tip-of-tree/%s/chromium-tip-of-tree-linux.zip', @@ -114,8 +118,10 @@ const DOWNLOAD_PATHS = { '': undefined, 'generic-linux': 'builds/chromium/%s/chromium-with-symbols-linux.zip', 'generic-linux-arm64': 'builds/chromium/%s/chromium-with-symbols-linux-arm64.zip', + 'ubuntu18.04': 'builds/chromium/%s/chromium-with-symbols-linux.zip', 'ubuntu20.04': 'builds/chromium/%s/chromium-with-symbols-linux.zip', 'ubuntu22.04': 'builds/chromium/%s/chromium-with-symbols-linux.zip', + 'ubuntu18.04-arm64': 'builds/chromium/%s/chromium-with-symbols-linux-arm64.zip', 'ubuntu20.04-arm64': 'builds/chromium/%s/chromium-with-symbols-linux-arm64.zip', 'ubuntu22.04-arm64': 'builds/chromium/%s/chromium-with-symbols-linux-arm64.zip', 'debian11': 'builds/chromium/%s/chromium-with-symbols-linux.zip', @@ -132,8 +138,10 @@ const DOWNLOAD_PATHS = { '': undefined, 'generic-linux': 'builds/firefox/%s/firefox-ubuntu-20.04.zip', 'generic-linux-arm64': 'builds/firefox/%s/firefox-ubuntu-20.04-arm64.zip', + 'ubuntu18.04': 'builds/firefox/%s/firefox-ubuntu-18.04.zip', 'ubuntu20.04': 'builds/firefox/%s/firefox-ubuntu-20.04.zip', 'ubuntu22.04': 'builds/firefox/%s/firefox-ubuntu-22.04.zip', + 'ubuntu18.04-arm64': undefined, 'ubuntu20.04-arm64': 'builds/firefox/%s/firefox-ubuntu-20.04-arm64.zip', 'ubuntu22.04-arm64': 'builds/firefox/%s/firefox-ubuntu-22.04-arm64.zip', 'debian11': 'builds/firefox/%s/firefox-debian-11.zip', @@ -150,8 +158,10 @@ const DOWNLOAD_PATHS = { '': undefined, 'generic-linux': 'builds/firefox-beta/%s/firefox-beta-ubuntu-20.04.zip', 'generic-linux-arm64': undefined, + 'ubuntu18.04': 'builds/firefox-beta/%s/firefox-beta-ubuntu-18.04.zip', 'ubuntu20.04': 'builds/firefox-beta/%s/firefox-beta-ubuntu-20.04.zip', 'ubuntu22.04': 'builds/firefox-beta/%s/firefox-beta-ubuntu-22.04.zip', + 'ubuntu18.04-arm64': undefined, 'ubuntu20.04-arm64': undefined, 'ubuntu22.04-arm64': 'builds/firefox-beta/%s/firefox-beta-ubuntu-22.04-arm64.zip', 'debian11': 'builds/firefox-beta/%s/firefox-beta-debian-11.zip', @@ -168,8 +178,10 @@ const DOWNLOAD_PATHS = { '': undefined, 'generic-linux': 'builds/webkit/%s/webkit-ubuntu-20.04.zip', 'generic-linux-arm64': 'builds/webkit/%s/webkit-ubuntu-20.04-arm64.zip', + 'ubuntu18.04': 'builds/deprecated-webkit-ubuntu-18.04/%s/deprecated-webkit-ubuntu-18.04.zip', 'ubuntu20.04': 'builds/webkit/%s/webkit-ubuntu-20.04.zip', 'ubuntu22.04': 'builds/webkit/%s/webkit-ubuntu-22.04.zip', + 'ubuntu18.04-arm64': undefined, 'ubuntu20.04-arm64': 'builds/webkit/%s/webkit-ubuntu-20.04-arm64.zip', 'ubuntu22.04-arm64': 'builds/webkit/%s/webkit-ubuntu-22.04-arm64.zip', 'debian11': 'builds/webkit/%s/webkit-debian-11.zip', @@ -186,8 +198,10 @@ const DOWNLOAD_PATHS = { '': undefined, 'generic-linux': 'builds/ffmpeg/%s/ffmpeg-linux.zip', 'generic-linux-arm64': 'builds/ffmpeg/%s/ffmpeg-linux-arm64.zip', + 'ubuntu18.04': 'builds/ffmpeg/%s/ffmpeg-linux.zip', 'ubuntu20.04': 'builds/ffmpeg/%s/ffmpeg-linux.zip', 'ubuntu22.04': 'builds/ffmpeg/%s/ffmpeg-linux.zip', + 'ubuntu18.04-arm64': 'builds/ffmpeg/%s/ffmpeg-linux-arm64.zip', 'ubuntu20.04-arm64': 'builds/ffmpeg/%s/ffmpeg-linux-arm64.zip', 'ubuntu22.04-arm64': 'builds/ffmpeg/%s/ffmpeg-linux-arm64.zip', 'debian11': 'builds/ffmpeg/%s/ffmpeg-linux.zip', diff --git a/packages/playwright-core/src/server/registry/nativeDeps.ts b/packages/playwright-core/src/server/registry/nativeDeps.ts index a56798e706..5c9951824b 100644 --- a/packages/playwright-core/src/server/registry/nativeDeps.ts +++ b/packages/playwright-core/src/server/registry/nativeDeps.ts @@ -19,6 +19,168 @@ // ./utils/linux-browser-dependencies/run.sh ubuntu:20.04 export const deps: any = { + 'ubuntu18.04': { + tools: [ + 'xvfb', + 'fonts-noto-color-emoji', + 'ttf-unifont', + 'libfontconfig', + 'libfreetype6', + 'xfonts-cyrillic', + 'xfonts-scalable', + 'fonts-liberation', + 'fonts-ipafont-gothic', + 'fonts-wqy-zenhei', + 'fonts-tlwg-loma-otf', + 'ttf-ubuntu-font-family', + ], + chromium: [ + 'fonts-liberation', + 'libasound2', + 'libatk-bridge2.0-0', + 'libatk1.0-0', + 'libatspi2.0-0', + 'libcairo2', + 'libcups2', + 'libdbus-1-3', + 'libdrm2', + 'libegl1', + 'libgbm1', + 'libglib2.0-0', + 'libgtk-3-0', + 'libnspr4', + 'libnss3', + 'libpango-1.0-0', + 'libx11-6', + 'libx11-xcb1', + 'libxcb1', + 'libxcomposite1', + 'libxdamage1', + 'libxext6', + 'libxfixes3', + 'libxrandr2', + 'libxshmfence1', + ], + firefox: [ + 'ffmpeg', + 'libatk1.0-0', + 'libcairo-gobject2', + 'libcairo2', + 'libdbus-1-3', + 'libdbus-glib-1-2', + 'libfontconfig1', + 'libfreetype6', + 'libgdk-pixbuf2.0-0', + 'libglib2.0-0', + 'libgtk-3-0', + 'libpango-1.0-0', + 'libpangocairo-1.0-0', + 'libpangoft2-1.0-0', + 'libx11-6', + 'libx11-xcb1', + 'libxcb-shm0', + 'libxcb1', + 'libxcomposite1', + 'libxcursor1', + 'libxdamage1', + 'libxext6', + 'libxfixes3', + 'libxi6', + 'libxrender1', + 'libxt6', + 'libxtst6', + ], + webkit: [], + 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', + 'libbrotlidec.so.1': 'libbrotli1', + '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.so.1': 'libenchant1c2a', + 'libepoxy.so.0': 'libepoxy0', + 'libevent-2.1.so.6': 'libevent-2.1-6', + 'libevdev.so.2': 'libevdev2', + 'libfontconfig.so.1': 'libfontconfig1', + 'libfreetype.so.6': 'libfreetype6', + 'libgbm.so.1': 'libgbm1', + 'libgdk_pixbuf-2.0.so.0': 'libgdk-pixbuf2.0-0', + 'libgdk-3.so.0': 'libgtk-3-0', + 'libgdk-x11-2.0.so.0': 'libgtk2.0-0', + 'libgio-2.0.so.0': 'libglib2.0-0', + 'libGL.so.1': 'libgl1', + 'libGLESv2.so.2': 'libgles2', + 'libglib-2.0.so.0': 'libglib2.0-0', + 'libgmodule-2.0.so.0': 'libglib2.0-0', + 'libgobject-2.0.so.0': 'libglib2.0-0', + 'libgstapp-1.0.so.0': 'gstreamer1.0-plugins-base', + 'libgstaudio-1.0.so.0': 'gstreamer1.0-plugins-base', + 'libgstbase-1.0.so.0': 'libgstreamer1.0-0', + 'libgstcodecparsers-1.0.so.0': 'gstreamer1.0-plugins-bad', + 'libgstfft-1.0.so.0': 'gstreamer1.0-plugins-base', + 'libgstgl-1.0.so.0': 'libgstreamer-gl1.0-0', + 'libgstpbutils-1.0.so.0': 'gstreamer1.0-plugins-base', + 'libgstreamer-1.0.so.0': 'libgstreamer1.0-0', + 'libgsttag-1.0.so.0': 'gstreamer1.0-plugins-base', + 'libgstvideo-1.0.so.0': 'gstreamer1.0-plugins-base', + 'libgthread-2.0.so.0': 'libglib2.0-0', + 'libgtk-3.so.0': 'libgtk-3-0', + 'libgtk-x11-2.0.so.0': 'libgtk2.0-0', + 'libharfbuzz-icu.so.0': 'libharfbuzz-icu0', + 'libharfbuzz.so.0': 'libharfbuzz0b', + 'libhyphen.so.0': 'libhyphen0', + 'libicudata.so.60': 'libicu60', + 'libicui18n.so.60': 'libicu60', + 'libicuuc.so.60': 'libicu60', + 'libjpeg.so.8': 'libjpeg-turbo8', + 'libnotify.so.4': 'libnotify4', + 'libnspr4.so': 'libnspr4', + 'libnss3.so': 'libnss3', + 'libnssutil3.so': 'libnss3', + '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', + 'libpangoft2-1.0.so.0': 'libpangoft2-1.0-0', + 'libpng16.so.16': 'libpng16-16', + 'libsecret-1.so.0': 'libsecret-1-0', + 'libsmime3.so': 'libnss3', + 'libvpx.so.5': 'libvpx5', + '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-dri3.so.0': 'libxcb-dri3-0', + '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', + 'libXt.so.6': 'libxt6', + 'libXtst.so.6': 'libxtst6', + 'libevent-2.1-6': 'libevent-2.1-6', + }, + }, + 'ubuntu20.04': { tools: [ 'xvfb', diff --git a/packages/playwright-core/src/utils/hostPlatform.ts b/packages/playwright-core/src/utils/hostPlatform.ts index 7b3c3e0e70..8fee4f1c8c 100644 --- a/packages/playwright-core/src/utils/hostPlatform.ts +++ b/packages/playwright-core/src/utils/hostPlatform.ts @@ -23,6 +23,7 @@ export type HostPlatform = 'win64' | 'mac10.15' | 'mac11' | 'mac11-arm64' | 'mac12' | 'mac12-arm64' | + 'ubuntu18.04' | 'ubuntu18.04-arm64' | 'ubuntu20.04' | 'ubuntu20.04-arm64' | 'ubuntu22.04' | 'ubuntu22.04-arm64' | 'debian11' |