@@ -138,24 +138,33 @@ export class BrowserType extends ChannelOwner<channels.BrowserTypeChannel> imple
138138
139139 async connectOverCDP ( options : api . ConnectOverCDPOptions & { wsEndpoint ?: string } ) : Promise < api . Browser > ;
140140 async connectOverCDP ( endpointURL : string , options ?: api . ConnectOverCDPOptions ) : Promise < api . Browser > ;
141- async connectOverCDP ( transport : api . ConnectionTransport ) : Promise < api . Browser > ;
142- async connectOverCDP ( endpointURLOrOptions : ( api . ConnectOverCDPOptions & { wsEndpoint ?: string } ) | string | api . ConnectionTransport , options ?: api . ConnectOverCDPOptions ) {
143- if ( typeof endpointURLOrOptions === 'string' )
144- return await this . _connectOverCDP ( endpointURLOrOptions , options ) ;
145- if ( isConnectionTransport ( endpointURLOrOptions ) )
146- return await this . _connectOverCDPTransport ( endpointURLOrOptions ) ;
147- const endpointURL = 'endpointURL' in endpointURLOrOptions ? endpointURLOrOptions . endpointURL : endpointURLOrOptions . wsEndpoint ;
148- assert ( endpointURL , 'Cannot connect over CDP without wsEndpoint.' ) ;
149- return await this . _connectOverCDP ( endpointURL , endpointURLOrOptions ) ;
150- }
151-
152- async _connectOverCDP ( endpointURL : string , params : api . ConnectOverCDPOptions = { } ) : Promise < Browser > {
153- if ( this . name ( ) !== 'chromium' && this . name ( ) !== 'webkit' )
141+ async connectOverCDP ( transport : api . ConnectionTransport , options ?: api . ConnectOverCDPOptions ) : Promise < api . Browser > ;
142+ async connectOverCDP ( overloaded : ( api . ConnectOverCDPOptions & { wsEndpoint ?: string } ) | string | api . ConnectionTransport , options ?: api . ConnectOverCDPOptions ) : Promise < Browser > {
143+ let endpointURL : string | undefined ;
144+ let transport : api . ConnectionTransport | undefined ;
145+ let params : api . ConnectOverCDPOptions ;
146+ if ( typeof overloaded === 'string' ) {
147+ endpointURL = overloaded ;
148+ params = options ?? { } ;
149+ } else if ( isConnectionTransport ( overloaded ) ) {
150+ if ( this . name ( ) !== 'chromium' && this . name ( ) !== 'webkit' )
151+ throw new Error ( 'Connecting over CDP is only supported in Chromium and WebKit.' ) ;
152+ if ( this . _connection . isRemote ( ) )
153+ throw new Error ( 'Passing a ConnectionTransport to connectOverCDP is not supported when connecting remotely.' ) ;
154+ transport = overloaded ;
155+ params = options ?? { } ;
156+ } else {
157+ endpointURL = 'endpointURL' in overloaded ? ( overloaded as any ) . endpointURL : overloaded . wsEndpoint ;
158+ assert ( endpointURL , 'Cannot connect over CDP without wsEndpoint.' ) ;
159+ params = overloaded ;
160+ }
161+ if ( endpointURL && this . name ( ) !== 'chromium' && this . name ( ) !== 'webkit' )
154162 throw new Error ( 'Connecting over CDP is only supported in Chromium and WebKit.' ) ;
155- const headers = params . headers ? headersObjectToArray ( params . headers ) : undefined ;
163+
156164 const result = await this . _channel . connectOverCDP ( {
157165 endpointURL,
158- headers,
166+ transport : transport as any ,
167+ headers : params . headers ? headersObjectToArray ( params . headers ) : undefined ,
159168 slowMo : params . slowMo ,
160169 timeout : new TimeoutSettings ( this . _platform ) . timeout ( params ) ,
161170 isLocal : params . isLocal ,
@@ -165,15 +174,6 @@ export class BrowserType extends ChannelOwner<channels.BrowserTypeChannel> imple
165174 return await this . _browserFromConnectResult ( result ) ;
166175 }
167176
168- async _connectOverCDPTransport ( transport : api . ConnectionTransport ) : Promise < Browser > {
169- if ( this . name ( ) !== 'chromium' )
170- throw new Error ( 'Connecting over CDP is only supported in Chromium.' ) ;
171- if ( this . _connection . isRemote ( ) )
172- throw new Error ( 'Passing a ConnectionTransport to connectOverCDP is not supported when connecting remotely.' ) ;
173- const result = await this . _channel . connectOverCDPTransport ( { transport : transport as any } ) ;
174- return await this . _browserFromConnectResult ( result ) ;
175- }
176-
177177 private async _browserFromConnectResult ( result : { browser : channels . BrowserChannel , defaultContext ?: channels . BrowserContextChannel } ) : Promise < Browser > {
178178 const browser = Browser . from ( result . browser ) ;
179179 browser . _connectToBrowserType ( this , { } , undefined ) ;
0 commit comments