FractionalScrollOffsets - RED/GREEN Tests

#40384509 -- Tests that detect whether FractionalScrollOffsets is enabled. Launch Chrome with --enable-blink-features=FractionalScrollOffsets to go green.
Running...

Test 1: Internal scroll offset precision

Blink stores scroll offsets internally. When DSF or zoom produces a fractional physical-pixel offset, does the scroller keep the fraction or truncate to int? Tested by scrolling to a position that at 150% zoom (simulated via CSS zoom) maps to a fractional physical pixel, then reading back.

scrollTop round-trip at fractional offset

Test 2: Scroll snap at fractional boundary

A scroll-snap container with items at positions that produce fractional physical-pixel offsets. Without FSO, snapping truncates and can land at the wrong integer. With FSO, the fraction is preserved.

scroll-snap lands within 1px of target

Test 3: Programmatic scroll precision

Set scrollTop to a fractional CSS-pixel value and verify getBoundingClientRect().top of a child reflects the sub-pixel shift. The web API floors scrollTop (web compat) but the rendering offset should still move the child by a fractional amount.

child element position reflects sub-pixel scroll

Test 4: Main-thread scroll delta accumulation

Simulates the original 2014 bug: applying many small fractional scroll deltas via scrollBy(). Without FSO each delta gets truncated and total drift accumulates. With FSO, the final position is accurate.

100x scrollBy(0, 0.7) accumulates correctly