aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--components/script/dom/window.rs4
-rw-r--r--tests/wpt/mozilla/meta/MANIFEST.json10
-rw-r--r--tests/wpt/mozilla/tests/mozilla/scrollBy.html26
3 files changed, 38 insertions, 2 deletions
diff --git a/components/script/dom/window.rs b/components/script/dom/window.rs
index 6b8857b81b1..a2af04ad1cc 100644
--- a/components/script/dom/window.rs
+++ b/components/script/dom/window.rs
@@ -1066,8 +1066,8 @@ impl Window {
let content_size = e.upcast::<Node>().bounding_content_box_or_zero();
let content_height = content_size.size.height.to_f64_px();
let content_width = content_size.size.width.to_f64_px();
- (xfinite.max(0.0f64).min(content_width - width),
- yfinite.max(0.0f64).min(content_height - height))
+ (xfinite.min(content_width - width).max(0.0f64),
+ yfinite.min(content_height - height).max(0.0f64))
},
None => {
(xfinite.max(0.0f64), yfinite.max(0.0f64))
diff --git a/tests/wpt/mozilla/meta/MANIFEST.json b/tests/wpt/mozilla/meta/MANIFEST.json
index 1b33db843e9..ffeefb946e7 100644
--- a/tests/wpt/mozilla/meta/MANIFEST.json
+++ b/tests/wpt/mozilla/meta/MANIFEST.json
@@ -19783,6 +19783,12 @@
{}
]
],
+ "mozilla/scrollBy.html": [
+ [
+ "/_mozilla/mozilla/scrollBy.html",
+ {}
+ ]
+ ],
"mozilla/scrollTo.html": [
[
"/_mozilla/mozilla/scrollTo.html",
@@ -31354,6 +31360,10 @@
"b247e3a0ba733c1a8b129ce2994b862d8ed3a423",
"testharness"
],
+ "mozilla/scrollBy.html": [
+ "0243d584bc615a73ea1667fc35f5d73b5165d19f",
+ "testharness"
+ ],
"mozilla/scrollTo.html": [
"b9917be5fed364dbc46264f641f54f275b5c054a",
"testharness"
diff --git a/tests/wpt/mozilla/tests/mozilla/scrollBy.html b/tests/wpt/mozilla/tests/mozilla/scrollBy.html
new file mode 100644
index 00000000000..24e6d108e24
--- /dev/null
+++ b/tests/wpt/mozilla/tests/mozilla/scrollBy.html
@@ -0,0 +1,26 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>Ensure that the window.scrollBy function affects scroll position as expected</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<body>
+ <a id="link" href="http://mozilla.org">This is some link text.</a>
+ <div style="width: 10000px; height: 10000px; background: pink; z-index: -1;"></div>
+ <script>
+ test(function() {
+ scrollBy(0, 5000);
+ assert_equals(scrollX, 0);
+ assert_equals(pageXOffset, 0);
+ assert_equals(scrollY, 5000);
+ assert_equals(pageYOffset, 5000);
+
+ scrollTo(0, 0);
+
+ var link = document.getElementById("link");
+ var linkRect = link.getBoundingClientRect();
+ assert_equals(link, document.elementFromPoint(linkRect.left, linkRect.top));
+ window.scrollBy(0, 1);
+ assert_equals(link, document.elementFromPoint(linkRect.left, linkRect.top - 1));
+ });
+ </script>
+</body>