From edff9fc11d18e1d5e29243dab27df47d64b03182 Mon Sep 17 00:00:00 2001 From: Simon Knott Date: Mon, 27 Jan 2025 14:33:12 +0100 Subject: [PATCH] call it correlation --- packages/playwright-core/src/client/mockingProxy.ts | 11 ++++++----- packages/playwright-core/src/protocol/validator.ts | 2 +- .../src/server/dispatchers/mockingProxyDispatcher.ts | 4 ++-- packages/playwright-core/src/server/mockingProxy.ts | 6 +++--- packages/protocol/src/channels.d.ts | 2 +- packages/protocol/src/protocol.yml | 2 +- 6 files changed, 14 insertions(+), 13 deletions(-) diff --git a/packages/playwright-core/src/client/mockingProxy.ts b/packages/playwright-core/src/client/mockingProxy.ts index 1d1368aded..118c688989 100644 --- a/packages/playwright-core/src/client/mockingProxy.ts +++ b/packages/playwright-core/src/client/mockingProxy.ts @@ -30,9 +30,9 @@ export class MockingProxy extends ChannelOwner { const requestContext = APIRequestContext.from(initializer.requestContext); this._channel.on('route', async (params: channels.MockingProxyRouteEvent) => { - const browserRequest = params.browserRequest ? this._browserRequests.get(params.browserRequest) : undefined; - if (params.browserRequest) - this._browserRequests.delete(params.browserRequest); + const browserRequest = params.correlation ? this._browserRequests.get(params.correlation) : undefined; + if (params.correlation) + this._browserRequests.delete(params.correlation); const route = network.Route.from(params.route); route._context = requestContext; this.emit(Events.MockingProxy.Route, { route, browserRequest }); @@ -49,8 +49,9 @@ export class MockingProxy extends ChannelOwner { return await route.continue(); const request = route.request(); - this._browserRequests.set(request._guid, request); - const proxyUrl = `http://localhost:${this.port()}/pw_meta:${request._guid}/`; + const correlation = request._guid.split('@')[1]; + this._browserRequests.set(correlation, request); + const proxyUrl = `http://localhost:${this.port()}/pw_meta:${correlation}/`; await route.continue({ headers: { 'x-playwright-proxy': encodeURIComponent(proxyUrl) } }); } diff --git a/packages/playwright-core/src/protocol/validator.ts b/packages/playwright-core/src/protocol/validator.ts index 2bd4de157d..950e2c0ac8 100644 --- a/packages/playwright-core/src/protocol/validator.ts +++ b/packages/playwright-core/src/protocol/validator.ts @@ -348,7 +348,7 @@ scheme.MockingProxyInitializer = tObject({ }); scheme.MockingProxyRouteEvent = tObject({ route: tChannel(['Route']), - browserRequest: tOptional(tString), + correlation: tOptional(tString), }); scheme.MockingProxySetInterceptionPatternsParams = tObject({ patterns: tArray(tObject({ diff --git a/packages/playwright-core/src/server/dispatchers/mockingProxyDispatcher.ts b/packages/playwright-core/src/server/dispatchers/mockingProxyDispatcher.ts index a9bc4af7b6..b755605436 100644 --- a/packages/playwright-core/src/server/dispatchers/mockingProxyDispatcher.ts +++ b/packages/playwright-core/src/server/dispatchers/mockingProxyDispatcher.ts @@ -36,9 +36,9 @@ export class MockingProxyDispatcher extends Dispatcher { + this.addObjectListener(MockingProxy.Events.Route, ({ route, correlation }: {route: Route, correlation?: string }) => { const requestDispatcher = RequestDispatcher.from(this as any, route.request()); - this._dispatchEvent('route', { route: RouteDispatcher.from(requestDispatcher, route), browserRequest }); + this._dispatchEvent('route', { route: RouteDispatcher.from(requestDispatcher, route), correlation }); }); } diff --git a/packages/playwright-core/src/server/mockingProxy.ts b/packages/playwright-core/src/server/mockingProxy.ts index 898b9d1dfc..be033a4e41 100644 --- a/packages/playwright-core/src/server/mockingProxy.ts +++ b/packages/playwright-core/src/server/mockingProxy.ts @@ -70,9 +70,9 @@ export class MockingProxy extends SdkObject implements RequestContext { if (req.url?.startsWith('/')) req.url = req.url.substring(1); - let browserRequest: string | undefined; + let correlation: string | undefined; if (req.url?.startsWith('pw_meta:')) { - browserRequest = req.url.substring('pw_meta:'.length, req.url.indexOf('/')); + correlation = req.url.substring('pw_meta:'.length, req.url.indexOf('/')); req.url = req.url.substring(req.url.indexOf('/') + 1); } @@ -209,7 +209,7 @@ export class MockingProxy extends SdkObject implements RequestContext { }); if (this._matches?.(req.url!)) - this.emit(MockingProxy.Events.Route, { route, browserRequest }); + this.emit(MockingProxy.Events.Route, { route, correlation }); else await route.continue({ isFallback: false }); } diff --git a/packages/protocol/src/channels.d.ts b/packages/protocol/src/channels.d.ts index e4b3c266c9..90385c1651 100644 --- a/packages/protocol/src/channels.d.ts +++ b/packages/protocol/src/channels.d.ts @@ -593,7 +593,7 @@ export interface MockingProxyChannel extends MockingProxyEventTarget, EventTarge } export type MockingProxyRouteEvent = { route: RouteChannel, - browserRequest?: string, + correlation?: string, }; export type MockingProxySetInterceptionPatternsParams = { patterns: { diff --git a/packages/protocol/src/protocol.yml b/packages/protocol/src/protocol.yml index 721d99e558..1b53096c96 100644 --- a/packages/protocol/src/protocol.yml +++ b/packages/protocol/src/protocol.yml @@ -700,7 +700,7 @@ MockingProxy: route: parameters: route: Route - browserRequest: string? + correlation: string? Root: type: interface