<!DOCTYPE html><!-- webkit-test-runner [ experimental:WebAnimationsCSSIntegrationEnabled=false ] -->

<html>
<head>
  <title>Test that animations stop on suspend</title>
  <style type="text/css" media="screen">
    iframe {
        border: 1px solid black;
        padding: 5px;
        margin: 20px;
        height: 200px;
        width: 600px;
    }
    
    .box {
        height: 100px;
        width: 100px;
        margin: 35px;
        padding: 5px;
        background-color: green;
        overflow:hidden;
        -webkit-animation: move 400ms alternate infinite linear;
    }

    @-webkit-keyframes move {
        from { -webkit-transform: translate3d(0px, 0px, 0px); }
        to   { -webkit-transform: translate3d(400px, 0px, 0px); }
    }
  </style>
  <script src="resources/animation-test-helpers.js" type="text/javascript" charset="utf-8"></script>
  <script type="text/javascript" charset="utf-8">
  
    const expectedValues = [
      // [animation-name, time, element-id, property, expected-value, tolerance]
      ["move", 0.2, "box", "webkitTransform", [1,0,0,1, 100, 0], 30],
      ["move", 0.2, "iframe.subframe-box", "webkitTransform", [1,0,0,1, 100, 0], 30],
      ["move", 0.4, "box", "webkitTransform", [1,0,0,1, 200, 0], 30],
      ["move", 0.4, "iframe.subframe-box", "webkitTransform", [1,0,0,1, 200, 0], 30],
    ];
    
    function suspend()
    {
        if (window.internals)
            internals.suspendAnimations();
    }
    
    function resume()
    {
        if (window.internals)
            internals.resumeAnimations();
    }
    
    function setTimers()
    {
        setTimeout(suspend, 100);
        setTimeout(resume, 300);
    }

    runAnimationTest(expectedValues, setTimers, undefined, true);
    
  </script>
</head>
<body>
    <div class="box" id="box"></div>
    <!-- The parent document may into compositing mode by the iframe. -->
    <iframe id="iframe" src="resources/stop-animation-on-suspend-subframe.html"></iframe>
    <div id="result"></div>
</body>
</html>
