summaryrefslogtreecommitdiffstats
path: root/layout/reftests/scrolling/scrolling.js
diff options
context:
space:
mode:
Diffstat (limited to 'layout/reftests/scrolling/scrolling.js')
-rw-r--r--layout/reftests/scrolling/scrolling.js46
1 files changed, 46 insertions, 0 deletions
diff --git a/layout/reftests/scrolling/scrolling.js b/layout/reftests/scrolling/scrolling.js
new file mode 100644
index 0000000000..2176c90d8d
--- /dev/null
+++ b/layout/reftests/scrolling/scrolling.js
@@ -0,0 +1,46 @@
+var topElements;
+var failed = false;
+
+function doScroll(d)
+{
+ if (failed)
+ return;
+ for (var i = 0; i < topElements.length; ++i) {
+ var e = topElements[i];
+ e.scrollTop = d;
+ if (e.scrollTop != d) {
+ document.documentElement.textContent =
+ "Scrolling failed on " + e.tagName + " element, " +
+ "tried to scroll to " + d + ", got " + e.scrollTop +
+ " (Random number: " + Math.random() + ")";
+ failed = true;
+ }
+ }
+}
+
+// bug 1134459, images are decoded off main thread
+// Wait for the load event so we know all images have loaded
+document.onload = function() {
+ topElements = document.getElementsByClassName("scrollTop");
+ if (!topElements.length) {
+ topElements = [document.documentElement];
+ }
+
+ if (document.location.search == '?ref') {
+ doScroll(20);
+ } else if (document.location.search == '?up') {
+ doScroll(40);
+ document.documentElement.setAttribute("class", "reftest-wait");
+ window.addEventListener("MozReftestInvalidate", function() {
+ document.documentElement.removeAttribute("class");
+ doScroll(20);
+ });
+ } else {
+ doScroll(1);
+ document.documentElement.setAttribute("class", "reftest-wait");
+ window.addEventListener("MozReftestInvalidate", function() {
+ document.documentElement.removeAttribute("class");
+ doScroll(20);
+ });
+ }
+}