remove cleanups
This commit is contained in:
parent
4d23a53c22
commit
84db5aaa76
|
@ -88,7 +88,6 @@ export class BrowserServerLauncherImpl implements BrowserServerLauncher {
|
||||||
browserServer.close = () => browser.options.browserProcess.close();
|
browserServer.close = () => browser.options.browserProcess.close();
|
||||||
browserServer[Symbol.asyncDispose] = browserServer.close;
|
browserServer[Symbol.asyncDispose] = browserServer.close;
|
||||||
browserServer.kill = () => browser.options.browserProcess.kill();
|
browserServer.kill = () => browser.options.browserProcess.kill();
|
||||||
(browserServer as any)._playwrightForTest = playwright;
|
|
||||||
(browserServer as any)._disconnectForTest = () => server.close();
|
(browserServer as any)._disconnectForTest = () => server.close();
|
||||||
(browserServer as any)._userDataDirForTest = (browser as any)._userDataDirForTest;
|
(browserServer as any)._userDataDirForTest = (browser as any)._userDataDirForTest;
|
||||||
browser.options.browserProcess.onclose = (exitCode, signal) => {
|
browser.options.browserProcess.onclose = (exitCode, signal) => {
|
||||||
|
|
|
@ -131,10 +131,6 @@ export class PlaywrightConnection {
|
||||||
const browser = await playwright[browserName as 'chromium'].launch(serverSideCallMetadata(), this._options.launchOptions);
|
const browser = await playwright[browserName as 'chromium'].launch(serverSideCallMetadata(), this._options.launchOptions);
|
||||||
browser.options.sdkLanguage = options.sdkLanguage;
|
browser.options.sdkLanguage = options.sdkLanguage;
|
||||||
|
|
||||||
this._cleanups.push(async () => {
|
|
||||||
for (const browser of playwright.allBrowsers())
|
|
||||||
await browser.close({ reason: 'Connection terminated' });
|
|
||||||
});
|
|
||||||
browser.on(Browser.Events.Disconnected, () => {
|
browser.on(Browser.Events.Disconnected, () => {
|
||||||
// Underlying browser did close for some reason - force disconnect the client.
|
// Underlying browser did close for some reason - force disconnect the client.
|
||||||
this.close({ code: 1001, reason: 'Browser closed' });
|
this.close({ code: 1001, reason: 'Browser closed' });
|
||||||
|
|
|
@ -132,13 +132,6 @@ export class PlaywrightServer {
|
||||||
},
|
},
|
||||||
id, () => semaphore.release());
|
id, () => semaphore.release());
|
||||||
},
|
},
|
||||||
|
|
||||||
onClose: async () => {
|
|
||||||
debugLogger.log('server', 'closing browsers');
|
|
||||||
if (this._preLaunchedPlaywright)
|
|
||||||
await Promise.all(this._preLaunchedPlaywright.allBrowsers().map(browser => browser.close({ reason: 'Playwright Server stopped' })));
|
|
||||||
debugLogger.log('server', 'closed browsers');
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -53,6 +53,9 @@ export class BrowserTypeDispatcher extends Dispatcher<BrowserType, channels.Brow
|
||||||
}
|
}
|
||||||
|
|
||||||
async connectOverCDP(params: channels.BrowserTypeConnectOverCDPParams, metadata: CallMetadata): Promise<channels.BrowserTypeConnectOverCDPResult> {
|
async connectOverCDP(params: channels.BrowserTypeConnectOverCDPParams, metadata: CallMetadata): Promise<channels.BrowserTypeConnectOverCDPResult> {
|
||||||
|
if (this._denyLaunch)
|
||||||
|
throw new Error(`Launching more browsers is not allowed.`);
|
||||||
|
|
||||||
const browser = await this._object.connectOverCDP(metadata, params.endpointURL, params);
|
const browser = await this._object.connectOverCDP(metadata, params.endpointURL, params);
|
||||||
const browserDispatcher = new BrowserDispatcher(this, browser);
|
const browserDispatcher = new BrowserDispatcher(this, browser);
|
||||||
return {
|
return {
|
||||||
|
|
|
@ -46,7 +46,6 @@ export type WSServerDelegate = {
|
||||||
onHeaders: (headers: string[]) => void;
|
onHeaders: (headers: string[]) => void;
|
||||||
onUpgrade: (request: http.IncomingMessage, socket: stream.Duplex) => { error: string } | undefined;
|
onUpgrade: (request: http.IncomingMessage, socket: stream.Duplex) => { error: string } | undefined;
|
||||||
onConnection: (request: http.IncomingMessage, url: URL, ws: WebSocket, id: string) => WSConnection;
|
onConnection: (request: http.IncomingMessage, url: URL, ws: WebSocket, id: string) => WSConnection;
|
||||||
onClose(): Promise<void>;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
export class WSServer {
|
export class WSServer {
|
||||||
|
@ -137,7 +136,5 @@ export class WSServer {
|
||||||
this._wsServer = undefined;
|
this._wsServer = undefined;
|
||||||
this.server = undefined;
|
this.server = undefined;
|
||||||
debugLogger.log('server', 'closed server');
|
debugLogger.log('server', 'closed server');
|
||||||
|
|
||||||
await this._delegate.onClose?.();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -47,7 +47,6 @@ async function start() {
|
||||||
console.log(`(tempDir=>${browserServer._userDataDirForTest})`);
|
console.log(`(tempDir=>${browserServer._userDataDirForTest})`);
|
||||||
console.log(`(pid=>${browserServer.process().pid})`);
|
console.log(`(pid=>${browserServer.process().pid})`);
|
||||||
console.log(`(wsEndpoint=>${browserServer.wsEndpoint()})`);
|
console.log(`(wsEndpoint=>${browserServer.wsEndpoint()})`);
|
||||||
console.log(`(browserType=>${browserServer._playwrightForTest[browserTypeName].guid})`);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
process.on('uncaughtException', error => console.log(error));
|
process.on('uncaughtException', error => console.log(error));
|
||||||
|
|
|
@ -28,7 +28,6 @@ import type { Browser, ConnectOptions } from 'playwright-core';
|
||||||
import { createHttpServer } from '../../packages/playwright-core/lib/server/utils/network';
|
import { createHttpServer } from '../../packages/playwright-core/lib/server/utils/network';
|
||||||
import { kTargetClosedErrorMessage } from '../config/errors';
|
import { kTargetClosedErrorMessage } from '../config/errors';
|
||||||
import { RunServer } from '../config/remoteServer';
|
import { RunServer } from '../config/remoteServer';
|
||||||
import type { Browser as BrowserImpl } from '../../packages/playwright-core/src/client/browser';
|
|
||||||
|
|
||||||
type ExtraFixtures = {
|
type ExtraFixtures = {
|
||||||
connect: (wsEndpoint: string, options?: ConnectOptions, redirectPortForTest?: number) => Promise<Browser>,
|
connect: (wsEndpoint: string, options?: ConnectOptions, redirectPortForTest?: number) => Promise<Browser>,
|
||||||
|
@ -1043,15 +1042,8 @@ test.describe('launchServer only', () => {
|
||||||
|
|
||||||
test('cannot launch another browser', async ({ connect, startRemoteServer }) => {
|
test('cannot launch another browser', async ({ connect, startRemoteServer }) => {
|
||||||
const remoteServer = await startRemoteServer('launchServer');
|
const remoteServer = await startRemoteServer('launchServer');
|
||||||
const browser = await connect(remoteServer.wsEndpoint()) as any as BrowserImpl;
|
const browser = await connect(remoteServer.wsEndpoint()) as any;
|
||||||
await expect(
|
await expect(browser._parent.launch({ timeout: 0 })).rejects.toThrowError('Launching more browsers is not allowed.');
|
||||||
browser._connection.sendMessageToServer(
|
|
||||||
{ _type: 'BrowserType', _guid: await remoteServer.out('browserType') } as any,
|
|
||||||
'launch',
|
|
||||||
{ timeout: 0 },
|
|
||||||
{}
|
|
||||||
)
|
|
||||||
).rejects.toThrowError('Launching more browsers is not allowed.');
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue