<!DOCTYPE html>
<html>
  <head>
    <title>Check whether scrollable iframes are included in the scrolling tree when async frame scrolling is enabled</title>
    <script>
      if (window.testRunner) {
          testRunner.dumpAsText();
          testRunner.waitUntilDone();
      }
      if (window.internals)
          window.internals.settings.setAsyncFrameScrollingEnabled(true);
      function doTest()
      {
          if (window.internals)
              document.getElementById('scrollingTree').innerText = window.internals.scrollingStateTreeAsText() + "\n";
          if (window.testRunner)
              testRunner.notifyDone();
      }
    </script>
    <style>
      iframe {
          position: absolute;
          left: 0;
          top: 0;
          width: 100px;
          height: 200px;
          margin: 0;
          border: 0;
          padding: 0;
      }
    </style>
  </head>
  <body>
    <iframe onload="doTest()" srcdoc="
        <div style='width: 300px; height: 400px; background: gray;'></div>">
    </iframe>
    <pre id="scrollingTree"></pre>
  </body>
</html>
