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

<html>
<head>
  <style>
    #box {
      position: relative;
      height: 100px;
      width: 100px;
      background-color: blue;
      -webkit-transform: rotate(0);
      -webkit-transition: -webkit-transform, 2s;
    }
  </style>
  <script>
    if (window.testRunner) {
      testRunner.dumpAsText();
      testRunner.waitUntilDone();
    }
    
    function finish()
    {
        if (window.testRunner)
            testRunner.notifyDone();
    }
    
    function returnToStart()
    {
        var box = document.getElementById('box');
        box.style.webkitTransform = 'rotate(0)';
        setTimeout(finish, 20);
    }
    
    function start()
    {
        var box = document.getElementById('box');
        box.style.webkitTransform = 'rotate(180deg)';
        setTimeout(returnToStart, 20);
    }
    
    window.addEventListener('load', start, false);
  </script>
</head>
<body>

<p>
This tests a crash that was occuring when you have both an explicit property and 'all' in the -webkit-transition-property
    CSS property. The crash would occur when you retarget the transition. This test should not crash.
</p>
<div id="box">
</div>
</body>
</html>
