chore: use given cdp port for communicating chrome (#35759)

This commit is contained in:
Pavel Feldman 2025-05-08 11:02:55 -07:00 committed by GitHub
parent 33f811b2ae
commit 4facda5f22
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
8 changed files with 15 additions and 15 deletions

View File

@ -557,7 +557,7 @@ scheme.BrowserTypeLaunchParams = tObject({
tracesDir: tOptional(tString),
chromiumSandbox: tOptional(tBoolean),
firefoxUserPrefs: tOptional(tAny),
webSocketPort: tOptional(tNumber),
cdpPort: tOptional(tNumber),
slowMo: tOptional(tNumber),
});
scheme.BrowserTypeLaunchResult = tObject({
@ -587,7 +587,7 @@ scheme.BrowserTypeLaunchPersistentContextParams = tObject({
tracesDir: tOptional(tString),
chromiumSandbox: tOptional(tBoolean),
firefoxUserPrefs: tOptional(tAny),
webSocketPort: tOptional(tNumber),
cdpPort: tOptional(tNumber),
noDefaultViewport: tOptional(tBoolean),
viewport: tOptional(tObject({
width: tNumber,

View File

@ -95,7 +95,7 @@ export abstract class BrowserType extends SdkObject {
return browser;
}
async launchPersistentContext(metadata: CallMetadata, userDataDir: string, options: channels.BrowserTypeLaunchPersistentContextOptions & { webSocketPort?: number, internalIgnoreHTTPSErrors?: boolean }): Promise<BrowserContext> {
async launchPersistentContext(metadata: CallMetadata, userDataDir: string, options: channels.BrowserTypeLaunchPersistentContextOptions & { cdpPort?: number, internalIgnoreHTTPSErrors?: boolean }): Promise<BrowserContext> {
const launchOptions = this._validateLaunchOptions(options);
const controller = new ProgressController(metadata, this);
controller.setLogName('browser');
@ -271,7 +271,7 @@ export abstract class BrowserType extends SdkObject {
};
progress.cleanupWhenAborted(() => closeOrKill(progress.timeUntilDeadline()));
const wsEndpoint = (await readyState?.waitUntilReady())?.wsEndpoint;
if (options.webSocketPort !== undefined || !this.supportsPipeTransport()) {
if (options.cdpPort !== undefined || !this.supportsPipeTransport()) {
transport = await WebSocketTransport.connect(progress, wsEndpoint!);
} else {
const stdio = launchedProcess.stdio as unknown as [NodeJS.ReadableStream, NodeJS.WritableStream, NodeJS.WritableStream, NodeJS.WritableStream, NodeJS.ReadableStream];

View File

@ -276,8 +276,8 @@ export class Chromium extends BrowserType {
override defaultArgs(options: types.LaunchOptions, isPersistent: boolean, userDataDir: string): string[] {
const chromeArguments = this._innerDefaultArgs(options);
chromeArguments.push(`--user-data-dir=${userDataDir}`);
if (options.webSocketPort !== undefined)
chromeArguments.push(`--remote-debugging-port=${options.webSocketPort}`);
if (options.cdpPort !== undefined)
chromeArguments.push(`--remote-debugging-port=${options.cdpPort}`);
else
chromeArguments.push('--remote-debugging-pipe');
if (isPersistent)
@ -345,7 +345,7 @@ export class Chromium extends BrowserType {
}
override readyState(options: types.LaunchOptions): BrowserReadyState | undefined {
if (options.webSocketPort !== undefined || options.args?.some(a => a.startsWith('--remote-debugging-port')))
if (options.cdpPort !== undefined || options.args?.some(a => a.startsWith('--remote-debugging-port')))
return new ChromiumReadyState();
return undefined;
}

View File

@ -112,7 +112,7 @@ export class RecorderApp extends EventEmitter implements IRecorderApp {
persistentContextOptions: {
noDefaultViewport: true,
headless: !!process.env.PWTEST_CLI_HEADLESS || (isUnderTest() && !headed),
webSocketPort: isUnderTest() ? 0 : undefined,
cdpPort: isUnderTest() ? 0 : undefined,
handleSIGINT: recorder.handleSIGINT,
executablePath: inspectedContext._browser.options.isChromium ? inspectedContext._browser.options.customExecutablePath : undefined,
// Use the same channel as the inspected context to guarantee that the browser is installed.

View File

@ -174,7 +174,7 @@ export async function openTraceViewerApp(url: string, browserName: string, optio
windowSize: { width: 1280, height: 800 },
persistentContextOptions: {
...options?.persistentContextOptions,
webSocketPort: isUnderTest() ? 0 : undefined,
cdpPort: isUnderTest() ? 0 : undefined,
headless: !!options?.headless,
colorScheme: isUnderTest() ? 'light' : undefined,
},

View File

@ -153,7 +153,7 @@ export type NormalizedContinueOverrides = {
export type EmulatedSize = { viewport: Size, screen: Size };
export type LaunchOptions = channels.BrowserTypeLaunchOptions & {
webSocketPort?: number,
cdpPort?: number,
proxyOverride?: ProxySettings,
assistantMode?: boolean,
};

View File

@ -967,7 +967,7 @@ export type BrowserTypeLaunchParams = {
tracesDir?: string,
chromiumSandbox?: boolean,
firefoxUserPrefs?: any,
webSocketPort?: number,
cdpPort?: number,
slowMo?: number,
};
export type BrowserTypeLaunchOptions = {
@ -994,7 +994,7 @@ export type BrowserTypeLaunchOptions = {
tracesDir?: string,
chromiumSandbox?: boolean,
firefoxUserPrefs?: any,
webSocketPort?: number,
cdpPort?: number,
slowMo?: number,
};
export type BrowserTypeLaunchResult = {
@ -1024,7 +1024,7 @@ export type BrowserTypeLaunchPersistentContextParams = {
tracesDir?: string,
chromiumSandbox?: boolean,
firefoxUserPrefs?: any,
webSocketPort?: number,
cdpPort?: number,
noDefaultViewport?: boolean,
viewport?: {
width: number,
@ -1107,7 +1107,7 @@ export type BrowserTypeLaunchPersistentContextOptions = {
tracesDir?: string,
chromiumSandbox?: boolean,
firefoxUserPrefs?: any,
webSocketPort?: number,
cdpPort?: number,
noDefaultViewport?: boolean,
viewport?: {
width: number,

View File

@ -496,7 +496,7 @@ LaunchOptions:
tracesDir: string?
chromiumSandbox: boolean?
firefoxUserPrefs: json?
webSocketPort: number?
cdpPort: number?
ContextOptions: