reportFP method
void
reportFP()
Reports First Paint (FP) when the first visual change is rendered. This includes any non-default background colors, borders, box shadows, or any visible content. FP always occurs before or at the same time as FCP.
Implementation
void reportFP() {
if (_currentRouteMetrics == null) return;
final metrics = _currentRouteMetrics!;
// Don't report if already reported or not initialized
if (metrics.fpReported || metrics.navigationStartTime == null) return;
// Record first paint phase
_loadingState.recordPhase(LoadingState.phaseFirstPaint, parameters: {
'timeSinceNavigationStart': DateTime.now().difference(metrics.navigationStartTime!).inMilliseconds,
});
metrics.fpReported = true;
metrics.fpTime = DateTime.now().difference(metrics.navigationStartTime!).inMilliseconds.toDouble();
// Fire the FP callback
if (onFP != null) {
onFP!(metrics.fpTime, metrics.initialEvaluatedState);
}
// Fire the route-aware callback
if (onRouteFP != null) {
onRouteFP!(metrics.fpTime, metrics.routePath);
}
}