diff --git a/packages/playwright-core/src/client/browserContext.ts b/packages/playwright-core/src/client/browserContext.ts index 59dcf046be..0b5220d8f0 100644 --- a/packages/playwright-core/src/client/browserContext.ts +++ b/packages/playwright-core/src/client/browserContext.ts @@ -462,6 +462,7 @@ export class BrowserContext extends ChannelOwner this._disposeHarRouters(); this.tracing._resetStackCounter(); this.emit(Events.BrowserContext.Close, this); + this._mockingProxies.forEach(p => p.uninstall(this)); } async [Symbol.asyncDispose]() { diff --git a/packages/playwright-core/src/client/mockingProxy.ts b/packages/playwright-core/src/client/mockingProxy.ts index 3a5869e3a4..93fe8164b3 100644 --- a/packages/playwright-core/src/client/mockingProxy.ts +++ b/packages/playwright-core/src/client/mockingProxy.ts @@ -41,11 +41,16 @@ export class MockingProxy extends ChannelOwner { }); } - installOn(context: BrowserContext): void { + install(context: BrowserContext): void { context._mockingProxies.add(this); this._contexts.add(context); } + uninstall(context: BrowserContext): void { + context._mockingProxies.delete(this); + this._contexts.delete(context); + } + async setInterceptionPatterns(params: channels.MockingProxySetInterceptionPatternsParams) { await this._channel.setInterceptionPatterns(params); }