blob: b96fcd111d419887d01a9a14b006702ba80fff45 [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<style>
div {
width: 220px;
height: 220px;
background-color: green;
clip-path: url(#chevron);
}
svg {
height: 0px;
width: 0px;
}
</style>
<script src="../../resources/js-test-pre.js"></script>
<script>
jsTestIsAsync = true;
let repaintRects;
async function animationFrame()
{
return new Promise(requestAnimationFrame);
}
async function delayFor(ms)
{
return new Promise(resolve => setTimeout(resolve, ms));
}
async function renderingUpdate()
{
await animationFrame();
await delayFor(0);
}
async function changeClipPathAndFinish()
{
if (!window.internals)
return;
internals.startTrackingRepaints();
await renderingUpdate();
await renderingUpdate();
await renderingUpdate();
repaintRects = internals.repaintRectsAsText();
// Look for at least one repaint.
shouldNotBe("repaintRects.indexOf('rect 8 8 220 220')", "-1");
internals.stopTrackingRepaints();
finishJSTest();
}
window.addEventListener('load', () => {
setTimeout(() => {
changeClipPathAndFinish()
}, 0);
}, false);
</script>
</head>
<body>
<div></div>
<svg>
<clipPath id="chevron">
<polygon points="0,100 22.222,133.333 8.333,147.222 -13.889,113.889 -47.222,91.667 -33.333,77.778">
<animateTransform attributeType="XML" attributeName="transform" type="translate"
values="0,100;144.444,-44.444" dur="0.5s" repeatCount="indefinite"/>
</polygon>
</clipPath>
</svg>
<div id="console"></div>
<script src="../../resources/js-test-post.js"></script>
</body>
</html>