diff --git a/packages/playwright-core/src/server/fetch.ts b/packages/playwright-core/src/server/fetch.ts index c1e394e249..dbbcb8f80e 100644 --- a/packages/playwright-core/src/server/fetch.ts +++ b/packages/playwright-core/src/server/fetch.ts @@ -302,6 +302,7 @@ export abstract class APIRequestContext extends SdkObject { const requestOptions = { ...options, agent }; const startAt = monotonicTime(); + const startAtWallTime = Date.now(); let dnsLookupAt: number | undefined; let tcpConnectionAt: number | undefined; let tlsHandshakeAt: number | undefined; @@ -441,7 +442,7 @@ export abstract class APIRequestContext extends SdkObject { const endAt = monotonicTime(); // spec: https://developer.mozilla.org/en-US/docs/Web/API/PerformanceResourceTiming const timing: channels.ResourceTiming = { - startTime: startAt, + startTime: startAtWallTime, domainLookupStart: dnsLookupAt ? 0 : -1, domainLookupEnd: dnsLookupAt ? dnsLookupAt! - startAt : -1, connectStart: dnsLookupAt ? dnsLookupAt! - startAt : 0, diff --git a/tests/library/browsercontext-fetch.spec.ts b/tests/library/browsercontext-fetch.spec.ts index eb24bd939f..69cff23fe7 100644 --- a/tests/library/browsercontext-fetch.spec.ts +++ b/tests/library/browsercontext-fetch.spec.ts @@ -63,6 +63,7 @@ it('fetch should work', async ({ context, server }) => { secureConnectionStart: expect.any(Number), startTime: expect.any(Number), }); + expect(response.timing().startTime, 'is right order of magnitude').toBeCloseTo(Date.now(), -3); expect(await response.text()).toBe('{"foo": "bar"}\n'); });