From 819e0a5275ddc6738a39e5dc8a0ffda5694be2bd Mon Sep 17 00:00:00 2001 From: Simon Knott Date: Tue, 17 Sep 2024 19:29:37 +0200 Subject: [PATCH] fix bug with socks/http proxy --- packages/playwright-core/src/server/fetch.ts | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/packages/playwright-core/src/server/fetch.ts b/packages/playwright-core/src/server/fetch.ts index 5e95938e8b..39df932a50 100644 --- a/packages/playwright-core/src/server/fetch.ts +++ b/packages/playwright-core/src/server/fetch.ts @@ -422,6 +422,11 @@ export abstract class APIRequestContext extends SdkObject { const chunks: Buffer[] = []; const notifyBodyFinished = () => { + function relativeTime(time: number | undefined): number { + if (!time) + return -1; + return time - startAt; + } const endAt = monotonicTime(); // spec: https://developer.mozilla.org/en-US/docs/Web/API/PerformanceResourceTiming const timing: channels.ResourceTiming = { @@ -430,8 +435,8 @@ export abstract class APIRequestContext extends SdkObject { domainLookupEnd: dnsLookupAt ? dnsLookupAt! - startAt : -1, connectStart: dnsLookupAt ? dnsLookupAt! - startAt : 0, secureConnectionStart: dnsLookupAt ? dnsLookupAt! - startAt : 0, - connectEnd: (tlsHandshakeAt ?? tcpConnectionAt!) - startAt, - requestStart: (tlsHandshakeAt ?? tcpConnectionAt!) - startAt, + connectEnd: relativeTime(tlsHandshakeAt ?? tcpConnectionAt), + requestStart: relativeTime(tlsHandshakeAt ?? tcpConnectionAt), responseStart: responseAt - startAt, }; const responseEndTiming = endAt - startAt; @@ -499,6 +504,9 @@ export abstract class APIRequestContext extends SdkObject { socket.on('lookup', () => { dnsLookupAt = monotonicTime(); }); socket.on('connect', () => { tcpConnectionAt = monotonicTime(); }); socket.on('secureConnect', () => { tlsHandshakeAt = monotonicTime(); }); + + // socks / http proxy + socket.on('proxyConnect', () => { tcpConnectionAt = monotonicTime(); }); }); request.on('finish', () => { requestFinishAt = monotonicTime(); });