Back to Chromium

Interaction to Next Paint Changes in Chrome 148

docs/speed/metrics_changelog/2026_03_inp.md

153.0.8005.12.6 KB
Original Source

Interaction to Next Paint Changes in Chrome 148

Report only web-exposed event targets in Event Timing

In Chrome 148, Chrome updated how target elements are captured and exposed on PerformanceEventTiming entries.

Previously, the Event Timing implementation captured the target using internal RawTarget() pointers early in the event lifecycle. While this minimized the likelihood of entry.target returning null, it was overly aggressive and could leak internal, non-web-exposed targets (such as user-agent shadow roots or internal component implementations) that normal DOM event dispatch didn't expose on event.target.

Starting in Chrome 148, Event Timing queries event.target at the end of event dispatch. This aligns Event Timing with standard DOM Event Dispatch and Shadow DOM encapsulation rules, ensuring only web-exposed targets are reported to web developers.

As a consequence of this fix, entry.target may evaluate to null more often:

  • When event dispatch is skipped or cancelled before reaching the target.
  • When target elements are detached or removed from the DOM during event execution.
  • When target elements reside behind closed shadow boundaries.

The implementation change can be seen in crrev.com/c/7617568.


Experimental targetSelector resilience via EventPath

To provide developers with a reliable identifier for interaction targets even when entry.target is null (or when elements are removed during event handling), Chrome has been developing an experimental targetSelector property on PerformanceEventTiming (w3c/event-timing#126).

In Chrome 148, targetSelector was updated to construct its CSS query selector from the event's propagation path (EventPath) rather than relying on target(). Because EventPath is available even when entry.target is null, targetSelector can still provide a valid selector string representing the interaction's target.

(Note: targetSelector remains an experimental feature under evaluation and is not yet enabled by default in stable.)

How does this affect a site's metrics?

  • No change to INP scores: This change only affects target element reporting on PerformanceEventTiming entries; interaction durations and UKM/CrUX INP scores remain unchanged.
  • RUM attribution: Real User Monitoring (RUM) and analytics scripts inspecting entry.target should anticipate receiving null more often for interactions where elements are removed or dynamically modified during event dispatch.

When were users affected?

Chrome 148 reached stable users in March 2026.