From cc6aeaf75c491449afa46020fec62a1b83c590ff Mon Sep 17 00:00:00 2001 From: Alex Date: Mon, 10 Jul 2023 22:12:34 +0200 Subject: [PATCH] fix: remove Chromium channels As fairly pointed out, Chrome channels do not really map to Chromium builds. Closes #10533 --- .../browsers/src/browser-data/browser-data.ts | 26 ++++--------- .../browsers/src/browser-data/chromium.ts | 25 +++++------- .../test/src/chromium/chromium-data.spec.ts | 38 +------------------ 3 files changed, 17 insertions(+), 72 deletions(-) diff --git a/packages/browsers/src/browser-data/browser-data.ts b/packages/browsers/src/browser-data/browser-data.ts index 2d0fdc7922ac8..ac270cc5c8067 100644 --- a/packages/browsers/src/browser-data/browser-data.ts +++ b/packages/browsers/src/browser-data/browser-data.ts @@ -68,7 +68,9 @@ export async function resolveBuildId( case BrowserTag.CANARY: case BrowserTag.DEV: case BrowserTag.STABLE: - throw new Error(`${tag} is not supported for ${browser}`); + throw new Error( + `${tag} is not supported for ${browser}. Use 'latest' instead.` + ); } case Browser.CHROME: switch (tag as BrowserTag) { @@ -113,26 +115,13 @@ export async function resolveBuildId( case Browser.CHROMIUM: switch (tag as BrowserTag) { case BrowserTag.LATEST: - return await chromium.resolveBuildId(platform, 'latest'); + return await chromium.resolveBuildId(platform); case BrowserTag.BETA: - return await chromium.resolveBuildId( - platform, - ChromeReleaseChannel.BETA - ); case BrowserTag.CANARY: - return await chromium.resolveBuildId( - platform, - ChromeReleaseChannel.CANARY - ); case BrowserTag.DEV: - return await chromium.resolveBuildId( - platform, - ChromeReleaseChannel.DEV - ); case BrowserTag.STABLE: - return await chromium.resolveBuildId( - platform, - ChromeReleaseChannel.STABLE + throw new Error( + `${tag} is not supported for ${browser}. Use 'latest' instead.` ); } } @@ -167,12 +156,11 @@ export function resolveSystemExecutablePath( switch (browser) { case Browser.CHROMEDRIVER: case Browser.FIREFOX: + case Browser.CHROMIUM: throw new Error( `System browser detection is not supported for ${browser} yet.` ); case Browser.CHROME: - return chromium.resolveSystemExecutablePath(platform, channel); - case Browser.CHROMIUM: return chrome.resolveSystemExecutablePath(platform, channel); } } diff --git a/packages/browsers/src/browser-data/chromium.ts b/packages/browsers/src/browser-data/chromium.ts index cea1280378b87..4215d34127fe3 100644 --- a/packages/browsers/src/browser-data/chromium.ts +++ b/packages/browsers/src/browser-data/chromium.ts @@ -18,10 +18,7 @@ import path from 'path'; import {getText} from '../httpUtil.js'; -import {getLastKnownGoodReleaseForChannel} from './chrome.js'; -import {BrowserPlatform, ChromeReleaseChannel} from './types.js'; - -export {resolveSystemExecutablePath} from './chrome.js'; +import {BrowserPlatform} from './types.js'; function archive(platform: BrowserPlatform, buildId: string): string { switch (platform) { @@ -89,17 +86,13 @@ export function relativeExecutablePath( } } export async function resolveBuildId( - platform: BrowserPlatform, - channel: ChromeReleaseChannel | 'latest' = 'latest' + platform: BrowserPlatform ): Promise { - if (channel === 'latest') { - return await getText( - new URL( - `https://storage.googleapis.com/chromium-browser-snapshots/${folder( - platform - )}/LAST_CHANGE` - ) - ); - } - return (await getLastKnownGoodReleaseForChannel(channel)).revision; + return await getText( + new URL( + `https://storage.googleapis.com/chromium-browser-snapshots/${folder( + platform + )}/LAST_CHANGE` + ) + ); } diff --git a/packages/browsers/test/src/chromium/chromium-data.spec.ts b/packages/browsers/test/src/chromium/chromium-data.spec.ts index 5dae0d0d293cf..0f5c2d2256764 100644 --- a/packages/browsers/test/src/chromium/chromium-data.spec.ts +++ b/packages/browsers/test/src/chromium/chromium-data.spec.ts @@ -17,14 +17,10 @@ import assert from 'assert'; import path from 'path'; -import { - BrowserPlatform, - ChromeReleaseChannel, -} from '../../../lib/cjs/browser-data/browser-data.js'; +import {BrowserPlatform} from '../../../lib/cjs/browser-data/browser-data.js'; import { resolveDownloadUrl, relativeExecutablePath, - resolveSystemExecutablePath, } from '../../../lib/cjs/browser-data/chromium.js'; describe('Chromium', () => { @@ -73,36 +69,4 @@ describe('Chromium', () => { path.join('chrome-win', 'chrome.exe') ); }); - - it('should resolve system executable path', () => { - process.env['PROGRAMFILES'] = 'C:\\ProgramFiles'; - try { - assert.strictEqual( - resolveSystemExecutablePath( - BrowserPlatform.WIN32, - ChromeReleaseChannel.DEV - ), - 'C:\\ProgramFiles\\Google\\Chrome Dev\\Application\\chrome.exe' - ); - } finally { - delete process.env['PROGRAMFILES']; - } - - assert.strictEqual( - resolveSystemExecutablePath( - BrowserPlatform.MAC, - ChromeReleaseChannel.BETA - ), - '/Applications/Google Chrome Beta.app/Contents/MacOS/Google Chrome Beta' - ); - assert.throws(() => { - assert.strictEqual( - resolveSystemExecutablePath( - BrowserPlatform.LINUX, - ChromeReleaseChannel.CANARY - ), - path.join('chrome-linux', 'chrome') - ); - }, new Error(`Unable to detect browser executable path for 'canary' on linux.`)); - }); });