Bug 972199 part 2 - Add a crashtest for restoring the refresh driver after an advance; r=nrc

In this crash test we restore the refresh driver after manually advancing it.
This causes a situation where a layer has an animation that has yet to start.

Prior to modifying ElementAnimations::GetPositionIteration this test case would
trip an assertion there that rejected negative elapsed times when called from
the compositor thread.
This commit is contained in:
Brian Birtles 2014-03-05 10:19:15 +09:00
parent 32a6b5d8fd
commit da2e87c2ff
2 changed files with 40 additions and 0 deletions

View File

@ -0,0 +1,39 @@
<!DOCTYPE HTML>
<html class="reftest-wait">
<head>
<style type="text/css">
@keyframes anim {
0% { transform: translate(0px) }
100% { transform: translate(100px) }
}
div {
width: 100px;
height: 100px;
background-color: white;
}
</style>
</head>
<body>
<div></div>
<script type="application/javascript">
SpecialPowers.setBoolPref("layers.offmainthreadcomposition.async-animations",
true);
window.addEventListener("load", function() {
document.querySelector("div").setAttribute("style",
"animation: 100s 300s anim linear");
advance_clock(200000);
advance_clock(300000);
Promise.resolve().then(function() {
SpecialPowers.DOMWindowUtils.restoreNormalRefresh();
}).then(function() {
document.documentElement.className = "";
});
});
function advance_clock(milliseconds) {
SpecialPowers.DOMWindowUtils.advanceTimeAndRefresh(milliseconds);
}
</script>
</html>

View File

@ -101,4 +101,5 @@ load 927734-1.html
load 930270-1.html
load 930270-2.html
load 945048-1.html
load 972199-1.html
load large_border_image_width.html