It's not possible to discover the scaling of CSS pixels to actual device pixels, with the current standard.

There are three non-standard ways to access them, from what I can see.

Mozilla:
window.QueryInterface(Components.interfaces.nsIInterfaceRequestor).getInterface(Components.interfaces.nsIDOMWindowUtils).screenPixelsPerCSSPixel

Google:
chrome.tabs.getZoomPercentage
window.innerWidth and window.outerWidth are decoupled, one is in CSS pixels,
the other is in screen pixels. So that's a minor work-around.

Microsoft:
window.screen

This is apart from the existing convention on mobile phones of targetDpiDensity and dpiPixelRatio.

Microsoft's solution, seems to be superior, by exposing everything:
http://msdn.microsoft.com/en-us/library/ms535868(v=VS.85).aspx

systemXDPI, deviceXDPI, logicalXDPI  (and YDPI ).

They also have fontSmoothingEnabled and updateInterval;
which are handy, but out of scope for this section.

Moz has animation hooks:
window.mozAnimationStartTime
window.addEventListener("MozBeforePaint")
window.mozRequestAnimationFrame()


I'm pushing Microsoft's solution, of exposing the data through window.screen.
Can we all get on board with that one? Are there other proposals?


Reply via email to