diff --git a/src/install/browserFetcher.ts b/src/install/browserFetcher.ts index 7ebc21a714..2c1840077f 100644 --- a/src/install/browserFetcher.ts +++ b/src/install/browserFetcher.ts @@ -67,8 +67,7 @@ function getDownloadUrl(browserName: BrowserName, revision: number, platform: Br ['mac10.13', '%s/chromium-browser-snapshots/Mac/%d/chrome-mac.zip'], ['mac10.14', '%s/chromium-browser-snapshots/Mac/%d/chrome-mac.zip'], ['mac10.15', '%s/chromium-browser-snapshots/Mac/%d/chrome-mac.zip'], - ['mac11.0', '%s/chromium-browser-snapshots/Mac/%d/chrome-mac.zip'], - ['mac11.1', '%s/chromium-browser-snapshots/Mac/%d/chrome-mac.zip'], + ['mac11', '%s/chromium-browser-snapshots/Mac/%d/chrome-mac.zip'], ['win32', '%s/chromium-browser-snapshots/Win/%d/chrome-win.zip'], ['win64', '%s/chromium-browser-snapshots/Win_x64/%d/chrome-win.zip'], ]).get(platform) : @@ -78,10 +77,8 @@ function getDownloadUrl(browserName: BrowserName, revision: number, platform: Br ['mac10.13', '%s/builds/chromium/%s/chromium-mac.zip'], ['mac10.14', '%s/builds/chromium/%s/chromium-mac.zip'], ['mac10.15', '%s/builds/chromium/%s/chromium-mac.zip'], - ['mac11.0', '%s/builds/chromium/%s/chromium-mac.zip'], - ['mac11.0-arm64', '%s/builds/chromium/%s/chromium-mac-arm64.zip'], - ['mac11.1', '%s/builds/chromium/%s/chromium-mac.zip'], - ['mac11.1-arm64', '%s/builds/chromium/%s/chromium-mac-arm64.zip'], + ['mac11', '%s/builds/chromium/%s/chromium-mac.zip'], + ['mac11-arm64', '%s/builds/chromium/%s/chromium-mac-arm64.zip'], ['win32', '%s/builds/chromium/%s/chromium-win32.zip'], ['win64', '%s/builds/chromium/%s/chromium-win64.zip'], ]).get(platform); @@ -96,8 +93,7 @@ function getDownloadUrl(browserName: BrowserName, revision: number, platform: Br ['mac10.13', '%s/builds/firefox/%s/firefox-mac.zip'], ['mac10.14', '%s/builds/firefox/%s/firefox-mac.zip'], ['mac10.15', '%s/builds/firefox/%s/firefox-mac.zip'], - ['mac11.0', '%s/builds/firefox/%s/firefox-mac.zip'], - ['mac11.1', '%s/builds/firefox/%s/firefox-mac.zip'], + ['mac11', '%s/builds/firefox/%s/firefox-mac.zip'], ['win32', '%s/builds/firefox/%s/firefox-win32.zip'], ['win64', '%s/builds/firefox/%s/firefox-win64.zip'], ]).get(platform) : @@ -107,10 +103,8 @@ function getDownloadUrl(browserName: BrowserName, revision: number, platform: Br ['mac10.13', '%s/builds/firefox/%s/firefox-mac-10.14.zip'], ['mac10.14', '%s/builds/firefox/%s/firefox-mac-10.14.zip'], ['mac10.15', '%s/builds/firefox/%s/firefox-mac-10.14.zip'], - ['mac11.0', '%s/builds/firefox/%s/firefox-mac-10.14.zip'], - ['mac11.0-arm64', '%s/builds/firefox/%s/firefox-mac-10.14.zip'], - ['mac11.1', '%s/builds/firefox/%s/firefox-mac-10.14.zip'], - ['mac11.1-arm64', '%s/builds/firefox/%s/firefox-mac-10.14.zip'], + ['mac11', '%s/builds/firefox/%s/firefox-mac-10.14.zip'], + ['mac11-arm64', '%s/builds/firefox/%s/firefox-mac-10.14.zip'], ['win32', '%s/builds/firefox/%s/firefox-win32.zip'], ['win64', '%s/builds/firefox/%s/firefox-win64.zip'], ]).get(platform); @@ -125,8 +119,7 @@ function getDownloadUrl(browserName: BrowserName, revision: number, platform: Br ['mac10.13', undefined], ['mac10.14', '%s/builds/webkit/%s/minibrowser-mac-10.14.zip'], ['mac10.15', '%s/builds/webkit/%s/minibrowser-mac-10.15.zip'], - ['mac11.0', '%s/builds/webkit/%s/minibrowser-mac-10.15.zip'], - ['mac11.1', '%s/builds/webkit/%s/minibrowser-mac-10.15.zip'], + ['mac11', '%s/builds/webkit/%s/minibrowser-mac-10.15.zip'], ['win32', '%s/builds/webkit/%s/minibrowser-win64.zip'], ['win64', '%s/builds/webkit/%s/minibrowser-win64.zip'], ]).get(platform) : @@ -136,10 +129,8 @@ function getDownloadUrl(browserName: BrowserName, revision: number, platform: Br ['mac10.13', undefined], ['mac10.14', '%s/builds/webkit/%s/webkit-mac-10.14.zip'], ['mac10.15', '%s/builds/webkit/%s/webkit-mac-10.15.zip'], - ['mac11.0', '%s/builds/webkit/%s/webkit-mac-10.15.zip'], - ['mac11.0-arm64', '%s/builds/webkit/%s/webkit-mac-11.0-arm64.zip'], - ['mac11.1', '%s/builds/webkit/%s/webkit-mac-10.15.zip'], - ['mac11.1-arm64', '%s/builds/webkit/%s/webkit-mac-11.0-arm64.zip'], + ['mac11', '%s/builds/webkit/%s/webkit-mac-10.15.zip'], + ['mac11-arm64', '%s/builds/webkit/%s/webkit-mac-11.0-arm64.zip'], ['win32', '%s/builds/webkit/%s/webkit-win64.zip'], ['win64', '%s/builds/webkit/%s/webkit-win64.zip'], ]).get(platform); diff --git a/src/utils/browserPaths.ts b/src/utils/browserPaths.ts index 2ccc0e9128..8cdd088e23 100644 --- a/src/utils/browserPaths.ts +++ b/src/utils/browserPaths.ts @@ -22,7 +22,7 @@ import { getUbuntuVersionSync } from './ubuntuVersion'; import { getFromENV } from './utils'; export type BrowserName = 'chromium'|'webkit'|'firefox'; -export type BrowserPlatform = 'win32'|'win64'|'mac10.13'|'mac10.14'|'mac10.15'|'mac11.0'|'mac11.0-arm64'|'mac11.1'|'mac11.1-arm64'|'ubuntu18.04'|'ubuntu20.04'; +export type BrowserPlatform = 'win32'|'win64'|'mac10.13'|'mac10.14'|'mac10.15'|'mac11'|'mac11-arm64'|'ubuntu18.04'|'ubuntu20.04'; export type BrowserDescriptor = { name: BrowserName, revision: string, @@ -32,15 +32,19 @@ export type BrowserDescriptor = { export const hostPlatform = ((): BrowserPlatform => { const platform = os.platform(); if (platform === 'darwin') { - const macVersion = execSync('sw_vers -productVersion', { + const [major, minor] = execSync('sw_vers -productVersion', { stdio: ['ignore', 'pipe', 'ignore'] - }).toString('utf8').trim().split('.').slice(0, 2).join('.'); + }).toString('utf8').trim().split('.').map(x => parseInt(x, 10)); let arm64 = false; - if (!macVersion.startsWith('10.')) { + // BigSur is the first version that might run on Apple Silicon. + if (major >= 11) { arm64 = execSync('sysctl -in hw.optional.arm64', { stdio: ['ignore', 'pipe', 'ignore'] }).toString().trim() === '1'; } + // We do not want to differentiate between minor big sur releases + // since they don't change core APIs so far. + const macVersion = major === 10 ? `${major}.${minor}` : `${major}`; const archSuffix = arm64 ? '-arm64' : ''; return `mac${macVersion}${archSuffix}` as BrowserPlatform; } @@ -92,10 +96,8 @@ export function executablePath(browserPath: string, browser: BrowserDescriptor): ['mac10.13', ['chrome-mac', 'Chromium.app', 'Contents', 'MacOS', 'Chromium']], ['mac10.14', ['chrome-mac', 'Chromium.app', 'Contents', 'MacOS', 'Chromium']], ['mac10.15', ['chrome-mac', 'Chromium.app', 'Contents', 'MacOS', 'Chromium']], - ['mac11.0', ['chrome-mac', 'Chromium.app', 'Contents', 'MacOS', 'Chromium']], - ['mac11.0-arm64', ['chrome-mac', 'Chromium.app', 'Contents', 'MacOS', 'Chromium']], - ['mac11.1', ['chrome-mac', 'Chromium.app', 'Contents', 'MacOS', 'Chromium']], - ['mac11.1-arm64', ['chrome-mac', 'Chromium.app', 'Contents', 'MacOS', 'Chromium']], + ['mac11', ['chrome-mac', 'Chromium.app', 'Contents', 'MacOS', 'Chromium']], + ['mac11-arm64', ['chrome-mac', 'Chromium.app', 'Contents', 'MacOS', 'Chromium']], ['win32', ['chrome-win', 'chrome.exe']], ['win64', ['chrome-win', 'chrome.exe']], ]).get(hostPlatform); @@ -108,10 +110,8 @@ export function executablePath(browserPath: string, browser: BrowserDescriptor): ['mac10.13', ['firefox', 'Nightly.app', 'Contents', 'MacOS', 'firefox']], ['mac10.14', ['firefox', 'Nightly.app', 'Contents', 'MacOS', 'firefox']], ['mac10.15', ['firefox', 'Nightly.app', 'Contents', 'MacOS', 'firefox']], - ['mac11.0', ['firefox', 'Nightly.app', 'Contents', 'MacOS', 'firefox']], - ['mac11.0-arm64', ['firefox', 'Nightly.app', 'Contents', 'MacOS', 'firefox']], - ['mac11.1', ['firefox', 'Nightly.app', 'Contents', 'MacOS', 'firefox']], - ['mac11.1-arm64', ['firefox', 'Nightly.app', 'Contents', 'MacOS', 'firefox']], + ['mac11', ['firefox', 'Nightly.app', 'Contents', 'MacOS', 'firefox']], + ['mac11-arm64', ['firefox', 'Nightly.app', 'Contents', 'MacOS', 'firefox']], ['win32', ['firefox', 'firefox.exe']], ['win64', ['firefox', 'firefox.exe']], ]).get(hostPlatform); @@ -124,10 +124,8 @@ export function executablePath(browserPath: string, browser: BrowserDescriptor): ['mac10.13', undefined], ['mac10.14', ['pw_run.sh']], ['mac10.15', ['pw_run.sh']], - ['mac11.0', ['pw_run.sh']], - ['mac11.0-arm64', ['pw_run.sh']], - ['mac11.1', ['pw_run.sh']], - ['mac11.1-arm64', ['pw_run.sh']], + ['mac11', ['pw_run.sh']], + ['mac11-arm64', ['pw_run.sh']], ['win32', ['Playwright.exe']], ['win64', ['Playwright.exe']], ]).get(hostPlatform);