chrome-headless-shell.js 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. /**
  2. * @license
  3. * Copyright 2023 Google Inc.
  4. * SPDX-License-Identifier: Apache-2.0
  5. */
  6. import path from 'path';
  7. import { BrowserPlatform } from './types.js';
  8. function folder(platform) {
  9. switch (platform) {
  10. case BrowserPlatform.LINUX:
  11. return 'linux64';
  12. case BrowserPlatform.MAC_ARM:
  13. return 'mac-arm64';
  14. case BrowserPlatform.MAC:
  15. return 'mac-x64';
  16. case BrowserPlatform.WIN32:
  17. return 'win32';
  18. case BrowserPlatform.WIN64:
  19. return 'win64';
  20. }
  21. }
  22. export function resolveDownloadUrl(platform, buildId, baseUrl = 'https://storage.googleapis.com/chrome-for-testing-public') {
  23. return `${baseUrl}/${resolveDownloadPath(platform, buildId).join('/')}`;
  24. }
  25. export function resolveDownloadPath(platform, buildId) {
  26. return [
  27. buildId,
  28. folder(platform),
  29. `chrome-headless-shell-${folder(platform)}.zip`,
  30. ];
  31. }
  32. export function relativeExecutablePath(platform, _buildId) {
  33. switch (platform) {
  34. case BrowserPlatform.MAC:
  35. case BrowserPlatform.MAC_ARM:
  36. return path.join('chrome-headless-shell-' + folder(platform), 'chrome-headless-shell');
  37. case BrowserPlatform.LINUX:
  38. return path.join('chrome-headless-shell-linux64', 'chrome-headless-shell');
  39. case BrowserPlatform.WIN32:
  40. case BrowserPlatform.WIN64:
  41. return path.join('chrome-headless-shell-' + folder(platform), 'chrome-headless-shell.exe');
  42. }
  43. }
  44. export { resolveBuildId, compareVersions } from './chrome.js';
  45. //# sourceMappingURL=chrome-headless-shell.js.map