<!DOCTYPE html>
<html>
<head>
<style>
div {
width: 100px;
height: 100px;
}
.overflowHidden {
overflow: hidden;
background: purple;
}
.transformed {
transform: rotate(0deg) translate3d(0, 0, 0);
-webkit-transition: -webkit-transform linear 0s;
background: green;
}
.transformed:hover {
transform: rotate(45deg) translate3d(0, 0, 0);
}
</style>
</head>
<body>
<p> Test for bug <a href="https://bugs.webkit.org/show_bug.cgi?id=83954">83954</a>: REGRESSION(110072): Clipping is not applied on layers that are animated using platform code</p>
<p> This passes if the bottom green transformed square doesn't split out of the purple square.</p>
<div class="overflowHidden" style="height: 200px">
<div class="overflowHidden">
<div class="transformed"></div>
</div>
<div class="overflowHidden">
<div class="transformed"></div>
</div>
</div>
<script>
if (!window.eventSender)
alert("To manually test, hover over the purple divs. The overflow should be properly clipped.");
document.body.offsetTop; // Force layout. The mouse is not tracked before first layout.
var transformed = document.getElementsByClassName("transformed");
eventSender.mouseMoveTo(transformed[0].offsetLeft + 50, transformed[0].offsetTop + 50);
eventSender.mouseMoveTo(transformed[1].offsetLeft + 50, transformed[1].offsetTop + 50);
document.body.offsetTop; // Update layout for hovered state.
</script>
</body>
</html>