mirror of
https://github.com/microsoft/playwright.git
synced 2025-06-26 21:40:17 +00:00
chore: use given cdp port for communicating chrome (#35759)
This commit is contained in:
parent
33f811b2ae
commit
4facda5f22
@ -557,7 +557,7 @@ scheme.BrowserTypeLaunchParams = tObject({
|
|||||||
tracesDir: tOptional(tString),
|
tracesDir: tOptional(tString),
|
||||||
chromiumSandbox: tOptional(tBoolean),
|
chromiumSandbox: tOptional(tBoolean),
|
||||||
firefoxUserPrefs: tOptional(tAny),
|
firefoxUserPrefs: tOptional(tAny),
|
||||||
webSocketPort: tOptional(tNumber),
|
cdpPort: tOptional(tNumber),
|
||||||
slowMo: tOptional(tNumber),
|
slowMo: tOptional(tNumber),
|
||||||
});
|
});
|
||||||
scheme.BrowserTypeLaunchResult = tObject({
|
scheme.BrowserTypeLaunchResult = tObject({
|
||||||
@ -587,7 +587,7 @@ scheme.BrowserTypeLaunchPersistentContextParams = tObject({
|
|||||||
tracesDir: tOptional(tString),
|
tracesDir: tOptional(tString),
|
||||||
chromiumSandbox: tOptional(tBoolean),
|
chromiumSandbox: tOptional(tBoolean),
|
||||||
firefoxUserPrefs: tOptional(tAny),
|
firefoxUserPrefs: tOptional(tAny),
|
||||||
webSocketPort: tOptional(tNumber),
|
cdpPort: tOptional(tNumber),
|
||||||
noDefaultViewport: tOptional(tBoolean),
|
noDefaultViewport: tOptional(tBoolean),
|
||||||
viewport: tOptional(tObject({
|
viewport: tOptional(tObject({
|
||||||
width: tNumber,
|
width: tNumber,
|
||||||
|
@ -95,7 +95,7 @@ export abstract class BrowserType extends SdkObject {
|
|||||||
return browser;
|
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 launchOptions = this._validateLaunchOptions(options);
|
||||||
const controller = new ProgressController(metadata, this);
|
const controller = new ProgressController(metadata, this);
|
||||||
controller.setLogName('browser');
|
controller.setLogName('browser');
|
||||||
@ -271,7 +271,7 @@ export abstract class BrowserType extends SdkObject {
|
|||||||
};
|
};
|
||||||
progress.cleanupWhenAborted(() => closeOrKill(progress.timeUntilDeadline()));
|
progress.cleanupWhenAborted(() => closeOrKill(progress.timeUntilDeadline()));
|
||||||
const wsEndpoint = (await readyState?.waitUntilReady())?.wsEndpoint;
|
const wsEndpoint = (await readyState?.waitUntilReady())?.wsEndpoint;
|
||||||
if (options.webSocketPort !== undefined || !this.supportsPipeTransport()) {
|
if (options.cdpPort !== undefined || !this.supportsPipeTransport()) {
|
||||||
transport = await WebSocketTransport.connect(progress, wsEndpoint!);
|
transport = await WebSocketTransport.connect(progress, wsEndpoint!);
|
||||||
} else {
|
} else {
|
||||||
const stdio = launchedProcess.stdio as unknown as [NodeJS.ReadableStream, NodeJS.WritableStream, NodeJS.WritableStream, NodeJS.WritableStream, NodeJS.ReadableStream];
|
const stdio = launchedProcess.stdio as unknown as [NodeJS.ReadableStream, NodeJS.WritableStream, NodeJS.WritableStream, NodeJS.WritableStream, NodeJS.ReadableStream];
|
||||||
|
@ -276,8 +276,8 @@ export class Chromium extends BrowserType {
|
|||||||
override 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.webSocketPort !== undefined)
|
if (options.cdpPort !== undefined)
|
||||||
chromeArguments.push(`--remote-debugging-port=${options.webSocketPort}`);
|
chromeArguments.push(`--remote-debugging-port=${options.cdpPort}`);
|
||||||
else
|
else
|
||||||
chromeArguments.push('--remote-debugging-pipe');
|
chromeArguments.push('--remote-debugging-pipe');
|
||||||
if (isPersistent)
|
if (isPersistent)
|
||||||
@ -345,7 +345,7 @@ export class Chromium extends BrowserType {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override readyState(options: types.LaunchOptions): BrowserReadyState | undefined {
|
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 new ChromiumReadyState();
|
||||||
return undefined;
|
return undefined;
|
||||||
}
|
}
|
||||||
|
@ -112,7 +112,7 @@ export class RecorderApp extends EventEmitter implements IRecorderApp {
|
|||||||
persistentContextOptions: {
|
persistentContextOptions: {
|
||||||
noDefaultViewport: true,
|
noDefaultViewport: true,
|
||||||
headless: !!process.env.PWTEST_CLI_HEADLESS || (isUnderTest() && !headed),
|
headless: !!process.env.PWTEST_CLI_HEADLESS || (isUnderTest() && !headed),
|
||||||
webSocketPort: isUnderTest() ? 0 : undefined,
|
cdpPort: isUnderTest() ? 0 : undefined,
|
||||||
handleSIGINT: recorder.handleSIGINT,
|
handleSIGINT: recorder.handleSIGINT,
|
||||||
executablePath: inspectedContext._browser.options.isChromium ? inspectedContext._browser.options.customExecutablePath : undefined,
|
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.
|
// Use the same channel as the inspected context to guarantee that the browser is installed.
|
||||||
|
@ -174,7 +174,7 @@ export async function openTraceViewerApp(url: string, browserName: string, optio
|
|||||||
windowSize: { width: 1280, height: 800 },
|
windowSize: { width: 1280, height: 800 },
|
||||||
persistentContextOptions: {
|
persistentContextOptions: {
|
||||||
...options?.persistentContextOptions,
|
...options?.persistentContextOptions,
|
||||||
webSocketPort: isUnderTest() ? 0 : undefined,
|
cdpPort: isUnderTest() ? 0 : undefined,
|
||||||
headless: !!options?.headless,
|
headless: !!options?.headless,
|
||||||
colorScheme: isUnderTest() ? 'light' : undefined,
|
colorScheme: isUnderTest() ? 'light' : undefined,
|
||||||
},
|
},
|
||||||
|
@ -153,7 +153,7 @@ export type NormalizedContinueOverrides = {
|
|||||||
export type EmulatedSize = { viewport: Size, screen: Size };
|
export type EmulatedSize = { viewport: Size, screen: Size };
|
||||||
|
|
||||||
export type LaunchOptions = channels.BrowserTypeLaunchOptions & {
|
export type LaunchOptions = channels.BrowserTypeLaunchOptions & {
|
||||||
webSocketPort?: number,
|
cdpPort?: number,
|
||||||
proxyOverride?: ProxySettings,
|
proxyOverride?: ProxySettings,
|
||||||
assistantMode?: boolean,
|
assistantMode?: boolean,
|
||||||
};
|
};
|
||||||
|
8
packages/protocol/src/channels.d.ts
vendored
8
packages/protocol/src/channels.d.ts
vendored
@ -967,7 +967,7 @@ export type BrowserTypeLaunchParams = {
|
|||||||
tracesDir?: string,
|
tracesDir?: string,
|
||||||
chromiumSandbox?: boolean,
|
chromiumSandbox?: boolean,
|
||||||
firefoxUserPrefs?: any,
|
firefoxUserPrefs?: any,
|
||||||
webSocketPort?: number,
|
cdpPort?: number,
|
||||||
slowMo?: number,
|
slowMo?: number,
|
||||||
};
|
};
|
||||||
export type BrowserTypeLaunchOptions = {
|
export type BrowserTypeLaunchOptions = {
|
||||||
@ -994,7 +994,7 @@ export type BrowserTypeLaunchOptions = {
|
|||||||
tracesDir?: string,
|
tracesDir?: string,
|
||||||
chromiumSandbox?: boolean,
|
chromiumSandbox?: boolean,
|
||||||
firefoxUserPrefs?: any,
|
firefoxUserPrefs?: any,
|
||||||
webSocketPort?: number,
|
cdpPort?: number,
|
||||||
slowMo?: number,
|
slowMo?: number,
|
||||||
};
|
};
|
||||||
export type BrowserTypeLaunchResult = {
|
export type BrowserTypeLaunchResult = {
|
||||||
@ -1024,7 +1024,7 @@ export type BrowserTypeLaunchPersistentContextParams = {
|
|||||||
tracesDir?: string,
|
tracesDir?: string,
|
||||||
chromiumSandbox?: boolean,
|
chromiumSandbox?: boolean,
|
||||||
firefoxUserPrefs?: any,
|
firefoxUserPrefs?: any,
|
||||||
webSocketPort?: number,
|
cdpPort?: number,
|
||||||
noDefaultViewport?: boolean,
|
noDefaultViewport?: boolean,
|
||||||
viewport?: {
|
viewport?: {
|
||||||
width: number,
|
width: number,
|
||||||
@ -1107,7 +1107,7 @@ export type BrowserTypeLaunchPersistentContextOptions = {
|
|||||||
tracesDir?: string,
|
tracesDir?: string,
|
||||||
chromiumSandbox?: boolean,
|
chromiumSandbox?: boolean,
|
||||||
firefoxUserPrefs?: any,
|
firefoxUserPrefs?: any,
|
||||||
webSocketPort?: number,
|
cdpPort?: number,
|
||||||
noDefaultViewport?: boolean,
|
noDefaultViewport?: boolean,
|
||||||
viewport?: {
|
viewport?: {
|
||||||
width: number,
|
width: number,
|
||||||
|
@ -496,7 +496,7 @@ LaunchOptions:
|
|||||||
tracesDir: string?
|
tracesDir: string?
|
||||||
chromiumSandbox: boolean?
|
chromiumSandbox: boolean?
|
||||||
firefoxUserPrefs: json?
|
firefoxUserPrefs: json?
|
||||||
webSocketPort: number?
|
cdpPort: number?
|
||||||
|
|
||||||
|
|
||||||
ContextOptions:
|
ContextOptions:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user