Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion packages/isomorphic/protocolMetainfo.ts
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,6 @@ export const methodMetainfo = new Map<string, MethodMetainfo>([
['BrowserType.launch', { title: 'Launch browser', }],
['BrowserType.launchPersistentContext', { title: 'Launch persistent context', }],
['BrowserType.connectOverCDP', { title: 'Connect over CDP', }],
['BrowserType.connectOverCDPTransport', { title: 'Connect over CDP transport', }],
['BrowserType.connectToWorker', { title: 'Connect to worker', }],
['Browser.startServer', { title: 'Start server', }],
['Browser.stopServer', { title: 'Stop server', }],
Expand Down
10 changes: 0 additions & 10 deletions packages/playwright-core/src/client/browserType.ts
Original file line number Diff line number Diff line change
Expand Up @@ -175,14 +175,4 @@ export class BrowserType extends ChannelOwner<channels.BrowserTypeChannel> imple
return Worker.from(result.worker);
}

async _connectOverCDPTransport(transport: /* ConnectionTransport */ any) {
if (this.name() !== 'chromium')
throw new Error('Connecting over CDP is only supported in Chromium.');
const result = await this._channel.connectOverCDPTransport({ transport });
const browser = Browser.from(result.browser);
browser._connectToBrowserType(this, {}, undefined);
if (result.defaultContext)
await this._instrumentation.runAfterCreateBrowserContext(BrowserContext.from(result.defaultContext));
return browser;
}
}
7 changes: 0 additions & 7 deletions packages/playwright-core/src/protocol/validator.ts
Original file line number Diff line number Diff line change
Expand Up @@ -637,13 +637,6 @@ scheme.BrowserTypeConnectOverCDPResult = tObject({
browser: tChannel(['Browser']),
defaultContext: tOptional(tChannel(['BrowserContext'])),
});
scheme.BrowserTypeConnectOverCDPTransportParams = tObject({
transport: tBinary,
});
scheme.BrowserTypeConnectOverCDPTransportResult = tObject({
browser: tChannel(['Browser']),
defaultContext: tOptional(tChannel(['BrowserContext'])),
});
scheme.BrowserTypeConnectToWorkerParams = tObject({
endpoint: tString,
timeout: tFloat,
Expand Down
4 changes: 0 additions & 4 deletions packages/playwright-core/src/server/browserType.ts
Original file line number Diff line number Diff line change
Expand Up @@ -290,10 +290,6 @@ export abstract class BrowserType extends SdkObject {
throw new Error('CDP connections are only supported by Chromium');
}

async connectOverCDPTransport(progress: Progress, transport: ConnectionTransport): Promise<Browser> {
throw new Error('CDP connections are only supported by Chromium');
}

async connectToWorker(progress: Progress, endpoint: string): Promise<Worker> {
throw new Error('CDP connections are only supported by Chromium');
}
Expand Down
5 changes: 0 additions & 5 deletions packages/playwright-core/src/server/chromium/chromium.ts
Original file line number Diff line number Diff line change
Expand Up @@ -154,11 +154,6 @@ export class Chromium extends BrowserType {
}
}

override async connectOverCDPTransport(progress: Progress, transport: ConnectionTransport) {
const closeAndWait = async () => transport.close();
return this._connectOverCDPImpl(progress, transport, closeAndWait, { isLocal: true });
}

override async connectToWorker(progress: Progress, endpoint: string) {
const wsEndpoint = await urlToWSEndpoint(progress, endpoint, {});
const transport = await WebSocketTransport.connect(progress, wsEndpoint);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,15 +65,6 @@ export class BrowserTypeDispatcher extends Dispatcher<BrowserType, channels.Brow
};
}

async connectOverCDPTransport(params: channels.BrowserTypeConnectOverCDPTransportParams, progress: Progress): Promise<channels.BrowserTypeConnectOverCDPTransportResult> {
if (this._denyLaunch)
throw new Error(`Launching more browsers is not allowed.`);

const browser = await this._object.connectOverCDPTransport(progress, params.transport as any);
const browserDispatcher = new BrowserDispatcher(this, browser);
return { browser: browserDispatcher, defaultContext: browser._defaultContext ? BrowserContextDispatcher.from(browserDispatcher, browser._defaultContext) : undefined };
}

