tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

file_toScreenRect.html (1472B)


      1 <!DOCTYPE HTML>
      2 <meta charset="utf-8">
      3 <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1">
      4 <link rel="stylesheet" href="/tests/SimpleTest/test.css" />
      5 <style>
      6 html,body {
      7  margin: 0;
      8  padding: 0;
      9 }
     10 #target {
     11  position: absolute;
     12  top: 150px;
     13  left: 150px;
     14  width: 100px;
     15  height: 100px;
     16  background-color: blue;
     17 }
     18 </style>
     19 <div id="target"></div>
     20 <script>
     21 const isfuzzy = opener.isfuzzy.bind(opener);
     22 const add_task = opener.add_task.bind(opener);
     23 const original_finish = opener.SimpleTest.finish;
     24 const SimpleTest = opener.SimpleTest;
     25 SimpleTest.finish = function finish() {
     26  self.close();
     27  original_finish();
     28 };
     29 add_task(async () => {
     30  await SpecialPowers.pushPrefEnv({'set': [['layout.css.devPixelsPerPx', 1.5]]});
     31  SpecialPowers.setFullZoom(window, 2.0);
     32 
     33  const rect = target.getBoundingClientRect();
     34  const screenPixelsPerCSSPixel = window.devicePixelRatio;
     35 
     36  let rectOnScreen =
     37    SpecialPowers.DOMWindowUtils.toScreenRect(rect.x, rect.y, rect.width, rect.height);
     38  isfuzzy(rectOnScreen.x,
     39     rect.x * screenPixelsPerCSSPixel +
     40     window.mozInnerScreenX * screenPixelsPerCSSPixel, 0.01, "x");
     41  isfuzzy(rectOnScreen.y,
     42     rect.y * screenPixelsPerCSSPixel +
     43     window.mozInnerScreenY * screenPixelsPerCSSPixel, 0.01, "y");
     44 
     45  isfuzzy(rectOnScreen.width, rect.width * screenPixelsPerCSSPixel, 0.01, "width");
     46  isfuzzy(rectOnScreen.height, rect.height * screenPixelsPerCSSPixel, 0.01, "height");
     47 });
     48 </script>