chromium/third_party/blink/web_tests/fast/events/touch/gesture/touch-gesture-scroll-iframe.html

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<script src="../../../../resources/testharness.js"></script>
<script src="../../../../resources/testharnessreport.js"></script>
<script src="../../../../resources/gesture-util.js"></script>
<style type="text/css">
#touchtarget {
  width: 200px;
  height: 200px;
  position: relative;
  background: white;
}

::-webkit-scrollbar {
  width: 0px;
  height: 0px;
}
</style>

<iframe id="touchtarget" src="resources/scroll-inside-iframe.html"></iframe>

<script type="text/javascript">
var touchtarget = document.getElementById('touchtarget');;
var expectedGesturesTotal = 2;
var gesturesOccurred = 0;
var scrollAmountX = [0, 0];
var scrollAmountY = [140, 200];
var scrollEventsOccurred = 0;
var expectedScrollEventsOccurred = 2;
var scrolledElement;

var x = 12;
var y = 150;
function firstGestureScroll() {
  return smoothScroll(140, x, y, GestureSourceType.TOUCH_INPUT, "down",
      SPEED_INSTANT);
}

function secondGestureScroll() {
  y = 110;
  return smoothScroll(60, x, y, GestureSourceType.TOUCH_INPUT, "down",
      SPEED_INSTANT);
}

promise_test (async () => {
  // Wait for the iframe to be ready before starting the test.
  await iframeOnLoadPromise;
  touchtarget.contentDocument.addEventListener("scroll", recordScroll);
  scrolledElement = touchtarget.contentDocument.scrollingElement;

  await firstGestureScroll();
  await waitFor(checkScrollOffset);
  await secondGestureScroll();
  await waitFor(checkScrollOffset);
}, 'This tests gesture event scrolling in iframes. ' +
   'Red-green strip is scrolled on pass.');
</script>