<!DOCTYPE HTML>
<html reftest-async-scroll>
<body>
  <div style="width:400px; height:200px; overflow:scroll;
              scrollbar-width: none;
              border:2px solid black; background: red;
              contain:paint;"
       reftest-displayport-x="0" reftest-displayport-y="0"
       reftest-displayport-w="800" reftest-displayport-h="2000"
       reftest-async-scroll-x="0" reftest-async-scroll-y="100">
    <!-- This element is what we're hoping will fill the scrollport
         when the reftest snapshot is taken: -->
    <div style="background: lime; margin-top: 100px; height: 600px"></div>

    <!-- This element is just to be sure the scrollframe's "contain:paint"
         styling is actually having an effect. "contain:paint" should make the
         scrollframe become a containing block for this fixed-pos element, and
         then this element will position itself off the bottom of the
         scrollframe and will be entirely clipped. If we fail to honor
         "contain:paint" for some reason, then this element will instead use
         the *viewport* as its containing block, and it'll show up in the
         reftest snapshot and cause the reftest to fail. -->
    <div style="position: fixed; top: 320px; width: 50px; height: 50px;
                background: purple;"></div>
  </div>
</body>
</html>