<!DOCTYPE html>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>

<style>
.spacer {
  height: 2000px;
}
.hidden-matchable {
  content-visibility: hidden-matchable;
}
</style>

<div class="spacer"></div>
<div id=hiddendiv class="hidden-matchable">
  <div class="spacer"></div>
  <div id=hiddentext>hiddentext</div>
</div>

<script>
hiddentext.addEventListener('beforematch', () => {
  setTimeout(() => {
    hiddendiv.classList.remove('hidden-matchable');
  }, 0);
});

async_test(t => {
  testRunner.findString('hiddentext', ['Async']);

  assert_equals(window.pageYOffset, 0, 'find-in-page scrolling should be async, not sync.');

  requestAnimationFrame(t.step_func(() => {
    requestAnimationFrame(t.step_func_done(() => {
      // verify hiddentext is scrolled into view
      const offsetBeforeScroll = window.pageYOffset;
      hiddentext.scrollIntoView();
      const offsetAfterScroll = window.pageYOffset;

      assert_not_equals(window.pageYOffset, 0, 'find-in-page should scroll after two rAFs.');
      assert_equals(offsetAfterScroll, offsetBeforeScroll,
        `scrollIntoView shouldn't affect the scroll offset because the element should already be scrolled into view.`);
    }));
  }));

}, 'Verifies that find-in-page wait a frame between firing the beforematch event and scrolling.');
</script>
