demo · v146
Candidate timeline trace
Replays a synthetic page load with five candidate elements arriving in order of decreasing size. Toggle the rule between "old Chrome — emit every monotonic increase" and "146 spec — only emit when the candidate strictly beats the previous one" and watch how many largest-contentful-paint entries surface — and which final LCP each rule reports.
The bug being fixed: pre-146, Chrome would emit a fresh LCP entry when a later-painted element was the same size as an earlier one or even slightly smaller, polluting your RUM data. The spec says "strictly larger" — that's what 146 now does.
emitted
suppressed
PerformanceObserver feed
// Pre-146: After 146 (spec):
// if (size > prev) if (size > prev /* strictly */)
// emit(candidate); emit(candidate);
// — but tolerated equality and small noise.