- From: Boris Zbarsky <bzbarsky@MIT.EDU>
- Date: Tue, 05 Jan 2010 13:01:50 -0500
- To: rfink@readableweb.com
- CC: robert@ocallahan.org, "'www-style'" <www-style@w3.org>
On 1/5/10 11:15 AM, Richard Fink wrote: > My assumption is based on that information not being utilized. Xorg utilizes it in my experience. See my reply to Ambrose in this thread, and the quoted parts of the log there. Now it's possible that I'm just lucky with my monitors and they actually send EDID information, I suppose. > For example, it doesn't make a lot of sense to me that I, as a web developer, can use JavaScript to query the screen resolution and - in IE8 and FF 3.6 - the logical pixel size but I can't query for the true physical dimensions of the display. Why not, if it's available? In the case of Firefox, simply because we never implemented this, at least in web-exposed APIs. There are internal APIs for querying just such information. Note that you _can_ use CSS to query the physical display size. For example: @media (min-device-width: 20in) { * { color: green } } This is naturally subject to whatever lies the OS decides to tell the browser. For example, on my Mac the OS reports a DPI of 96 even though the actual DPI is closer to 130 (17" screen at 1920x1200). So as far as Firefox can tell the screen is 20" wide and 12.5" tall, whereas it's actually closer to 14.5" wide and 9" tall. And on Linux Firefox just asks GDK for screen information (using gdk_screen_width() and the like) and uses the reported DPI to get physical sizes (though GDK does also offer gdk_screen_width_mm). The dpi Firefox uses can either be set via preferences, or again queried from the OS. In the Linux case gdk_screen_get_resolution is used, with various fallbacks to 96 in cases when it's actually less than 96 and the like... On Windows, the logical DPI is currently used (GetDeviceCaps with LOGPIXELSY). On Mac 96 is used. On OS/2, DevQueryCaps with CAPS_VERTICAL_FONT_RES is used. > Further, in Windows, the problem of users having their display resolution set to something other than the "native" resolution of the display How would this affect physical size computations, exactly? > But if the physical size of the display is and has been known to the OS, this is indeed mysterious. How so? > Once again, if this information is available why isn't it being used? It _is_, in some cases. If the question is why Mac OS and Windows endemically lie about the DPI to all consumers, I suspect that it has to do with precisely the sort of issue we're dealing with here: people making assumptions about how pt and px are related to each other and hence having to maintain a fiction to make those assumptions true. > This calls for more inquiry, most definitely. Forgive my ignorance but offhand I don't know what an X server is. <http://en.wikipedia.org/wiki/X_Window_System>, but for the sake of this discussion, just think "graphics card driver on a Linux system"; the other things X does aren't really relevant here. > Are you saying that in Gecko, programmers can reliably query Windows for the physical dimensions of the display? I'm saying that in Gecko, programmers can ask Windows (or whatever OS it's running on) for whatever information it chooses to report. Some choose to report correct answers; some choose to deliberately lie... I'd be interested in how close CSS media queries get to determining the actual physical size of your screen on Windows, and will try to remember to check when I get back to my Windows box; it seems to me that using LOGPIXELSY and dividing the logical height by that (which is what the media query code does) should in fact come out close to the physical height. The physical width might be more chancy in cases when LOGPIXELSX != LOGPIXELSY. Hope that helps, Boris
Received on Tuesday, 5 January 2010 18:07:44 UTC