<!DOCTYPE html>
<html>
  <head>
    <style>
      body {
          overflow: hidden;
      }

      #perspective {
          -webkit-perspective: 1000px;
          position: absolute;
          width: 600px;
          left: -600px;
      }

      #transformed {
          transform: rotateY(90deg);
          -webkit-transform-origin: right;
          background: green;
          height: 800px;
      }

      #absolute {
          /* This could be relative too, it just needs to be out of flow. */
          position: absolute;
      }

      #container {
          position: relative;
          overflow: hidden;
          width: 800px;
          height: 600px;
      }
    </style>
    <script>
      if (window.testRunner)
        testRunner.dumpAsTextWithPixelResults();


      function doTest() {
        var transformed = document.getElementById("transformed");

        if (window.internals)
          window.internals.forceCompositingUpdate(document);

        // Request a recomposite of the layer.
        transformed.style.opacity = 0.9;
        document.body.offsetTop;
        transformed.style.opacity = 1.0;

        if (window.internals)
          window.internals.forceCompositingUpdate(document);
      }

      window.onload = doTest;
    </script>
  </style>
  </head>
  <body>
    <!-- The green rectangle should be visible. -->
    <div id="container">
        <div id="perspective">
            <div id="transformed"></div>
            <div id="absolute"></div>
        </div>
    </div>
  </body>
</html>

