<!DOCTYPE HTML>
<html>
<head>
<title>Canvas Uses CALayerOverlay Test</title>
<script>
// This test should render a green square if GPU acceleration is enabled
// and a blue square if GPU accelerated 2d canvas is disabled.
// Red means the canvas is not using an overlay.
// '--enable-gpu-benchmarking' is required for this test.
function main() {
const canvas = document.getElementById('canvas');
const context = canvas.getContext('2d');
context.clearRect(0, 0, canvas.width, canvas.height);
context.fillStyle = "Red";
context.fillRect(0, 0, 100, 100);
function errorCodeHandler(errorCode) {
// gfx::kCALayerSuccess = 0
if (errorCode == 0) {
// If gpuBenchmarking is not supported, the test will not reach here and
// the quad will not be drawn.
context.clearRect(0, 0, canvas.width, canvas.height);
context.fillStyle = chrome.gpuBenchmarking.isAcceleratedCanvasImageSource(canvas) ? "Green" : "Blue";
context.fillRect(0, 0, 100, 100);
window.domAutomationController.send("SUCCESS");
} else {
console.log("CALayerOverlay is not used. Error code:" , errorCode);
window.domAutomationController.send("FAILED");
}
}
function draw() {
if (!chrome.gpuBenchmarking.addCoreAnimationStatusEventListener(errorCodeHandler)) {
console.log("addCoreAnimationStatusEventListener fails!");
window.domAutomationController.send("FAILED");
}
}
window.requestAnimationFrame(draw);
}
</script>
</head>
<body onload="main()">
<canvas id="canvas" width="100" height="100" style="position:absolute; top:0px; left:0px"></canvas>
</body>
</html>