diff options
Diffstat (limited to 'layout/reftests/scrolling/scrolling.js')
-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 000000000..61fce2d18 --- /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); + }, false); + } else { + doScroll(1); + document.documentElement.setAttribute("class", "reftest-wait"); + window.addEventListener("MozReftestInvalidate", function() { + document.documentElement.removeAttribute("class"); + doScroll(20); + }, false); + } +} |