<html>
<body>
    <p>This is a regression test for crbug.com/382588. The test verifies that calling getImageData does not turn off smooth filtering of 2d canvases. Below this text, there should be a black square with tapered edges.</p>
    <canvas id="mycanvas" width="100" height="100" style="width:400px; height:400px"></canvas>
    <script type="application/x-javascript">
        var canvas = document.getElementById("mycanvas");
        var ctx = canvas.getContext("2d");
        if (window.testRunner)
            testRunner.waitUntilDone();
        window.requestAnimationFrame(function() {
            ctx.fillRect(25, 25, 50, 50);
            window.requestAnimationFrame(function() {
                ctx.getImageData(0, 0, 1, 1);
                if (window.testRunner)
                    testRunner.notifyDone();
	        })
        })
    </script>
</body>
</html>
