demo ยท v133
RUM dashboard for a third-party hero image
A simulated news article where the LCP element is a hero image hosted on a CDN that doesn't send Timing-Allow-Origin. Before 133, LCP analytics for that image were zero. Now they're a real timestamp, snapped to a 4ms grid.
what changed
Before 133, if a cross-origin resource didn't send Timing-Allow-Origin, the renderTime in PerformanceObserver entries was 0 — an info-leak mitigation. The trouble: most real sites' hero images live on CDNs without TAO, so LCP was unusable for the elements RUM cared about most. The fix: report a real renderTime, but snapped to a multiple of 4ms. Same mitigation (no pixel-level cross-origin timing leak), useful signal. Reload this page a few times and watch the renderTime always end in a multiple of 4.
new PerformanceObserver((list) => {
for (const e of list.getEntries()) {
console.log(e.name, e.renderTime); // now non-zero even cross-origin
// e.renderTime % 4 === 0
}
}).observe({ type: "largest-contentful-paint", buffered: true });
see also
scenario focus
Select a scenario to focus its rendered example and summary.