chromium.js 2.9 KB

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