feat(launcher): add experimental "transport" option to pptr.connect (#3265)

This patch:
- adds experimental "transport" option to pptr.connect
- uses "transport" option to make sure Puppeteer-Web works with
  Target.exposeDevToolsProtocol

Drive-by: add `browser.target()` to access browser target.
This commit is contained in:
Andrey Lushnikov
2018-09-20 11:55:23 -07:00
committed by GitHub
parent 5acf953104
commit 4e48dfc7a1
7 changed files with 46 additions and 3 deletions

View File

@@ -185,6 +185,13 @@ class Browser extends EventEmitter {
return Array.from(this._targets.values()).filter(target => target._isInitialized);
}
/**
* @return {!Target}
*/
target() {
return this.targets().find(target => target.type() === 'browser');
}
/**
* @return {!Promise<!Array<!Puppeteer.Page>>}
*/

View File

@@ -270,7 +270,7 @@ class Launcher {
}
/**
* @param {!(BrowserOptions & {browserWSEndpoint: string})} options
* @param {!(BrowserOptions & {browserWSEndpoint: string, transport?: !Puppeteer.ConnectionTransport})} options
* @return {!Promise<!Browser>}
*/
async connect(options) {
@@ -278,9 +278,9 @@ class Launcher {
browserWSEndpoint,
ignoreHTTPSErrors = false,
defaultViewport = {width: 800, height: 600},
transport = await WebSocketTransport.create(browserWSEndpoint),
slowMo = 0,
} = options;
const transport = await WebSocketTransport.create(browserWSEndpoint);
const connection = new Connection(browserWSEndpoint, transport, slowMo);
const {browserContextIds} = await connection.send('Target.getBrowserContexts');
return Browser.create(connection, browserContextIds, ignoreHTTPSErrors, defaultViewport, null, () => connection.send('Browser.close').catch(debugError));

View File

@@ -37,7 +37,7 @@ module.exports = class {
}
/**
* @param {{browserWSEndpoint: string, ignoreHTTPSErrors: boolean}} options
* @param {{browserWSEndpoint: string, ignoreHTTPSErrors: boolean, transport?: !Puppeteer.ConnectionTransport}} options
* @return {!Promise<!Puppeteer.Browser>}
*/
connect(options) {