@@ -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://' ) ) {
@@ -377,6 +378,45 @@ export class McpContext implements Context {
377378 return this . #pageToDevToolsPage. get ( page ) ;
378379 }
379380
381+ async getDevToolsData ( ) : 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 (
392+ SDK . NetworkRequest . NetworkRequest ,
393+ ) ;
394+ return request ?. requestId ( ) ;
395+ } ) ;
396+ if ( ! cdpRequestId ) {
397+ this . logger ( 'no context request' ) ;
398+ return ;
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+ this . logger ( 'no collected request for ' + cdpRequestId ) ;
406+ return ;
407+ }
408+ return {
409+ requestId : this . #networkCollector. getIdForResource ( request ) ,
410+ } ;
411+ } else {
412+ this . logger ( 'no devtools page deteched' ) ;
413+ }
414+ } catch ( err ) {
415+ this . logger ( 'error getting devtools data' , err ) ;
416+ }
417+ return ;
418+ }
419+
380420 /**
381421 * Creates a text snapshot of a page.
382422 */
0 commit comments