chore: use base BrowserType to reference browser types
This commit is contained in:
parent
2ae196f708
commit
168c76f239
|
|
@ -131,7 +131,7 @@ export class Chromium extends BrowserType {
|
||||||
return directory ? new CRDevTools(path.join(directory, 'devtools-preferences.json')) : undefined;
|
return directory ? new CRDevTools(path.join(directory, 'devtools-preferences.json')) : undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
async _connectToTransport(transport: ConnectionTransport, options: BrowserOptions): Promise<CRBrowser> {
|
override async _connectToTransport(transport: ConnectionTransport, options: BrowserOptions): Promise<CRBrowser> {
|
||||||
let devtools = this._devtools;
|
let devtools = this._devtools;
|
||||||
if ((options as any).__testHookForDevTools) {
|
if ((options as any).__testHookForDevTools) {
|
||||||
devtools = this._createDevTools();
|
devtools = this._createDevTools();
|
||||||
|
|
@ -140,7 +140,7 @@ export class Chromium extends BrowserType {
|
||||||
return CRBrowser.connect(this.attribution.playwright, transport, options, devtools);
|
return CRBrowser.connect(this.attribution.playwright, transport, options, devtools);
|
||||||
}
|
}
|
||||||
|
|
||||||
_doRewriteStartupLog(error: ProtocolError): ProtocolError {
|
override _doRewriteStartupLog(error: ProtocolError): ProtocolError {
|
||||||
if (!error.logs)
|
if (!error.logs)
|
||||||
return error;
|
return error;
|
||||||
if (error.logs.includes('Missing X server'))
|
if (error.logs.includes('Missing X server'))
|
||||||
|
|
@ -161,11 +161,11 @@ export class Chromium extends BrowserType {
|
||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
|
||||||
_amendEnvironment(env: Env, userDataDir: string, executable: string, browserArguments: string[]): Env {
|
override _amendEnvironment(env: Env, userDataDir: string, executable: string, browserArguments: string[]): Env {
|
||||||
return env;
|
return env;
|
||||||
}
|
}
|
||||||
|
|
||||||
_attemptToGracefullyCloseBrowser(transport: ConnectionTransport): void {
|
override _attemptToGracefullyCloseBrowser(transport: ConnectionTransport): void {
|
||||||
const message: ProtocolRequest = { method: 'Browser.close', id: kBrowserCloseMessageId, params: {} };
|
const message: ProtocolRequest = { method: 'Browser.close', id: kBrowserCloseMessageId, params: {} };
|
||||||
transport.send(message);
|
transport.send(message);
|
||||||
}
|
}
|
||||||
|
|
@ -277,7 +277,7 @@ export class Chromium extends BrowserType {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
_defaultArgs(options: types.LaunchOptions, isPersistent: boolean, userDataDir: string): string[] {
|
override _defaultArgs(options: types.LaunchOptions, isPersistent: boolean, userDataDir: string): string[] {
|
||||||
const chromeArguments = this._innerDefaultArgs(options);
|
const chromeArguments = this._innerDefaultArgs(options);
|
||||||
chromeArguments.push(`--user-data-dir=${userDataDir}`);
|
chromeArguments.push(`--user-data-dir=${userDataDir}`);
|
||||||
if (options.useWebSocket)
|
if (options.useWebSocket)
|
||||||
|
|
|
||||||
|
|
@ -33,11 +33,11 @@ export class Firefox extends BrowserType {
|
||||||
super(parent, 'firefox');
|
super(parent, 'firefox');
|
||||||
}
|
}
|
||||||
|
|
||||||
_connectToTransport(transport: ConnectionTransport, options: BrowserOptions): Promise<FFBrowser> {
|
override _connectToTransport(transport: ConnectionTransport, options: BrowserOptions): Promise<FFBrowser> {
|
||||||
return FFBrowser.connect(this.attribution.playwright, transport, options);
|
return FFBrowser.connect(this.attribution.playwright, transport, options);
|
||||||
}
|
}
|
||||||
|
|
||||||
_doRewriteStartupLog(error: ProtocolError): ProtocolError {
|
override _doRewriteStartupLog(error: ProtocolError): ProtocolError {
|
||||||
if (!error.logs)
|
if (!error.logs)
|
||||||
return error;
|
return error;
|
||||||
// https://github.com/microsoft/playwright/issues/6500
|
// https://github.com/microsoft/playwright/issues/6500
|
||||||
|
|
@ -48,7 +48,7 @@ export class Firefox extends BrowserType {
|
||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
|
||||||
_amendEnvironment(env: Env, userDataDir: string, executable: string, browserArguments: string[]): Env {
|
override _amendEnvironment(env: Env, userDataDir: string, executable: string, browserArguments: string[]): Env {
|
||||||
if (!path.isAbsolute(os.homedir()))
|
if (!path.isAbsolute(os.homedir()))
|
||||||
throw new Error(`Cannot launch Firefox with relative home directory. Did you set ${os.platform() === 'win32' ? 'USERPROFILE' : 'HOME'} to a relative path?`);
|
throw new Error(`Cannot launch Firefox with relative home directory. Did you set ${os.platform() === 'win32' ? 'USERPROFILE' : 'HOME'} to a relative path?`);
|
||||||
if (os.platform() === 'linux') {
|
if (os.platform() === 'linux') {
|
||||||
|
|
@ -60,12 +60,12 @@ export class Firefox extends BrowserType {
|
||||||
return env;
|
return env;
|
||||||
}
|
}
|
||||||
|
|
||||||
_attemptToGracefullyCloseBrowser(transport: ConnectionTransport): void {
|
override _attemptToGracefullyCloseBrowser(transport: ConnectionTransport): void {
|
||||||
const message = { method: 'Browser.close', params: {}, id: kBrowserCloseMessageId };
|
const message = { method: 'Browser.close', params: {}, id: kBrowserCloseMessageId };
|
||||||
transport.send(message);
|
transport.send(message);
|
||||||
}
|
}
|
||||||
|
|
||||||
_defaultArgs(options: types.LaunchOptions, isPersistent: boolean, userDataDir: string): string[] {
|
override _defaultArgs(options: types.LaunchOptions, isPersistent: boolean, userDataDir: string): string[] {
|
||||||
const { args = [], headless } = options;
|
const { args = [], headless } = options;
|
||||||
const userDataDirArg = args.find(arg => arg.startsWith('-profile') || arg.startsWith('--profile'));
|
const userDataDirArg = args.find(arg => arg.startsWith('-profile') || arg.startsWith('--profile'));
|
||||||
if (userDataDirArg)
|
if (userDataDirArg)
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,7 @@ import { debugLogger } from '../utils/debugLogger';
|
||||||
import type { Page } from './page';
|
import type { Page } from './page';
|
||||||
import { DebugController } from './debugController';
|
import { DebugController } from './debugController';
|
||||||
import type { Language } from '../utils/isomorphic/locatorGenerators';
|
import type { Language } from '../utils/isomorphic/locatorGenerators';
|
||||||
|
import type { BrowserType } from './browserType';
|
||||||
|
|
||||||
type PlaywrightOptions = {
|
type PlaywrightOptions = {
|
||||||
socksProxyPort?: number;
|
socksProxyPort?: number;
|
||||||
|
|
@ -38,11 +39,11 @@ type PlaywrightOptions = {
|
||||||
|
|
||||||
export class Playwright extends SdkObject {
|
export class Playwright extends SdkObject {
|
||||||
readonly selectors: Selectors;
|
readonly selectors: Selectors;
|
||||||
readonly chromium: Chromium;
|
readonly chromium: BrowserType;
|
||||||
readonly android: Android;
|
readonly android: Android;
|
||||||
readonly electron: Electron;
|
readonly electron: Electron;
|
||||||
readonly firefox: Firefox;
|
readonly firefox: BrowserType;
|
||||||
readonly webkit: WebKit;
|
readonly webkit: BrowserType;
|
||||||
readonly options: PlaywrightOptions;
|
readonly options: PlaywrightOptions;
|
||||||
readonly debugController: DebugController;
|
readonly debugController: DebugController;
|
||||||
private _allPages = new Set<Page>();
|
private _allPages = new Set<Page>();
|
||||||
|
|
|
||||||
|
|
@ -32,15 +32,15 @@ export class WebKit extends BrowserType {
|
||||||
super(parent, 'webkit');
|
super(parent, 'webkit');
|
||||||
}
|
}
|
||||||
|
|
||||||
_connectToTransport(transport: ConnectionTransport, options: BrowserOptions): Promise<WKBrowser> {
|
override _connectToTransport(transport: ConnectionTransport, options: BrowserOptions): Promise<WKBrowser> {
|
||||||
return WKBrowser.connect(this.attribution.playwright, transport, options);
|
return WKBrowser.connect(this.attribution.playwright, transport, options);
|
||||||
}
|
}
|
||||||
|
|
||||||
_amendEnvironment(env: Env, userDataDir: string, executable: string, browserArguments: string[]): Env {
|
override _amendEnvironment(env: Env, userDataDir: string, executable: string, browserArguments: string[]): Env {
|
||||||
return { ...env, CURL_COOKIE_JAR_PATH: path.join(userDataDir, 'cookiejar.db') };
|
return { ...env, CURL_COOKIE_JAR_PATH: path.join(userDataDir, 'cookiejar.db') };
|
||||||
}
|
}
|
||||||
|
|
||||||
_doRewriteStartupLog(error: ProtocolError): ProtocolError {
|
override _doRewriteStartupLog(error: ProtocolError): ProtocolError {
|
||||||
if (!error.logs)
|
if (!error.logs)
|
||||||
return error;
|
return error;
|
||||||
if (error.logs.includes('cannot open display'))
|
if (error.logs.includes('cannot open display'))
|
||||||
|
|
@ -48,11 +48,11 @@ export class WebKit extends BrowserType {
|
||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
|
||||||
_attemptToGracefullyCloseBrowser(transport: ConnectionTransport): void {
|
override _attemptToGracefullyCloseBrowser(transport: ConnectionTransport): void {
|
||||||
transport.send({ method: 'Playwright.close', params: {}, id: kBrowserCloseMessageId });
|
transport.send({ method: 'Playwright.close', params: {}, id: kBrowserCloseMessageId });
|
||||||
}
|
}
|
||||||
|
|
||||||
_defaultArgs(options: types.LaunchOptions, isPersistent: boolean, userDataDir: string): string[] {
|
override _defaultArgs(options: types.LaunchOptions, isPersistent: boolean, userDataDir: string): string[] {
|
||||||
const { args = [], proxy, headless } = options;
|
const { args = [], proxy, headless } = options;
|
||||||
const userDataDirArg = args.find(arg => arg.startsWith('--user-data-dir'));
|
const userDataDirArg = args.find(arg => arg.startsWith('--user-data-dir'));
|
||||||
if (userDataDirArg)
|
if (userDataDirArg)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue