summaryrefslogtreecommitdiffstats
path: root/dom/base/test/file_toScreenRect.html
diff options
context:
space:
mode:
Diffstat (limited to 'dom/base/test/file_toScreenRect.html')
-rw-r--r--dom/base/test/file_toScreenRect.html48
1 files changed, 48 insertions, 0 deletions
diff --git a/dom/base/test/file_toScreenRect.html b/dom/base/test/file_toScreenRect.html
new file mode 100644
index 0000000000..990d9326f2
--- /dev/null
+++ b/dom/base/test/file_toScreenRect.html
@@ -0,0 +1,48 @@
+<!DOCTYPE HTML>
+<meta charset="utf-8">
+<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1">
+<link rel="stylesheet" href="/tests/SimpleTest/test.css" />
+<style>
+html,body {
+ margin: 0;
+ padding: 0;
+}
+#target {
+ position: absolute;
+ top: 150px;
+ left: 150px;
+ width: 100px;
+ height: 100px;
+ background-color: blue;
+}
+</style>
+<div id="target"></div>
+<script>
+const isfuzzy = opener.isfuzzy.bind(opener);
+const add_task = opener.add_task.bind(opener);
+const original_finish = opener.SimpleTest.finish;
+const SimpleTest = opener.SimpleTest;
+SimpleTest.finish = function finish() {
+ self.close();
+ original_finish();
+};
+add_task(async () => {
+ await SpecialPowers.pushPrefEnv({'set': [['layout.css.devPixelsPerPx', 1.5]]});
+ SpecialPowers.setFullZoom(window, 2.0);
+
+ const rect = target.getBoundingClientRect();
+ const screenPixelsPerCSSPixel = window.devicePixelRatio;
+
+ let rectOnScreen =
+ SpecialPowers.DOMWindowUtils.toScreenRect(rect.x, rect.y, rect.width, rect.height);
+ isfuzzy(rectOnScreen.x,
+ rect.x * screenPixelsPerCSSPixel +
+ window.mozInnerScreenX * screenPixelsPerCSSPixel, 0.01, "x");
+ isfuzzy(rectOnScreen.y,
+ rect.y * screenPixelsPerCSSPixel +
+ window.mozInnerScreenY * screenPixelsPerCSSPixel, 0.01, "y");
+
+ isfuzzy(rectOnScreen.width, rect.width * screenPixelsPerCSSPixel, 0.01, "width");
+ isfuzzy(rectOnScreen.height, rect.height * screenPixelsPerCSSPixel, 0.01, "height");
+});
+</script>