<!DOCTYPE html>

<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>
