tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

chrome-headless-shell.ts (1749B)


      1 /**
      2 * @license
      3 * Copyright 2023 Google Inc.
      4 * SPDX-License-Identifier: Apache-2.0
      5 */
      6 import path from 'node:path';
      7 
      8 import {BrowserPlatform} from './types.js';
      9 
     10 function folder(platform: BrowserPlatform): string {
     11  switch (platform) {
     12    case BrowserPlatform.LINUX_ARM:
     13    case BrowserPlatform.LINUX:
     14      return 'linux64';
     15    case BrowserPlatform.MAC_ARM:
     16      return 'mac-arm64';
     17    case BrowserPlatform.MAC:
     18      return 'mac-x64';
     19    case BrowserPlatform.WIN32:
     20      return 'win32';
     21    case BrowserPlatform.WIN64:
     22      return 'win64';
     23  }
     24 }
     25 
     26 export function resolveDownloadUrl(
     27  platform: BrowserPlatform,
     28  buildId: string,
     29  baseUrl = 'https://storage.googleapis.com/chrome-for-testing-public',
     30 ): string {
     31  return `${baseUrl}/${resolveDownloadPath(platform, buildId).join('/')}`;
     32 }
     33 
     34 export function resolveDownloadPath(
     35  platform: BrowserPlatform,
     36  buildId: string,
     37 ): string[] {
     38  return [
     39    buildId,
     40    folder(platform),
     41    `chrome-headless-shell-${folder(platform)}.zip`,
     42  ];
     43 }
     44 
     45 export function relativeExecutablePath(
     46  platform: BrowserPlatform,
     47  _buildId: string,
     48 ): string {
     49  switch (platform) {
     50    case BrowserPlatform.MAC:
     51    case BrowserPlatform.MAC_ARM:
     52      return path.join(
     53        'chrome-headless-shell-' + folder(platform),
     54        'chrome-headless-shell',
     55      );
     56    case BrowserPlatform.LINUX_ARM:
     57    case BrowserPlatform.LINUX:
     58      return path.join(
     59        'chrome-headless-shell-linux64',
     60        'chrome-headless-shell',
     61      );
     62    case BrowserPlatform.WIN32:
     63    case BrowserPlatform.WIN64:
     64      return path.join(
     65        'chrome-headless-shell-' + folder(platform),
     66        'chrome-headless-shell.exe',
     67      );
     68  }
     69 }
     70 
     71 export {resolveBuildId, compareVersions} from './chrome.js';