42 lines
1.6 KiB
HTML
42 lines
1.6 KiB
HTML
<script>
|
|
// This test waits for a GIF repaint and double checks that there is a repaint only,
|
|
// no layout. If the test passes, there are two green squares. If it fails, then one
|
|
// or both of the squares is red instead.
|
|
|
|
var layoutCountBeforeTimer;
|
|
|
|
function animationComplete()
|
|
{
|
|
if (window.internals && window.testRunner) {
|
|
internals.updateLayoutAndStyleForAllFrames();
|
|
var count = internals.layoutCount - layoutCountBeforeTimer;
|
|
if (count == 0) {
|
|
var indicator = document.getElementById("indicator");
|
|
indicator.addEventListener("load", function() { testRunner.notifyDone(); })
|
|
indicator.src = "resources/rgb-jpeg-green.jpg";
|
|
return;
|
|
}
|
|
testRunner.notifyDone();
|
|
}
|
|
}
|
|
|
|
function test()
|
|
{
|
|
if (window.internals && window.testRunner) {
|
|
testRunner.waitUntilDone();
|
|
internals.updateLayoutAndStyleForAllFrames();
|
|
layoutCountBeforeTimer = internals.layoutCount;
|
|
}
|
|
|
|
// The 200ms value here is longer than the time it takes for gif-loop-count.gif
|
|
// to advance from its first frame to its second. There should be no race because
|
|
// the GIF timer should already be scheduled and this timer should share the
|
|
// same time base.
|
|
setTimeout(animationComplete, 200);
|
|
}
|
|
</script>
|
|
<body onload="test()">
|
|
<img src="resources/gif-loop-count.gif" style="position:absolute;left:0;top:0">
|
|
<img id="indicator" src="resources/rgb-jpeg-red.jpg" style="position:absolute;left:0;top:150">
|
|
</body>
|