chromium/third_party/blink/web_tests/compositing/geometry/ancestor-overflow-change.html

<!DOCTYPE html>

<html>
<head>
  <style type="text/css" media="screen">
    #container {
      position: relative;
      height: 50px;
      width: 100px;
      outline: 2px solid black;
      overflow: hidden;
    }
    
    #container.changed {
      overflow: visible;
      height: 100px;
    }
    
    .box {
      width: 100px;
      height: 100px;
      background-color: green;
      transform: translateZ(1px);
    }

    #indicator {
      position: absolute;
      width: 100px;
      height: 100px;
      background-color: red;
    }
  </style>
  <script src="../../resources/run-after-layout-and-paint.js"></script>
  <script type="text/javascript" charset="utf-8">
    if (window.testRunner) {
      testRunner.dumpAsTextWithPixelResults();
      testRunner.waitUntilDone();
    }

    function changeOverflow()
    {
      document.getElementById('container').className = 'changed';

      if (window.testRunner && window.internals)
        testRunner.setCustomTextOutput(internals.layerTreeAsText(document));
      
      if (window.testRunner)
        testRunner.notifyDone();
    }
    
    onload = function() {
      runAfterLayoutAndPaint(changeOverflow, true);
    };
  </script>
</head>
<body>

  <div id="indicator"></div>
  <div id="container">
    <div class="box"></div>
  </div>
</body>
</html>