<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<html lang="en">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <title>Initial backing position</title>
  <style type="text/css" media="screen">
    #parent {
      position: relative;
      height: 200px;
      width: 200px;
      border: 1px solid black;
    }
    
    #panel {
      position: absolute;
      height: 100px;
      width: 100px;
      left: -50px;
      top: -50px;
      opacity: 0.2;
      background-color: gray;
    }
    
    #piece {
      position: absolute;
      left: 50px;
      top: 50px;
      height: 60px;
      width: 60px;
      background-color: green;
    }
    
    #piece:hover {
      -webkit-transform: translate3d(0, 0, 0);
    }

    #piece.moved {
      -webkit-transform: translate3d(0, 0, 0);
    }

  </style>
  <script type="text/javascript" charset="utf-8">
    if (window.testRunner)
      testRunner.waitUntilDone();

    function startTest()
    {
      window.setTimeout(function() {
        var mover = document.getElementById('piece');
        mover.className = 'moved';
        
        window.setTimeout(function() {
          if (window.testRunner)
            testRunner.notifyDone();
        }, 0);
        
      }, 0);
    }

    window.addEventListener('load', startTest, false);
  </script>
</head>
<body>

  <div id="parent">
      <div id="piece"></div>
      <div id="panel"></div>
  </div>
  <p><a href="https://bugs.webkit.org/show_bug.cgi?id=26430">https://bugs.webkit.org/show_bug.cgi?id=26430</a></p>
  <p>Green box should not move when hovered</p>
</body>
</html>
