APZ tracks the content rect (called "scrollable rect" in that part of the code) [as a `CSSRect`](https://searchfox.org/mozilla-central/rev/46e3b1ce2cc120a188f6940b5c6eab6b24530e4f/gfx/layers/FrameMetrics.h#596), so it can be fractional in device pixels, yes. Comparable "can this scroll?" checks in APZ, like [this one](https://searchfox.org/mozilla-central/rev/46e3b1ce2cc120a188f6940b5c6eab6b24530e4f/gfx/layers/apz/src/Axis.cpp#263) do use an epsilon, of size 0.01 pixels. The choice of this epsilon is explained [here](https://searchfox.org/mozilla-central/rev/46e3b1ce2cc120a188f6940b5c6eab6b24530e4f/gfx/layers/apz/src/APZUtils.h#88).
Bug 1647222 Comment 3 Edit History
Note: The actual edited comment in the bug view page will always show the original commenter’s name and original timestamp.
APZ tracks the content rect (called "scrollable rect" in that part of the code) [as a `CSSRect`](https://searchfox.org/mozilla-central/rev/46e3b1ce2cc120a188f6940b5c6eab6b24530e4f/gfx/layers/FrameMetrics.h#596), so it can be fractional in device pixels, yes. Comparable "can this scroll?" checks in APZ, like [this one](https://searchfox.org/mozilla-central/rev/46e3b1ce2cc120a188f6940b5c6eab6b24530e4f/gfx/layers/apz/src/Axis.cpp#263), do use an epsilon, of size 0.01 pixels. The choice of this epsilon is explained [here](https://searchfox.org/mozilla-central/rev/46e3b1ce2cc120a188f6940b5c6eab6b24530e4f/gfx/layers/apz/src/APZUtils.h#88).