diff --git a/packages/playwright-core/src/server/chromium/chromium.ts b/packages/playwright-core/src/server/chromium/chromium.ts index e745cca214..5161c32a97 100644 --- a/packages/playwright-core/src/server/chromium/chromium.ts +++ b/packages/playwright-core/src/server/chromium/chromium.ts @@ -131,7 +131,7 @@ export class Chromium extends BrowserType { return directory ? new CRDevTools(path.join(directory, 'devtools-preferences.json')) : undefined; } - async _connectToTransport(transport: ConnectionTransport, options: BrowserOptions): Promise { + override async _connectToTransport(transport: ConnectionTransport, options: BrowserOptions): Promise { let devtools = this._devtools; if ((options as any).__testHookForDevTools) { devtools = this._createDevTools(); @@ -140,7 +140,7 @@ export class Chromium extends BrowserType { return CRBrowser.connect(this.attribution.playwright, transport, options, devtools); } - _doRewriteStartupLog(error: ProtocolError): ProtocolError { + override _doRewriteStartupLog(error: ProtocolError): ProtocolError { if (!error.logs) return error; if (error.logs.includes('Missing X server')) @@ -161,11 +161,11 @@ export class Chromium extends BrowserType { 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; } - _attemptToGracefullyCloseBrowser(transport: ConnectionTransport): void { + override _attemptToGracefullyCloseBrowser(transport: ConnectionTransport): void { const message: ProtocolRequest = { method: 'Browser.close', id: kBrowserCloseMessageId, params: {} }; 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); chromeArguments.push(`--user-data-dir=${userDataDir}`); if (options.useWebSocket) diff --git a/packages/playwright-core/src/server/firefox/firefox.ts b/packages/playwright-core/src/server/firefox/firefox.ts index 96d1edae4c..4958e58f42 100644 --- a/packages/playwright-core/src/server/firefox/firefox.ts +++ b/packages/playwright-core/src/server/firefox/firefox.ts @@ -33,11 +33,11 @@ export class Firefox extends BrowserType { super(parent, 'firefox'); } - _connectToTransport(transport: ConnectionTransport, options: BrowserOptions): Promise { + override _connectToTransport(transport: ConnectionTransport, options: BrowserOptions): Promise { return FFBrowser.connect(this.attribution.playwright, transport, options); } - _doRewriteStartupLog(error: ProtocolError): ProtocolError { + override _doRewriteStartupLog(error: ProtocolError): ProtocolError { if (!error.logs) return error; // https://github.com/microsoft/playwright/issues/6500 @@ -48,7 +48,7 @@ export class Firefox extends BrowserType { 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())) 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') { @@ -60,12 +60,12 @@ export class Firefox extends BrowserType { return env; } - _attemptToGracefullyCloseBrowser(transport: ConnectionTransport): void { + override _attemptToGracefullyCloseBrowser(transport: ConnectionTransport): void { const message = { method: 'Browser.close', params: {}, id: kBrowserCloseMessageId }; 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 userDataDirArg = args.find(arg => arg.startsWith('-profile') || arg.startsWith('--profile')); if (userDataDirArg) diff --git a/packages/playwright-core/src/server/playwright.ts b/packages/playwright-core/src/server/playwright.ts index c4ffd518ce..3d524ad959 100644 --- a/packages/playwright-core/src/server/playwright.ts +++ b/packages/playwright-core/src/server/playwright.ts @@ -28,6 +28,7 @@ import { debugLogger } from '../utils/debugLogger'; import type { Page } from './page'; import { DebugController } from './debugController'; import type { Language } from '../utils/isomorphic/locatorGenerators'; +import type { BrowserType } from './browserType'; type PlaywrightOptions = { socksProxyPort?: number; @@ -38,11 +39,11 @@ type PlaywrightOptions = { export class Playwright extends SdkObject { readonly selectors: Selectors; - readonly chromium: Chromium; + readonly chromium: BrowserType; readonly android: Android; readonly electron: Electron; - readonly firefox: Firefox; - readonly webkit: WebKit; + readonly firefox: BrowserType; + readonly webkit: BrowserType; readonly options: PlaywrightOptions; readonly debugController: DebugController; private _allPages = new Set(); diff --git a/packages/playwright-core/src/server/webkit/webkit.ts b/packages/playwright-core/src/server/webkit/webkit.ts index 33f4a68c20..778b5601a0 100644 --- a/packages/playwright-core/src/server/webkit/webkit.ts +++ b/packages/playwright-core/src/server/webkit/webkit.ts @@ -32,15 +32,15 @@ export class WebKit extends BrowserType { super(parent, 'webkit'); } - _connectToTransport(transport: ConnectionTransport, options: BrowserOptions): Promise { + override _connectToTransport(transport: ConnectionTransport, options: BrowserOptions): Promise { 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') }; } - _doRewriteStartupLog(error: ProtocolError): ProtocolError { + override _doRewriteStartupLog(error: ProtocolError): ProtocolError { if (!error.logs) return error; if (error.logs.includes('cannot open display')) @@ -48,11 +48,11 @@ export class WebKit extends BrowserType { return error; } - _attemptToGracefullyCloseBrowser(transport: ConnectionTransport): void { + override _attemptToGracefullyCloseBrowser(transport: ConnectionTransport): void { 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 userDataDirArg = args.find(arg => arg.startsWith('--user-data-dir')); if (userDataDirArg)