in src/plugins/network.ts [274:311]
private async _onRequestCompleted(request: Request) {
const networkEntry = this._findNetworkEntry(request);
if (!networkEntry) return;
networkEntry.loadEndTime = epochTimeInSeconds();
// responseEnd is fired after the last byte of the response is received.
const timing = request.timing();
const receive =
timing.responseEnd !== -1
? roundMilliSecs(timing.responseEnd - timing.responseStart)
: -1;
networkEntry.timings.receive = receive;
this._calcTotalTime(networkEntry, timing);
// For aborted/failed requests sizes will not be present
if (timing.startTime <= 0) {
return;
}
const frame = this._nullableFrameBarrier(request);
const page = frame?.page();
this._addBarrier(
page,
request.sizes().then(sizes => {
networkEntry.request.bytes =
sizes.requestHeadersSize + sizes.requestBodySize;
networkEntry.request.body = {
bytes: sizes.requestBodySize,
};
const transferSize = sizes.responseHeadersSize + sizes.responseBodySize;
networkEntry.transferSize = transferSize;
networkEntry.response.bytes = transferSize;
networkEntry.response.body = {
bytes: sizes.responseBodySize,
};
})
);
}