chromium.js 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. /**
  2. * @license
  3. * Copyright 2023 Google Inc.
  4. * SPDX-License-Identifier: Apache-2.0
  5. */
  6. import path from 'path';
  7. import { getText } from '../httpUtil.js';
  8. import { BrowserPlatform } from './types.js';
  9. function archive(platform, buildId) {
  10. switch (platform) {
  11. case BrowserPlatform.LINUX:
  12. return 'chrome-linux';
  13. case BrowserPlatform.MAC_ARM:
  14. case BrowserPlatform.MAC:
  15. return 'chrome-mac';
  16. case BrowserPlatform.WIN32:
  17. case BrowserPlatform.WIN64:
  18. // Windows archive name changed at r591479.
  19. return parseInt(buildId, 10) > 591479 ? 'chrome-win' : 'chrome-win32';
  20. }
  21. }
  22. function folder(platform) {
  23. switch (platform) {
  24. case BrowserPlatform.LINUX:
  25. return 'Linux_x64';
  26. case BrowserPlatform.MAC_ARM:
  27. return 'Mac_Arm';
  28. case BrowserPlatform.MAC:
  29. return 'Mac';
  30. case BrowserPlatform.WIN32:
  31. return 'Win';
  32. case BrowserPlatform.WIN64:
  33. return 'Win_x64';
  34. }
  35. }
  36. export function resolveDownloadUrl(platform, buildId, baseUrl = 'https://storage.googleapis.com/chromium-browser-snapshots') {
  37. return `${baseUrl}/${resolveDownloadPath(platform, buildId).join('/')}`;
  38. }
  39. export function resolveDownloadPath(platform, buildId) {
  40. return [folder(platform), buildId, `${archive(platform, buildId)}.zip`];
  41. }
  42. export function relativeExecutablePath(platform, _buildId) {
  43. switch (platform) {
  44. case BrowserPlatform.MAC:
  45. case BrowserPlatform.MAC_ARM:
  46. return path.join('chrome-mac', 'Chromium.app', 'Contents', 'MacOS', 'Chromium');
  47. case BrowserPlatform.LINUX:
  48. return path.join('chrome-linux', 'chrome');
  49. case BrowserPlatform.WIN32:
  50. case BrowserPlatform.WIN64:
  51. return path.join('chrome-win', 'chrome.exe');
  52. }
  53. }
  54. export async function resolveBuildId(platform) {
  55. return await getText(new URL(`https://storage.googleapis.com/chromium-browser-snapshots/${folder(platform)}/LAST_CHANGE`));
  56. }
  57. export function compareVersions(a, b) {
  58. return Number(a) - Number(b);
  59. }
  60. //# sourceMappingURL=chromium.js.map