fix bug with socks/http proxy

This commit is contained in:
Simon Knott 2024-09-17 19:29:37 +02:00
parent 8de8383165
commit 819e0a5275
No known key found for this signature in database
GPG key ID: 8CEDC00028084AEC

View file

@ -422,6 +422,11 @@ export abstract class APIRequestContext extends SdkObject {
const chunks: Buffer[] = []; const chunks: Buffer[] = [];
const notifyBodyFinished = () => { const notifyBodyFinished = () => {
function relativeTime(time: number | undefined): number {
if (!time)
return -1;
return time - startAt;
}
const endAt = monotonicTime(); const endAt = monotonicTime();
// spec: https://developer.mozilla.org/en-US/docs/Web/API/PerformanceResourceTiming // spec: https://developer.mozilla.org/en-US/docs/Web/API/PerformanceResourceTiming
const timing: channels.ResourceTiming = { const timing: channels.ResourceTiming = {
@ -430,8 +435,8 @@ export abstract class APIRequestContext extends SdkObject {
domainLookupEnd: dnsLookupAt ? dnsLookupAt! - startAt : -1, domainLookupEnd: dnsLookupAt ? dnsLookupAt! - startAt : -1,
connectStart: dnsLookupAt ? dnsLookupAt! - startAt : 0, connectStart: dnsLookupAt ? dnsLookupAt! - startAt : 0,
secureConnectionStart: dnsLookupAt ? dnsLookupAt! - startAt : 0, secureConnectionStart: dnsLookupAt ? dnsLookupAt! - startAt : 0,
connectEnd: (tlsHandshakeAt ?? tcpConnectionAt!) - startAt, connectEnd: relativeTime(tlsHandshakeAt ?? tcpConnectionAt),
requestStart: (tlsHandshakeAt ?? tcpConnectionAt!) - startAt, requestStart: relativeTime(tlsHandshakeAt ?? tcpConnectionAt),
responseStart: responseAt - startAt, responseStart: responseAt - startAt,
}; };
const responseEndTiming = endAt - startAt; const responseEndTiming = endAt - startAt;
@ -499,6 +504,9 @@ export abstract class APIRequestContext extends SdkObject {
socket.on('lookup', () => { dnsLookupAt = monotonicTime(); }); socket.on('lookup', () => { dnsLookupAt = monotonicTime(); });
socket.on('connect', () => { tcpConnectionAt = monotonicTime(); }); socket.on('connect', () => { tcpConnectionAt = monotonicTime(); });
socket.on('secureConnect', () => { tlsHandshakeAt = monotonicTime(); }); socket.on('secureConnect', () => { tlsHandshakeAt = monotonicTime(); });
// socks / http proxy
socket.on('proxyConnect', () => { tcpConnectionAt = monotonicTime(); });
}); });
request.on('finish', () => { requestFinishAt = monotonicTime(); }); request.on('finish', () => { requestFinishAt = monotonicTime(); });