<!DOCTYPE html>
<!--
 | Modifying a style that affects cross references should cause the
 | containing block of potentially impacted boxes to be recalculated.
 -->
<html>
<head>
  <style>
    .container-block {
      position: absolute;
      width: 350px;
      height: 350px;
      background-color: #0B8043;
    }
    .static-block1 {
      position: static;
      width: 30%;
      height: 30%;
      background-color: #57BB8A;
    }
    .static-block2 {
      position: static;
      width: 30%;
      height: 30%;
      background-color: #4285F4;
    }
    .absolute-block {
      position: absolute;
      width: 30%;
      height: 30%;
      background-color: #C6DAFC;
      transform: translateX(125px);
    }
    .transformed {
      transform: translateX(50px) translateY(50px) rotate(15deg);
    }
  </style>
  <script>
    if (window.testRunner) {
      window.testRunner.waitUntilDone();
    }

    window.onload = function() {
      if (window.testRunner) {
        window.testRunner.DoNonMeasuredLayout();
      }

      var node = document.getElementById('node');
      node.className = "static-block2 transformed";

      if (window.testRunner) {
        window.testRunner.notifyDone();
      }
    }
  </script>
</head>
<body>
  <div class="container-block">
    <div class="static-block1">
    </div>
    <div id="node" class="static-block2">
      <div class="absolute-block">
        <div class="static-block1">
        </div>
        <div class="static-block2">
          <div class="absolute-block">
          </div>
        </div>
      </div>
    </div>
  </div>
</body>
</html>
