[whatwg] Processing the zoom level - MS extensions to window.screen

Charles Pritchard chuck at jumis.com
Tue Dec 14 10:22:07 PST 2010


On 11/24/2010 1:12 AM, Robert O'Callahan wrote:
> On Wed, Nov 24, 2010 at 9:09 PM, Charles Pritchard <chuck at jumis.com 
> <mailto:chuck at jumis.com>> wrote:
>
>     On 11/21/2010 4:12 PM, Robert O'Callahan wrote:
>>     On Sun, Nov 21, 2010 at 9:59 AM, Charles Pritchard
>>     <chuck at jumis.com <mailto:chuck at jumis.com>> wrote:
>>
>>         Rob: Mobile deployments using dpiPixelRatio (as has been
>>         adopted by Moz and Webkit) and target-DpiDensity work well on
>>         the mobile, they are not hooked to zoom on the desktop,
>>
>>
>>     It is in Firefox.
>     I just tested in 4b7, and it's not changing dpiPixelRatio.
>
>
> Try this:
> <style>
> div { display:none; }
> @media screen and (min--moz-device-pixel-ratio: 1.5) {
>   .in { display:block; }
> }
> @media screen and (max--moz-device-pixel-ratio: 0.66666666) {
>   .out { display:block; }
> }
> </style>
> <div class="in">Zoomed in by a factor of at least 1.5</div>
> <div class="out">Zoomed out by a factor of at least 1.5</div>
>
> Try zooming in a lot and zooming out a lot. It works for me.

I've started working to get this behavior supported in webkit.

Currently, nobody is touching the devicePixelRatio [mislabeled 
dpiPixelRatio in my prior e-mails],
outside of the mobile device atmosphere. As such, the CSS 
device-pixel-ratio and window.devicePixelRatio
should be considered two different things. An unfortunate naming overlap.

I'd hoped for a cleaner resolution to the issue.

This represents my existing understanding of the consequences of 
Mozilla's don't-make-it-easy policy:

var mozObfuscatedRatio = 0;
if(window.devicePixelRatio != 1) mozObfuscatedRatio = 
window.devicePixelRatio;
else if(window.mozDevicePixelRatio != 1) mozObfuscatedRatio = 
window.mozDevicePixelRatio;
else while(mozObfuscatedRatio < 10) {
  mozObfuscatedRatio += .1;
  if (false === matchMedia('(min--moz-device-pixel-ratio: 
'+(mozObfuscatedRatio)+')').matches ) {
   mozObfuscatedRatio -= .1; break;
  }
}

The numbers should be tuned for typical zoom steps.

This doesn't feel like a win for anybody.

We couldn't even begin to talk about normalizing 
window.innerWidth/window.outerWidth .
Mozilla's practice of normalizing all metrics to CSS units makes a lot 
of sense.
Obfuscating access to device-pixel-ratio does not.


-Charles

In response to fiddling with ImageData: looks like a related 
conversation took place in 2008:
http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2008-February/013923.html

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.whatwg.org/pipermail/whatwg-whatwg.org/attachments/20101214/8d6be655/attachment-0001.htm>


More information about the whatwg mailing list