gecko/layout/reftests/scrolling/scrolling.js
Robert O'Callahan 432a81c01e Bug 637852. Part 22: Detect when the contents of a ThebesLayer have shifted by a subpixel amount and repaint the entire layer when that happens. r=tnikkel
This fixes artifacts when we're scrolling inside scaled content, and includes a test for that (which fails without
this code change).
2011-06-23 00:11:28 +12:00

42 lines
1.1 KiB
JavaScript

var topElements = document.getElementsByClassName("scrollTop");
if (!topElements.length) {
topElements = [document.documentElement];
}
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;
}
}
}
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);
}