parent
38e27c9c6c
commit
ec68b31dc4
|
|
@ -6,6 +6,11 @@
|
|||
"revision": "888113",
|
||||
"installByDefault": true
|
||||
},
|
||||
{
|
||||
"name": "chromium-with-symbols",
|
||||
"revision": "888113",
|
||||
"installByDefault": false
|
||||
},
|
||||
{
|
||||
"name": "firefox",
|
||||
"revision": "1271",
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ import { ConnectionTransport, ProtocolRequest, WebSocketTransport } from '../tra
|
|||
import { CRDevTools } from './crDevTools';
|
||||
import { BrowserOptions, BrowserProcess, PlaywrightOptions } from '../browser';
|
||||
import * as types from '../types';
|
||||
import { debugMode, headersArrayToObject, removeFolders } from '../../utils/utils';
|
||||
import { assert, debugMode, headersArrayToObject, removeFolders } from '../../utils/utils';
|
||||
import { RecentLogsCollector } from '../../utils/debugLogger';
|
||||
import { ProgressController } from '../progress';
|
||||
import { TimeoutSettings } from '../../utils/timeoutSettings';
|
||||
|
|
@ -49,8 +49,16 @@ export class Chromium extends BrowserType {
|
|||
}
|
||||
|
||||
executablePath(channel?: string): string {
|
||||
if (channel)
|
||||
return findChromiumChannel(channel);
|
||||
if (channel) {
|
||||
let executablePath = undefined;
|
||||
if ((channel as any) === 'chromium-with-symbols')
|
||||
executablePath = this._registry.executablePath('chromium-with-symbols');
|
||||
else
|
||||
executablePath = findChromiumChannel(channel);
|
||||
assert(executablePath, `unsupported chromium channel "${channel}"`);
|
||||
assert(fs.existsSync(executablePath), `"${channel}" channel is not installed. Try running 'npx playwright install ${channel}'`);
|
||||
return executablePath;
|
||||
}
|
||||
return super.executablePath(channel);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -38,13 +38,8 @@ export async function validateHostRequirements(registry: registry.Registry, brow
|
|||
}
|
||||
|
||||
const DL_OPEN_LIBRARIES = {
|
||||
'chromium': [],
|
||||
'webkit': ['libGLESv2.so.2', 'libx264.so'],
|
||||
'webkit-technology-preview': ['libGLESv2.so.2', 'libx264.so'],
|
||||
'firefox': [],
|
||||
'firefox-beta': [],
|
||||
'clank': [],
|
||||
'ffmpeg': [],
|
||||
};
|
||||
|
||||
function isSupportedWindowsVersion(): boolean {
|
||||
|
|
@ -245,7 +240,7 @@ async function missingFileDependencies(filePath: string, extraLDPaths: string[])
|
|||
}
|
||||
|
||||
async function missingDLOPENLibraries(browserName: registry.BrowserName): Promise<string[]> {
|
||||
const libraries = DL_OPEN_LIBRARIES[browserName];
|
||||
const libraries: string[] = (DL_OPEN_LIBRARIES as any)[browserName] || [];
|
||||
if (!libraries.length)
|
||||
return [];
|
||||
// NOTE: Using full-qualified path to `ldconfig` since `/sbin` is not part of the
|
||||
|
|
|
|||
|
|
@ -22,8 +22,8 @@ import * as util from 'util';
|
|||
import { getUbuntuVersionSync } from './ubuntuVersion';
|
||||
import { assert, getFromENV } from './utils';
|
||||
|
||||
export type BrowserName = 'chromium'|'webkit'|'firefox'|'firefox-beta'|'ffmpeg'|'webkit-technology-preview';
|
||||
export const allBrowserNames: Set<BrowserName> = new Set(['chromium', 'webkit', 'firefox', 'ffmpeg', 'webkit-technology-preview', 'firefox-beta']);
|
||||
export type BrowserName = 'chromium'|'chromium-with-symbols'|'webkit'|'firefox'|'firefox-beta'|'ffmpeg'|'webkit-technology-preview';
|
||||
export const allBrowserNames: Set<BrowserName> = new Set(['chromium', 'chromium-with-symbols', 'webkit', 'firefox', 'ffmpeg', 'webkit-technology-preview', 'firefox-beta']);
|
||||
|
||||
const PACKAGE_PATH = path.join(__dirname, '..', '..');
|
||||
|
||||
|
|
@ -47,6 +47,17 @@ const EXECUTABLE_PATHS = {
|
|||
'win32': ['chrome-win', 'chrome.exe'],
|
||||
'win64': ['chrome-win', 'chrome.exe'],
|
||||
},
|
||||
'chromium-with-symbols': {
|
||||
'ubuntu18.04': ['chrome-linux', 'chrome'],
|
||||
'ubuntu20.04': ['chrome-linux', 'chrome'],
|
||||
'mac10.13': ['chrome-mac', 'Chromium.app', 'Contents', 'MacOS', 'Chromium'],
|
||||
'mac10.14': ['chrome-mac', 'Chromium.app', 'Contents', 'MacOS', 'Chromium'],
|
||||
'mac10.15': ['chrome-mac', 'Chromium.app', 'Contents', 'MacOS', 'Chromium'],
|
||||
'mac11': ['chrome-mac', 'Chromium.app', 'Contents', 'MacOS', 'Chromium'],
|
||||
'mac11-arm64': ['chrome-mac', 'Chromium.app', 'Contents', 'MacOS', 'Chromium'],
|
||||
'win32': ['chrome-win', 'chrome.exe'],
|
||||
'win64': ['chrome-win', 'chrome.exe'],
|
||||
},
|
||||
'firefox': {
|
||||
'ubuntu18.04': ['firefox', 'firefox'],
|
||||
'ubuntu20.04': ['firefox', 'firefox'],
|
||||
|
|
@ -116,6 +127,17 @@ const DOWNLOAD_URLS = {
|
|||
'win32': '%s/builds/chromium/%s/chromium-win32.zip',
|
||||
'win64': '%s/builds/chromium/%s/chromium-win64.zip',
|
||||
},
|
||||
'chromium-with-symbols': {
|
||||
'ubuntu18.04': '%s/builds/chromium/%s/chromium-with-symbols-linux.zip',
|
||||
'ubuntu20.04': '%s/builds/chromium/%s/chromium-with-symbols-linux.zip',
|
||||
'mac10.13': '%s/builds/chromium/%s/chromium-with-symbols-mac.zip',
|
||||
'mac10.14': '%s/builds/chromium/%s/chromium-with-symbols-mac.zip',
|
||||
'mac10.15': '%s/builds/chromium/%s/chromium-with-symbols-mac.zip',
|
||||
'mac11': '%s/builds/chromium/%s/chromium-with-symbols-mac.zip',
|
||||
'mac11-arm64': '%s/builds/chromium/%s/chromium-with-symbols-mac-arm64.zip',
|
||||
'win32': '%s/builds/chromium/%s/chromium-with-symbols-win32.zip',
|
||||
'win64': '%s/builds/chromium/%s/chromium-with-symbols-win64.zip',
|
||||
},
|
||||
'firefox': {
|
||||
'ubuntu18.04': '%s/builds/firefox/%s/firefox-ubuntu-18.04.zip',
|
||||
'ubuntu20.04': '%s/builds/firefox/%s/firefox-ubuntu-20.04.zip',
|
||||
|
|
@ -301,6 +323,7 @@ export class Registry {
|
|||
const browserDirectory = this.browserDirectory(browserName);
|
||||
switch (browserName) {
|
||||
case 'chromium':
|
||||
case 'chromium-with-symbols':
|
||||
return [path.join(browserDirectory, 'chrome-linux')];
|
||||
case 'webkit':
|
||||
case 'webkit-technology-preview':
|
||||
|
|
@ -322,11 +345,11 @@ export class Registry {
|
|||
|
||||
windowsExeAndDllDirectories(browserName: BrowserName): string[] {
|
||||
const browserDirectory = this.browserDirectory(browserName);
|
||||
if (browserName === 'chromium')
|
||||
if (browserName === 'chromium' || browserName === 'chromium-with-symbols')
|
||||
return [path.join(browserDirectory, 'chrome-win')];
|
||||
if (browserName === 'firefox')
|
||||
if (browserName === 'firefox' || browserName === 'firefox-beta')
|
||||
return [path.join(browserDirectory, 'firefox')];
|
||||
if (browserName === 'webkit')
|
||||
if (browserName === 'webkit' || browserName === 'webkit-technology-preview')
|
||||
return [browserDirectory];
|
||||
return [];
|
||||
}
|
||||
|
|
@ -342,6 +365,7 @@ export class Registry {
|
|||
assert(browser, `ERROR: Playwright does not support ${browserName}`);
|
||||
const envDownloadHost: { [key: string]: string } = {
|
||||
'chromium': 'PLAYWRIGHT_CHROMIUM_DOWNLOAD_HOST',
|
||||
'chromium-with-symbols': 'PLAYWRIGHT_CHROMIUM_DOWNLOAD_HOST',
|
||||
'firefox': 'PLAYWRIGHT_FIREFOX_DOWNLOAD_HOST',
|
||||
'firefox-beta': 'PLAYWRIGHT_FIREFOX_DOWNLOAD_HOST',
|
||||
'webkit': 'PLAYWRIGHT_WEBKIT_DOWNLOAD_HOST',
|
||||
|
|
|
|||
|
|
@ -66,6 +66,8 @@ Example:
|
|||
// 2. Update browsers.json.
|
||||
console.log('\nUpdating browsers.json...');
|
||||
descriptor.revision = String(revision);
|
||||
if (browserName === 'chromium')
|
||||
browsersJSON.browsers.find(b => b.name === 'chromium-with-symbols').revision = String(revision);
|
||||
fs.writeFileSync(path.join(ROOT_PATH, 'browsers.json'), JSON.stringify(browsersJSON, null, 2) + '\n');
|
||||
|
||||
if (descriptor.installByDefault) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue