@@ -191,6 +191,7 @@ export class BidiBrowserContext extends BrowserContext {
191191 declare readonly _browser : BidiBrowser ;
192192 private _originToPermissions = new Map < string , string [ ] > ( ) ;
193193 private _initScriptIds = new Map < InitScript , string > ( ) ;
194+ private _interceptIdPromise : Promise < bidi . Network . Intercept > | undefined ;
194195
195196 constructor ( browser : BidiBrowser , browserContextId : string | undefined , options : types . BrowserContextOptions ) {
196197 super ( browser , options , browserContextId ) ;
@@ -373,6 +374,19 @@ export class BidiBrowserContext extends BrowserContext {
373374 }
374375
375376 async doUpdateRequestInterception ( ) : Promise < void > {
377+ if ( this . requestInterceptors . length > 0 && ! this . _interceptIdPromise ) {
378+ this . _interceptIdPromise = this . _browser . _browserSession . send ( 'network.addIntercept' , {
379+ phases : [ bidi . Network . InterceptPhase . BeforeRequestSent ] ,
380+ urlPatterns : [ { type : 'pattern' } ] ,
381+ } ) . then ( ( { intercept } ) => intercept ) ;
382+ }
383+ if ( this . requestInterceptors . length === 0 && this . _interceptIdPromise ) {
384+ const interceptIdPromise = this . _interceptIdPromise ;
385+ this . _interceptIdPromise = undefined ;
386+ await this . _browser . _browserSession . send ( 'network.removeIntercept' , {
387+ intercept : await interceptIdPromise
388+ } ) ;
389+ }
376390 }
377391
378392 override async doUpdateDefaultViewport ( ) {
0 commit comments