chromium/docs/speed/metrics_changelog/2024_01_inp.md

# Interaction to Next Paint Changes in Chrome 121

## Event Timing flush pointerdown & keydown on contextmenu

When right click or keyboard menu key brings up contextmenu, the pointerdown or
keydown entry was not reported by performance event timing for the first time
you do so. This was because the pointerdown or keydown entries were saved in a
buffer map and deferred notifying to performance timeline until pointercancel
or pointerup or keyup events. However, it's a known [case](https://github.com/w3c/pointerevents/issues/408)
where pointerdown is only followed by a contextmenu without the pairing
pointercancel/pointerup/keyup. As a result, the pointerdown/keydown entry would
get stuck in the buffer map in event timing. The stuck entry can only be
rescued when a new pointerdown comes in to substitute it out. Thus the first
pointerdown was missing and all subsequent right clicks were printing incorrect
previous ones stuck in the map.
We [patched](https://chromium.googlesource.com/chromium/src/+/7ed67e1b59cfe5cb1c4674dc7db59c2c5ae90cbd)
it by adding a timer to flush all pointerdown, pointerup, and keydown entries
upon contextmenu, and also make it as an interaction. We use a timer because
there exist cases where we do see a pointerup following the contextmenu right
after, in that case we would want to match pointerdown and pointerup with the
same interactionId. We have a maximum time threshold of one second between
contextmenu and pointerup.

## How does this affect a site's metrics?

INP durations values will not change, however total measured number of
interactions will slightly increase since now we measure contextmenu
interactions. This should have minimal impact on site's INP since
contextmenu interactions are usually pretty fast and not will not affect high
percentile INP scores.

## When were users affected?

Chrome 121 was released the week of January 23, 2024.