async connectToWorker(params: channels.BrowserTypeConnectToWorkerParams, progress: Progress): Promise<channels.BrowserTypeConnectToWorkerResult> {
if (this._denyLaunch)
throw new Error(`Launching more browsers is not allowed.`);
Expand Down
11 changes: 0 additions & 11 deletions packages/protocol/src/channels.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -893,7 +893,6 @@ export interface BrowserTypeChannel extends BrowserTypeEventTarget, Channel {
launch(params: BrowserTypeLaunchParams, progress?: Progress): Promise<BrowserTypeLaunchResult>;
launchPersistentContext(params: BrowserTypeLaunchPersistentContextParams, progress?: Progress): Promise<BrowserTypeLaunchPersistentContextResult>;
connectOverCDP(params: BrowserTypeConnectOverCDPParams, progress?: Progress): Promise<BrowserTypeConnectOverCDPResult>;
connectOverCDPTransport(params: BrowserTypeConnectOverCDPTransportParams, progress?: Progress): Promise<BrowserTypeConnectOverCDPTransportResult>;
connectToWorker(params: BrowserTypeConnectToWorkerParams, progress?: Progress): Promise<BrowserTypeConnectToWorkerResult>;
}
export type BrowserTypeLaunchParams = {
Expand Down Expand Up @@ -1144,16 +1143,6 @@ export type BrowserTypeConnectOverCDPResult = {
browser: BrowserChannel,
defaultContext?: BrowserContextChannel,
};
export type BrowserTypeConnectOverCDPTransportParams = {
transport: Binary,
};
export type BrowserTypeConnectOverCDPTransportOptions = {

};
export type BrowserTypeConnectOverCDPTransportResult = {
browser: BrowserChannel,
defaultContext?: BrowserContextChannel,
};
export type BrowserTypeConnectToWorkerParams = {
endpoint: string,
timeout: number,
Expand Down
8 changes: 0 additions & 8 deletions packages/protocol/src/protocol.yml
Original file line number Diff line number Diff line change
Expand Up @@ -1034,14 +1034,6 @@ BrowserType:
browser: Browser
defaultContext: BrowserContext?

connectOverCDPTransport:
title: Connect over CDP transport
parameters:
transport: binary
returns:
browser: Browser
defaultContext: BrowserContext?

connectToWorker:
title: Connect to worker
parameters:
Expand Down
31 changes: 1 addition & 30 deletions tests/library/chromium/connect-over-cdp.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ import fs from 'fs';
import { getUserAgent, server as coreServer } from '../../../packages/playwright-core/lib/coreBundle';
import { suppressCertificateWarning } from '../../config/utils';

const { WebSocketTransport, nullProgress } = coreServer;
const { nullProgress } = coreServer;
type Frame = coreServer.Frame;

test.skip(({ mode }) => mode === 'service2');
Expand Down Expand Up @@ -645,32 +645,3 @@ test('should get title and URL of existing page', async ({ browserType, mode, se
await browserServer.close();
}
});

test('should connect over CDP using a ConnectionTransport', async ({ browserType, mode, server }, testInfo) => {
test.skip(mode !== 'default', '_connectOverCDPTransport is only available in-process');

const port = 9339 + testInfo.workerIndex;
const browserServer = await browserType.launch({
args: ['--remote-debugging-port=' + port]
});
try {
const json = await new Promise<string>((resolve, reject) => {
http.get(`http://127.0.0.1:${port}/json/version/`, resp => {
let data = '';
resp.on('data', chunk => data += chunk);
resp.on('end', () => resolve(data));
}).on('error', reject);
});
const wsEndpoint = JSON.parse(json).webSocketDebuggerUrl;
const transport = await WebSocketTransport.connect(undefined, wsEndpoint);
const cdpBrowser = await (browserType as any)._connectOverCDPTransport(transport);
const contexts = cdpBrowser.contexts();
expect(contexts.length).toBe(1);
const page = await contexts[0].newPage();
await page.goto(server.EMPTY_PAGE);
expect(page.url()).toBe(server.EMPTY_PAGE);
await cdpBrowser.close();
} finally {
await browserServer.close();
}
});
Loading