blob: cc895e54ef9192edf2741656ece84e58453e4a6b [file] [log] [blame]
<!DOCTYPE html>
<html style="width: 1600px; height: 1200px">
<head>
<script src="../../resources/js-test-pre.js"></script>
</head>
<body onload="runTest()">
<img id="testImage" src="resources/animated.gif" style="-webkit-transform: translatez(0);">
<script>
description("Make sure directly-composited animated GIFs properly get suspended / resumed based on visibility inside viewport.");
jsTestIsAsync = true;
var testImage = document.getElementById("testImage");
var frameIndexImageWasPausedAt = 0;
function isImageAnimated()
{
return !internals.hasPausedImageAnimations(testImage);
}
function checkFrameIndexAndFinish()
{
// Actually make sure that the frame index changes.
shouldBecomeDifferent("internals.imageFrameIndex(testImage)", "frameIndexImageWasPausedAt", finishJSTest);
}
function scrollUp()
{
frameIndexImageWasPausedAt = internals.imageFrameIndex(testImage);
debug("Animation was paused, scroll up so that the image is visible again");
window.scrollBy(0, -600);
shouldBecomeEqual("isImageAnimated()", "true", checkFrameIndexAndFinish);
}
function scrollDown()
{
debug("Scroll down so that the image is no longer visible");
window.scrollBy(0, 600);
shouldBecomeEqual("isImageAnimated()", "false", scrollUp);
}
function runTest()
{
if (!window.internals)
return;
shouldBecomeEqual("isImageAnimated()", "true", scrollDown);
}
</script>
<script src="../../resources/js-test-post.js"></script>
</body>
</html>