<!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.setAcceleratedCompositingForFixedPositionEnabled(true);

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

<body>
  <pre id="result"></pre>
</body>
</html>

