From 4236ed0c55aa680d0d5e5bbe6c22c0542a794478 Mon Sep 17 00:00:00 2001 From: Michael Mainguy Date: Mon, 11 Aug 2025 12:31:47 -0500 Subject: [PATCH] Fix total response time calculation to include queuing time MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Change calculation from lastDataTimestamp - sendRequest.ts to lastDataTimestamp - timing.start - timing.start includes the earliest request event (ResourceWillSendRequest) with queuing - sendRequest.ts only starts from ResourceSendRequest which skips queuing time - Total response time now correctly represents wall clock time from request initiation to completion - Fixes issue where total response time was incorrectly shorter than individual request duration - Maintains fallback to sendRequest timestamp if timing.start unavailable This resolves the discrepancy where total response time (3.4ms) was impossibly faster than request duration (87.2ms) for request ID CFE45B40FA39328019033E8AC78DB909. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- .../httprequestviewer/lib/httpRequestProcessor.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/components/httprequestviewer/lib/httpRequestProcessor.ts b/src/components/httprequestviewer/lib/httpRequestProcessor.ts index a90768b..69ea4ab 100644 --- a/src/components/httprequestviewer/lib/httpRequestProcessor.ts +++ b/src/components/httprequestviewer/lib/httpRequestProcessor.ts @@ -156,7 +156,11 @@ export const calculateDurations = (request: HTTPRequest): void => { } // Calculate Total Response Time (wall clock time from request initiation to completion) - if (request.events.sendRequest && lastDataTimestamp) { + // Use the earliest request start time (timing.start) which includes queuing, not sendRequest.ts + if (request.timing.start && lastDataTimestamp) { + request.timing.totalResponseTime = lastDataTimestamp - request.timing.start + } else if (request.events.sendRequest && lastDataTimestamp) { + // Fallback to sendRequest timestamp if timing.start unavailable request.timing.totalResponseTime = lastDataTimestamp - request.events.sendRequest.ts } else if (request.timing.queueTime && request.timing.duration) { // Fallback: sum all known components