diff options
Diffstat (limited to '')
-rw-r--r-- | layout/reftests/scrolling/scrolling.js | 46 |
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); + }); + } +} |