<script>
var updated = false;
var prevTime;
if (window.internals)
    internals.settings.setImageAnimationPolicy("none");

if (window.testRunner)
    testRunner.waitUntilDone();

function changeImage() {
    document.getElementById("target").src = "animation-green.gif";
    updated = true;
}

function imageLoaded() {
    if (!updated)
        return;
    setTimeout(onTimeout, 0.5);
}

function onTimeout() {
    if (window.testRunner)
        testRunner.notifyDone();
}
</script>
<body onload="changeImage()">
<img id="target" src="animation-blue.gif" onload="imageLoaded()">
</body>
