mirror of
https://github.com/microsoft/playwright.git
synced 2025-06-26 21:40:17 +00:00
fix(api): remove BrowserServer.connect (#574)
This commit is contained in:
parent
a6042e437a
commit
fa2f321fdd
18
docs/api.md
18
docs/api.md
@ -3373,7 +3373,6 @@ const newWindowTarget = await browser.chromium.waitForTarget(target => target.ur
|
||||
|
||||
<!-- GEN:toc -->
|
||||
- [chromiumBrowserServer.close()](#chromiumbrowserserverclose)
|
||||
- [chromiumBrowserServer.connect()](#chromiumbrowserserverconnect)
|
||||
- [chromiumBrowserServer.connectOptions()](#chromiumbrowserserverconnectoptions)
|
||||
- [chromiumBrowserServer.process()](#chromiumbrowserserverprocess)
|
||||
- [chromiumBrowserServer.wsEndpoint()](#chromiumbrowserserverwsendpoint)
|
||||
@ -3384,11 +3383,6 @@ const newWindowTarget = await browser.chromium.waitForTarget(target => target.ur
|
||||
|
||||
Closes the browser gracefully and makes sure the process is terminated.
|
||||
|
||||
#### chromiumBrowserServer.connect()
|
||||
- returns: <[Promise]<[ChromiumBrowser]>>
|
||||
|
||||
Connects to the browser server and returns a <[ChromiumBrowser]> object.
|
||||
|
||||
#### chromiumBrowserServer.connectOptions()
|
||||
- returns: <[Object]>
|
||||
- `browserWSEndpoint` <?[string]> a [browser websocket endpoint](#browserwsendpoint) to connect to.
|
||||
@ -3567,7 +3561,6 @@ Firefox browser instance does not expose Firefox-specific features.
|
||||
|
||||
<!-- GEN:toc -->
|
||||
- [firefoxBrowserServer.close()](#firefoxbrowserserverclose)
|
||||
- [firefoxBrowserServer.connect()](#firefoxbrowserserverconnect)
|
||||
- [firefoxBrowserServer.connectOptions()](#firefoxbrowserserverconnectoptions)
|
||||
- [firefoxBrowserServer.process()](#firefoxbrowserserverprocess)
|
||||
- [firefoxBrowserServer.wsEndpoint()](#firefoxbrowserserverwsendpoint)
|
||||
@ -3578,11 +3571,6 @@ Firefox browser instance does not expose Firefox-specific features.
|
||||
|
||||
Closes the browser gracefully and makes sure the process is terminated.
|
||||
|
||||
#### firefoxBrowserServer.connect()
|
||||
- returns: <[Promise]<[FirefoxBrowser]>>
|
||||
|
||||
Connects to the browser server and returns a <[FirefoxBrowser]> object.
|
||||
|
||||
#### firefoxBrowserServer.connectOptions()
|
||||
- returns: <[Object]>
|
||||
- `browserWSEndpoint` <?[string]> a [browser websocket endpoint](#browserwsendpoint) to connect to.
|
||||
@ -3680,7 +3668,6 @@ WebKit browser instance does not expose WebKit-specific features.
|
||||
|
||||
<!-- GEN:toc -->
|
||||
- [webKitBrowserServer.close()](#webkitbrowserserverclose)
|
||||
- [webKitBrowserServer.connect()](#webkitbrowserserverconnect)
|
||||
- [webKitBrowserServer.connectOptions()](#webkitbrowserserverconnectoptions)
|
||||
- [webKitBrowserServer.process()](#webkitbrowserserverprocess)
|
||||
- [webKitBrowserServer.wsEndpoint()](#webkitbrowserserverwsendpoint)
|
||||
@ -3691,11 +3678,6 @@ WebKit browser instance does not expose WebKit-specific features.
|
||||
|
||||
Closes the browser gracefully and makes sure the process is terminated.
|
||||
|
||||
#### webKitBrowserServer.connect()
|
||||
- returns: <[Promise]<[WebKitBrowser]>>
|
||||
|
||||
Connects to the browser server and returns a <[WebKitBrowser]> object.
|
||||
|
||||
#### webKitBrowserServer.connectOptions()
|
||||
- returns: <[Object]>
|
||||
- `slowMo` <[number]>
|
||||
|
@ -66,13 +66,6 @@ export class CRBrowserServer {
|
||||
this._connectOptions = connectOptions;
|
||||
}
|
||||
|
||||
async connect(): Promise<CRBrowser> {
|
||||
const browser = await CRBrowser.connect(this._connectOptions);
|
||||
// Hack: for typical launch scenario, ensure that close waits for actual process termination.
|
||||
browser.close = this._gracefullyClose;
|
||||
return browser;
|
||||
}
|
||||
|
||||
process(): ChildProcess {
|
||||
return this._process;
|
||||
}
|
||||
@ -101,7 +94,10 @@ export class CRPlaywright implements Playwright {
|
||||
|
||||
async launch(options?: LaunchOptions): Promise<CRBrowser> {
|
||||
const server = await this.launchServer(options);
|
||||
return server.connect();
|
||||
const browser = await CRBrowser.connect(server.connectOptions());
|
||||
// Hack: for typical launch scenario, ensure that close waits for actual process termination.
|
||||
browser.close = () => server.close();
|
||||
return browser;
|
||||
}
|
||||
|
||||
async launchServer(options: LaunchOptions = {}): Promise<CRBrowserServer> {
|
||||
|
@ -63,13 +63,6 @@ export class FFBrowserServer {
|
||||
this._connectOptions = connectOptions;
|
||||
}
|
||||
|
||||
async connect(): Promise<FFBrowser> {
|
||||
const browser = await FFBrowser.connect(this._connectOptions);
|
||||
// Hack: for typical launch scenario, ensure that close waits for actual process termination.
|
||||
browser.close = this._gracefullyClose;
|
||||
return browser;
|
||||
}
|
||||
|
||||
process(): ChildProcess {
|
||||
return this._process;
|
||||
}
|
||||
@ -98,7 +91,10 @@ export class FFPlaywright implements Playwright {
|
||||
|
||||
async launch(options: LaunchOptions): Promise<FFBrowser> {
|
||||
const server = await this.launchServer(options);
|
||||
return server.connect();
|
||||
const browser = await FFBrowser.connect(server.connectOptions());
|
||||
// Hack: for typical launch scenario, ensure that close waits for actual process termination.
|
||||
browser.close = () => server.close();
|
||||
return browser;
|
||||
}
|
||||
|
||||
async launchServer(options: LaunchOptions = {}): Promise<FFBrowserServer> {
|
||||
|
@ -69,13 +69,6 @@ export class WKBrowserServer {
|
||||
this._connectOptions = connectOptions;
|
||||
}
|
||||
|
||||
async connect(): Promise<WKBrowser> {
|
||||
const browser = await WKBrowser.connect(this._connectOptions);
|
||||
// Hack: for typical launch scenario, ensure that close waits for actual process termination.
|
||||
browser.close = this._gracefullyClose;
|
||||
return browser;
|
||||
}
|
||||
|
||||
process(): ChildProcess {
|
||||
return this._process;
|
||||
}
|
||||
@ -104,7 +97,10 @@ export class WKPlaywright implements Playwright {
|
||||
|
||||
async launch(options?: LaunchOptions): Promise<WKBrowser> {
|
||||
const server = await this.launchServer(options);
|
||||
return server.connect();
|
||||
const browser = await WKBrowser.connect(server.connectOptions());
|
||||
// Hack: for typical launch scenario, ensure that close waits for actual process termination.
|
||||
browser.close = () => server.close();
|
||||
return browser;
|
||||
}
|
||||
|
||||
async launchServer(options: LaunchOptions = {}): Promise<WKBrowserServer> {
|
||||
|
@ -25,7 +25,7 @@ module.exports.describe = function({testRunner, expect, defaultBrowserOptions, p
|
||||
describe('Playwright.connect', function() {
|
||||
it('should be able to connect multiple times to the same browser', async({server}) => {
|
||||
const browserServer = await playwright.launchServer(defaultBrowserOptions);
|
||||
const local = await browserServer.connect();
|
||||
const local = await playwright.connect(browserServer.connectOptions());
|
||||
const remote = await playwright.connect({
|
||||
...defaultBrowserOptions,
|
||||
browserWSEndpoint: browserServer.wsEndpoint()
|
||||
@ -40,7 +40,7 @@ module.exports.describe = function({testRunner, expect, defaultBrowserOptions, p
|
||||
});
|
||||
it('should be able to close remote browser', async({server}) => {
|
||||
const browserServer = await playwright.launchServer(defaultBrowserOptions);
|
||||
const local = await browserServer.connect();
|
||||
const local = await playwright.connect(browserServer.connectOptions());
|
||||
const remote = await playwright.connect({
|
||||
...defaultBrowserOptions,
|
||||
browserWSEndpoint: browserServer.wsEndpoint()
|
||||
@ -53,7 +53,7 @@ module.exports.describe = function({testRunner, expect, defaultBrowserOptions, p
|
||||
// @see https://github.com/GoogleChrome/puppeteer/issues/4197#issuecomment-481793410
|
||||
it('should be able to connect to the same page simultaneously', async({server}) => {
|
||||
const browserServer = await playwright.launchServer(defaultBrowserOptions);
|
||||
const local = await browserServer.connect();
|
||||
const local = await playwright.connect(browserServer.connectOptions());
|
||||
const remote = await playwright.connect({ ...defaultBrowserOptions, browserWSEndpoint: browserServer.wsEndpoint() });
|
||||
const [page1, page2] = await Promise.all([
|
||||
new Promise(x => local.once('targetcreated', target => x(target.page()))),
|
||||
|
@ -161,7 +161,7 @@ module.exports.describe = function({testRunner, expect, defaultBrowserOptions, p
|
||||
it('should support the pipe option', async() => {
|
||||
const options = Object.assign({pipe: true}, defaultBrowserOptions);
|
||||
const browserServer = await playwright.launchServer(options);
|
||||
const browser = await browserServer.connect();
|
||||
const browser = await playwright.connect(browserServer.connectOptions());
|
||||
expect((await browser.defaultContext().pages()).length).toBe(1);
|
||||
expect(browserServer.wsEndpoint()).toBe(null);
|
||||
const page = await browser.defaultContext().newPage();
|
||||
@ -173,7 +173,7 @@ module.exports.describe = function({testRunner, expect, defaultBrowserOptions, p
|
||||
const options = Object.assign({}, defaultBrowserOptions);
|
||||
options.args = ['--remote-debugging-pipe'].concat(options.args || []);
|
||||
const browserServer = await playwright.launchServer(options);
|
||||
const browser = await browserServer.connect();
|
||||
const browser = await playwright.connect(browserServer.connectOptions());
|
||||
expect(browserServer.wsEndpoint()).toBe(null);
|
||||
const page = await browser.defaultContext().newPage();
|
||||
expect(await page.evaluate('11 * 11')).toBe(121);
|
||||
@ -183,7 +183,7 @@ module.exports.describe = function({testRunner, expect, defaultBrowserOptions, p
|
||||
it('should fire "disconnected" when closing with pipe', async() => {
|
||||
const options = Object.assign({pipe: true}, defaultBrowserOptions);
|
||||
const browserServer = await playwright.launchServer(options);
|
||||
const browser = await browserServer.connect();
|
||||
const browser = await playwright.connect(browserServer.connectOptions());
|
||||
const disconnectedEventPromise = new Promise(resolve => browser.once('disconnected', resolve));
|
||||
// Emulate user exiting browser.
|
||||
browserServer.process().kill();
|
||||
@ -210,7 +210,7 @@ module.exports.describe = function({testRunner, expect, defaultBrowserOptions, p
|
||||
describe('Browser.Events.disconnected', function() {
|
||||
it('should be emitted when: browser gets closed, disconnected or underlying websocket gets closed', async() => {
|
||||
const browserServer = await playwright.launchServer(defaultBrowserOptions);
|
||||
const originalBrowser = await browserServer.connect();
|
||||
const originalBrowser = await playwright.connect(browserServer.connectOptions());
|
||||
const browserWSEndpoint = browserServer.wsEndpoint();
|
||||
const remoteBrowser1 = await playwright.connect({browserWSEndpoint});
|
||||
const remoteBrowser2 = await playwright.connect({browserWSEndpoint});
|
||||
|
@ -140,7 +140,7 @@ module.exports.describe = function({testRunner, expect, defaultBrowserOptions, p
|
||||
describe('Playwright.connect', function() {
|
||||
it.skip(WEBKIT)('should be able to reconnect to a browser', async({server}) => {
|
||||
const browserServer = await playwright.launchServer(defaultBrowserOptions);
|
||||
const browser = await browserServer.connect();
|
||||
const browser = await playwright.connect(browserServer.connectOptions());
|
||||
const browserWSEndpoint = browserServer.wsEndpoint();
|
||||
const page = await browser.defaultContext().newPage();
|
||||
await page.goto(server.PREFIX + '/frames/nested-frames.html');
|
||||
|
@ -91,7 +91,7 @@ module.exports.describe = ({testRunner, product, playwrightPath}) => {
|
||||
describe('Browser', function() {
|
||||
beforeAll(async state => {
|
||||
state.browserServer = await playwright.launchServer(defaultBrowserOptions);
|
||||
state.browser = await state.browserServer.connect();
|
||||
state.browser = await playwright.connect(state.browserServer.connectOptions());
|
||||
});
|
||||
|
||||
afterAll(async state => {
|
||||
|
@ -23,7 +23,7 @@ module.exports.describe = function({testRunner, expect, defaultBrowserOptions, p
|
||||
beforeAll(async state => {
|
||||
state.controlledBrowserServer = await playwright.launchServer({ ...defaultBrowserOptions, pipe: false });
|
||||
state.hostBrowserServer = await playwright.launchServer(defaultBrowserOptions);
|
||||
state.hostBrowser = await state.hostBrowserServer.connect();
|
||||
state.hostBrowser = await playwright.connect(state.hostBrowserServer.connectOptions());
|
||||
});
|
||||
|
||||
afterAll(async state => {
|
||||
|
@ -31,7 +31,7 @@ module.exports.describe = function ({ testRunner, expect, playwright, defaultBro
|
||||
it('should have websocket by default', async() => {
|
||||
const options = Object.assign({pipe: false}, defaultBrowserOptions);
|
||||
const browserServer = await playwright.launchServer(options);
|
||||
const browser = await browserServer.connect();
|
||||
const browser = await playwright.connect(browserServer.connectOptions());
|
||||
expect((await browser.defaultContext().pages()).length).toBe(1);
|
||||
expect(browserServer.wsEndpoint()).not.toBe(null);
|
||||
const page = await browser.defaultContext().newPage();
|
||||
@ -42,7 +42,7 @@ module.exports.describe = function ({ testRunner, expect, playwright, defaultBro
|
||||
it('should support the pipe option', async() => {
|
||||
const options = Object.assign({pipe: true}, defaultBrowserOptions);
|
||||
const browserServer = await playwright.launchServer(options);
|
||||
const browser = await browserServer.connect();
|
||||
const browser = await playwright.connect(browserServer.connectOptions());
|
||||
expect((await browser.defaultContext().pages()).length).toBe(1);
|
||||
expect(browserServer.wsEndpoint()).toBe(null);
|
||||
const page = await browser.defaultContext().newPage();
|
||||
@ -53,7 +53,7 @@ module.exports.describe = function ({ testRunner, expect, playwright, defaultBro
|
||||
it('should fire "disconnected" when closing with pipe', async() => {
|
||||
const options = Object.assign({pipe: true}, defaultBrowserOptions);
|
||||
const browserServer = await playwright.launchServer(options);
|
||||
const browser = await browserServer.connect();
|
||||
const browser = await playwright.connect(browserServer.connectOptions());
|
||||
const disconnectedEventPromise = new Promise(resolve => browser.once('disconnected', resolve));
|
||||
// Emulate user exiting browser.
|
||||
process.kill(-browserServer.process().pid, 'SIGKILL');
|
||||
@ -62,7 +62,7 @@ module.exports.describe = function ({ testRunner, expect, playwright, defaultBro
|
||||
it('should fire "disconnected" when closing with websocket', async() => {
|
||||
const options = Object.assign({pipe: false}, defaultBrowserOptions);
|
||||
const browserServer = await playwright.launchServer(options);
|
||||
const browser = await browserServer.connect();
|
||||
const browser = await playwright.connect(browserServer.connectOptions());
|
||||
const disconnectedEventPromise = new Promise(resolve => browser.once('disconnected', resolve));
|
||||
// Emulate user exiting browser.
|
||||
process.kill(-browserServer.process().pid, 'SIGKILL');
|
||||
|
@ -12,7 +12,8 @@ async function generateChromiunProtocol(revision) {
|
||||
const playwright = await require('../../index').chromium;
|
||||
const browserServer = await playwright.launchServer({executablePath: revision.executablePath});
|
||||
const origin = browserServer.wsEndpoint().match(/ws:\/\/([0-9A-Za-z:\.]*)\//)[1];
|
||||
const page = await (await browserServer.connect()).defaultContext().newPage();
|
||||
const browser = await playwright.connect(browserServer.connectOptions());
|
||||
const page = await browser.defaultContext().newPage();
|
||||
await page.goto(`http://${origin}/json/protocol`);
|
||||
const json = JSON.parse(await page.evaluate(() => document.documentElement.innerText));
|
||||
await browserServer.close();
|
||||
|
Loading…
x
Reference in New Issue
Block a user