blob: e761d7aea20ea98d85865120137e3b85957d6f1a [file] [log] [blame]
<!DOCTYPE HTML>
<!-- READ BEFORE UPDATING:
If this test is updated make sure to increment the "revision" value of the
associated test in content/test/gpu/page_sets/pixel_tests.py. This will ensure
that the baseline images are regenerated on the next run.
-->
<html>
<head>
<meta name="viewport" content="initial-scale=1">
<title>Basic CSS Filter Effects Test</title>
<!--
A static CSS filter effect is rastered as a display list item. This test is
concerned with the compositor implementation of CSS filter effects, so it uses
CSS keyframe animations to force the non-display list path. Note that the
animation has no effect, as the start and end keyframes are identical.
-->
<style type="text/css">
body {
margin: 0px;
padding: 0px;
background-color: green;
}
#container {
width: 300px;
height: 300px;
background-color: white;
}
@-webkit-keyframes blur-anim {
from {-webkit-filter: blur(8px)}
to {-webkit-filter: blur(8px)}
}
@-webkit-keyframes grayscale-anim {
from {-webkit-filter: grayscale(90%)}
to {-webkit-filter: grayscale(90%)}
}
@-webkit-keyframes drop-shadow-anim {
from {-webkit-filter: drop-shadow(8px 8px 10px blue)}
to {-webkit-filter: drop-shadow(8px 8px 10px blue)}
}
@-webkit-keyframes sepia-anim {
from {-webkit-filter: sepia(70%)}
to {-webkit-filter: sepia(70%)}
}
@-webkit-keyframes brightness-anim {
from {-webkit-filter: brightness(20%)}
to {-webkit-filter: brightness(20%)}
}
@-webkit-keyframes contrast-anim {
from {-webkit-filter: contrast(20%)}
to {-webkit-filter: contrast(20%)}
}
@-webkit-keyframes hue-rotate-anim {
from {-webkit-filter: hue-rotate(50deg)}
to {-webkit-filter: hue-rotate(50deg)}
}
@-webkit-keyframes invert-anim {
from {-webkit-filter: invert(70%)}
to {-webkit-filter: invert(70%)}
}
@-webkit-keyframes saturate-anim {
from {-webkit-filter: saturate(40%)}
to {-webkit-filter: saturate(40%)}
}
@-webkit-keyframes opacity-anim {
from {-webkit-filter: opacity(70%)}
to {-webkit-filter: opacity(70%)}
}
@-webkit-keyframes drop-shadow-invert-anim {
from {-webkit-filter: drop-shadow(8px 8px 10px blue) invert(70%)}
to {-webkit-filter: drop-shadow(8px 8px 10px blue) invert(70%)}
}
@-webkit-keyframes hue-rotate-invert-anim {
from {-webkit-filter: hue-rotate(50deg) invert(70%)}
to {-webkit-filter: hue-rotate(50deg) invert(70%)}
}
@-webkit-keyframes opacity-anim {
from {-webkit-filter: opacity(70%)}
to {-webkit-filter: opacity(70%)}
}
@-webkit-keyframes do-nothing-anim {
from {-webkit-filter: hue-rotate(0deg)}
to {-webkit-filter: hue-rotate(0deg)}
}
.gradient {
float: left;
height: 50px;
width: 50px;
margin: 10px;
}
</style>
<body onload="main()">
<div id="container">
<canvas class="gradient" style="-webkit-animation: blur-anim 150000s;"></canvas>
<canvas class="gradient" style="-webkit-animation: grayscale-anim 150000s;"></canvas>
<canvas class="gradient" style="-webkit-animation: drop-shadow-anim 150000s;"></canvas>
<canvas class="gradient" style="-webkit-animation: sepia-anim 150000s;
-webkit-mask-image: linear-gradient(rgba(0, 0, 0, 1.0), transparent);"></canvas>
<canvas class="gradient" style="-webkit-animation: brightness-anim 150000s;"></canvas>
<canvas class="gradient" style="-webkit-animation: contrast-anim 150000s;"></canvas>
<canvas class="gradient" style="-webkit-animation: hue-rotate-anim 150000s;"></canvas>
<canvas class="gradient" style="-webkit-animation: invert-anim 150000s;"></canvas>
<canvas class="gradient" style="-webkit-animation: saturate-anim 150000s;"></canvas>
<canvas class="gradient" style="-webkit-animation: opacity-anim 150000s;"></canvas>
<canvas class="gradient" style="-webkit-animation: drop-shadow-invert-anim 150000s;"></canvas>
<canvas class="gradient" style="-webkit-animation: hue-rotate-invert-anim 150000s;"></canvas>
<canvas class="gradient" style="-webkit-animation: opacity-anim 150000s;
transform: scale(1.3, 0.8)"></canvas>
<canvas class="gradient" style="-webkit-animation: drop-shadow-invert-anim
150000s; transform: scale(1.3, 0.8) rotate(53deg) translate(-3px, 10px);
-webkit-mask-image: linear-gradient(rgba(0, 0, 0, 1.0), transparent);">
</canvas>
<canvas class="gradient" style="-webkit-animation: drop-shadow-anim 150000s;
transform: scale(1.3, 0.8);"></canvas>
<div style="opacity: 0.7;">
<canvas class="gradient" style="-webkit-animation: do-nothing-anim 150000s;"></canvas>
</div>
</div>
</body>
<script>
var elements = document.getElementsByClassName("gradient");
var i;
for (i = 0; i < elements.length; i++) {
var canvas = elements[i];
var ctx = canvas.getContext("2d");
var grd=ctx.createLinearGradient(0,0,canvas.width,canvas.height);
grd.addColorStop(0,"yellow");
grd.addColorStop(0.5,"blue");
grd.addColorStop(0.75,"red");
grd.addColorStop(1,"black");
ctx.fillStyle=grd;
ctx.fillRect(0, 0, canvas.width, canvas.height);
}
function finish()
{
domAutomationController.send("SUCCESS");
}
window.requestAnimationFrame(finish);
</script>
</head>
</html>