Skip to content

Commit 51bf43b

Browse files
committed
šŸ› do not calculate resource duration if page was in frozen state during resource duration
1 parent 8a04f1a commit 51bf43b

File tree

1 file changed

+6
-11
lines changed

1 file changed

+6
-11
lines changed

ā€Žpackages/rum-core/src/domain/resource/resourceCollection.ts

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import type { ClocksState, Duration } from '@datadog/browser-core'
21
import {
32
combine,
43
generateUUID,
@@ -95,15 +94,13 @@ function processRequest(
9594

9695
const correspondingTimingOverrides = matchingTiming ? computeResourceEntryMetrics(matchingTiming) : undefined
9796

98-
const duration = computeRequestDuration(pageStateHistory, startClocks, request.duration)
99-
10097
const resourceEvent = combine(
10198
{
10299
date: startClocks.timeStamp,
103100
resource: {
104101
id: generateUUID(),
105102
type,
106-
duration,
103+
duration: toServerDuration(request.duration),
107104
method: request.method,
108105
status_code: request.status,
109106
protocol: matchingTiming && computeResourceEntryProtocol(matchingTiming),
@@ -117,7 +114,11 @@ function processRequest(
117114
},
118115
tracingInfo,
119116
correspondingTimingOverrides
120-
)
117+
) as RawRumResourceEvent
118+
119+
if (pageStateHistory.wasInPageStateDuringPeriod(PageState.FROZEN, startClocks.relative, request.duration)) {
120+
resourceEvent.resource.duration = undefined
121+
}
121122

122123
return {
123124
startTime: startClocks.relative,
@@ -216,12 +217,6 @@ function computeResourceEntryTracingInfo(entry: RumPerformanceResourceTiming, co
216217
}
217218
}
218219

219-
function computeRequestDuration(pageStateHistory: PageStateHistory, startClocks: ClocksState, duration: Duration) {
220-
return !pageStateHistory.wasInPageStateDuringPeriod(PageState.FROZEN, startClocks.relative, duration)
221-
? toServerDuration(duration)
222-
: undefined
223-
}
224-
225220
/**
226221
* The status is 0 for cross-origin resources without CORS headers, so the status is meaningless, and we shouldn't report it
227222
* https://developer.mozilla.org/en-US/docs/Web/API/PerformanceResourceTiming/responseStatus#cross-origin_response_status_codes

0 commit comments

Comments
Ā (0)