<!DOCTYPE html>
<head>
  <title>Test that scroll anchoring is suppressed when scroll offset is zero in the block axis, even if the inline axis scroll offset isn't.</title>
  <link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@mozilla.com">
  <link rel="author" title="Mozilla" href="https://mozilla.org">
  <link rel="help" href="https://drafts.csswg.org/css-scroll-anchoring/">
  <link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1905426">
  <script src="/resources/testharness.js"></script>
  <script src="/resources/testharnessreport.js"></script>
</head>
<style>
#header {
  height: 100px;
  border: 1px solid black;
  overflow-anchor: none;
}
#content {
  height: 200vh;
  width: 200vw;
}
</style>
<div id="header"></div>
<div id="content">abc</div>
<script>
window.addEventListener("scroll", function() {
  if (document.scrollingElement.scrollTop > 0) {
    // On the first scroll event, shrink the header. Scroll anchoring anchors to
    // content, but the header shrinks by more than the scroll offset so the
    // resulting scroll position is zero.
    step_timeout(function() {
      document.querySelector("#header").style.height = "50px";
    }, 0);
  } else {
    // On the second scroll event, grow the header. Since the scroll offset is
    // zero, scroll anchoring should be suppressed. Otherwise, scroll anchoring
    // would anchor to content and the resulting scroll position would be 50px.
    step_timeout(function() {
      document.querySelector("#header").style.height = "100px";
    }, 0);
  }
});

async_test(function(t) {
  // Scroll down a bit to trigger the scroll event listener.
  window.scrollTo(10, 10);

  window.requestAnimationFrame(function() {
    window.requestAnimationFrame(function() {
      window.requestAnimationFrame(t.step_func_done(() => {
          assert_equals(document.scrollingElement.scrollTop, 0);
      }));
    });
  });

}, "Scroll anchoring suppressed when scroll offset is zero.");
</script>
