<select> popup resize feedback loop freezes X11

#566683388 dup: #567896504 regressed in M154 CL 8501223

Summary

On Linux/X11 with a non-integer device scale factor, opening a native <select> popup makes the popup grow by one pixel in width and height per X round trip. Each resize reallocates the window pixmap, so Xorg saturates a core and the whole desktop stops repainting.

Integer scale factors (--force-device-scale-factor=1) do not reproduce, which is why several triagers could not confirm it.

Your environment

devicePixelRatio: ?   platform: ?

checking...

Live repro

freezes your desktop

Only run this on an affected build

On Chrome 154-155 with a fractional scale factor the X server stops responding for as long as the popup is open. Save your work first. Killing Chrome releases it.

Click the control. Three more options are appended while the popup is open, which is what keeps the loop fed.

Steps

# 1.671875 is the ratio from the original report; any non-integer value works
google-chrome --user-data-dir=/tmp/fresh --force-device-scale-factor=1.671875 \
    https://static.januschka.com/i-566683388/

# 2. click the select
# 3. watch the popup window grow
watch -n1 'xwininfo -root -children | grep -v name'

Expected vs actual

BuildPopup X11 sizeXorg CPU over 17 s
154 / 155 (broken) 749x428, then 1712x1284 and climbing one core pegged; xwininfo itself blocks
with CL 8501223 504x284, stable 0 ticks

504x284 is the natural size: 300 CSS px x 1.671875.

Links

Issue 566683388 Issue 567896504 CL 8501223