<!DOCTYPE html>

<html>
<head>
  <style>
    .fixed {
      position: fixed;
      width: 10px;
      height: 10px;
      top: -100px;
      background-color: silver;
    }
  </style>

  <script type="text/javascript">
    if (window.testRunner && window.internals) {
      testRunner.dumpAsText();
      internals.settings.setPreferCompositingToLCDTextEnabled(true);
      internals.settings.setThreadedScrollingEnabled(true);

      addEventListener("load", function() {
        var fixed = document.createElement("div");
        document.body.appendChild(fixed);
        document.body.offsetHeight;
        fixed.className = "fixed";
        var mainThreadScrollingReasons = internals.mainThreadScrollingReasons(document);
        document.getElementById("result").innerText = !mainThreadScrollingReasons ? "PASS" : "FAIL: " + mainThreadScrollingReasons;
        testRunner.notifyDone();
      }, false);
    }
  </script>
</head>

<!-- Fixed position elements may skip compositing without a scrollable
ancestor. To make sure this test covers the intended scenario, we force the
body element to be tall, so that the FrameView is scrolling. -->
<body style="height: 4000px;">
  <pre id="result"></pre>
</body>
</html>

