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.

see also