File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -578,7 +578,20 @@ export class McpContext implements Context {
578578 const pageResults = await Promise . all (
579579 pageTargets . map ( async target => {
580580 try {
581- return await target . page ( ) ;
581+ const page = await Promise . race ( [
582+ target . page ( ) ,
583+ new Promise < null > ( resolve =>
584+ setTimeout ( ( ) => resolve ( null ) , DEFAULT_TIMEOUT ) ,
585+ ) ,
586+ ] ) ;
587+ if ( ! page ) {
588+ this . logger (
589+ 'Timed out attaching to target at' ,
590+ target . url ( ) ,
591+ '— likely frozen or discarded' ,
592+ ) ;
593+ }
594+ return page ;
582595 } catch ( err ) {
583596 this . logger (
584597 'Skipping frozen/discarded target at' ,
@@ -599,7 +612,12 @@ export class McpContext implements Context {
599612
600613 for ( const target of extensionTargets ) {
601614 // Right now target.page() returns null for popup and side panel pages.
602- let page = await target . page ( ) ;
615+ let page = await Promise . race ( [
616+ target . page ( ) ,
617+ new Promise < null > ( resolve =>
618+ setTimeout ( ( ) => resolve ( null ) , DEFAULT_TIMEOUT ) ,
619+ ) ,
620+ ] ) ;
603621 if ( ! page ) {
604622 // We need to cache pages instances for targets because target.asPage()
605623 // returns a new page instance every time.
Original file line number Diff line number Diff line change @@ -61,6 +61,7 @@ export async function ensureBrowserConnected(options: {
6161 targetFilter : makeTargetFilter ( enableExtensions ) ,
6262 defaultViewport : null ,
6363 handleDevToolsAsPage : true ,
64+ protocolTimeout : 30_000 ,
6465 } ;
6566
6667 let autoConnect = false ;
@@ -229,6 +230,7 @@ export async function launch(options: McpLaunchOptions): Promise<Browser> {
229230 acceptInsecureCerts : options . acceptInsecureCerts ,
230231 handleDevToolsAsPage : true ,
231232 enableExtensions : options . enableExtensions ,
233+ protocolTimeout : 30_000 ,
232234 } ) ;
233235 if ( options . logFile ) {
234236 // FIXME: we are probably subscribing too late to catch startup logs. We
You can’t perform that action at this time.
0 commit comments