<!DOCTYPE html><!-- webkit-test-runner [ experimental:WebAnimationsCSSIntegrationEnabled=false ] -->
<html>
<head>
<style>
div {
    width: 100px;
    height: 100px;
}

#overflowHidden {
    overflow: hidden;
    background: purple;
}

#transformed {
    -webkit-transform: rotate(0deg) translate3d(0, 0, 0);
    -webkit-transition: -webkit-transform linear 1ms;
    background: green;
}

#transformed:hover {
    -webkit-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 green transformed square doesn't split out of the purple square.</p>
<div>
    <div id="transformed"></div>
</div>
<script>
    function transitionFinished() {
        if (window.testRunner)
            window.testRunner.notifyDone();
    }

    if (!window.eventSender)
        alert("To manually test, hover over the green div. The overflow should be properly clipped.");

    if (window.testRunner)
      window.testRunner.waitUntilDone();

    var transformed = document.getElementById("transformed");
    transformed.parentNode.setAttribute("id", "overflowHidden");
    transformed.addEventListener("webkitTransitionEnd", transitionFinished, true);
    eventSender.mouseMoveTo(transformed.offsetLeft + 10, transformed.offsetTop + 10);
</script>
</body>
</html>
