Open
Description
There are various APIs in the OM which return integer sizes. Some of them:
Window.{inner,outer}{Width,Height}
.Window.screen{X,Y,Top,Left}
.Screen.avail{Width,Height}
.Screen.{width,height}
.Element.offset{Top,Left,Bottom,Right}
.Element.scroll{Width,Height}
.
These return CSS pixels, and that means that in the current world of HiDPI screens and different screen resolutions, are all lossy.
Browsers do different things when converting these from fractional CSS pixels to an integer:
- Gecko rounds.
- WebKit (and Blink, inherited) truncate, unless you're very close to the next pixel, in which case they round. Which is a bit odd but hey.
It seems ideally we should have interop. I think some (if not all) of these (specially window sizes) would benefit from returning doubles, will file an issue on this. But it seems some agreement on what to do here would be on point.