@@ -337,12 +337,13 @@ export class McpContext implements Context {
337337 ) ;
338338 } ) ;
339339
340- await this . # detectOpenDevToolsWindows( allPages ) ;
340+ await this . detectOpenDevToolsWindows ( ) ;
341341
342342 return this . #pages;
343343 }
344344
345- async #detectOpenDevToolsWindows( pages : Page [ ] ) {
345+ async detectOpenDevToolsWindows ( ) {
346+ const pages = await this . browser . pages ( ) ;
346347 this . #pageToDevToolsPage = new Map < Page , Page > ( ) ;
347348 for ( const devToolsPage of pages ) {
348349 if ( devToolsPage . url ( ) . startsWith ( 'devtools://' ) ) {
@@ -376,6 +377,46 @@ export class McpContext implements Context {
376377 getDevToolsPage ( page : Page ) : Page | undefined {
377378 return this . #pageToDevToolsPage. get ( page ) ;
378379 }
380+
381+ async getDevToolsContextData ( ) : Promise < undefined | { requestId ?: number } > {
382+ try {
383+ const selectedPage = this . getSelectedPage ( ) ;
384+ const devtoolsPage = this . getDevToolsPage ( selectedPage ) ;
385+ if ( devtoolsPage ) {
386+ const cdpRequestId = await devtoolsPage . evaluate ( async ( ) => {
387+ // @ts -expect-error no types
388+ const UI = await import ( '/bundled/ui/legacy/legacy.js' ) ;
389+ // @ts -expect-error no types
390+ const SDK = await import ( '/bundled/core/sdk/sdk.js' ) ;
391+ const request = UI . Context . Context . instance ( ) . flavor ( SDK . NetworkRequest . NetworkRequest ) ;
392+ return request ?. requestId ( ) ;
393+ } ) ;
394+ let requestId : number | undefined ;
395+ if ( ! cdpRequestId ) {
396+ console . error ( 'no context request' ) ;
397+ return ;
398+ }
399+
400+ const request = this . #networkCollector. find ( selectedPage , ( request ) => {
401+ // @ts -expect-error id is internal.
402+ return request . id === cdpRequestId ;
403+ } ) ;
404+ if ( ! request ) {
405+ console . error ( 'no collected request for ' + cdpRequestId ) ;
406+ return ;
407+ }
408+ requestId = this . #networkCollector. getIdForResource ( request ) ;
409+ return {
410+ requestId,
411+ }
412+ } else {
413+ console . error ( 'no devtools page deteched' ) ;
414+ }
415+ } catch ( err ) {
416+ console . error ( 'error getting devtools data' , err ) ;
417+ }
418+ return ;
419+ }
379420
380421 /**
381422 * Creates a text snapshot of a page.
0 commit comments