chromium/third_party/blink/web_tests/fast/events/middleClickAutoscroll-latching.html

<!DOCTYPE html>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script src="../../resources/compositor-controls.js"></script>
<div id = "div" style="overflow: auto; width: 1400px">
<table style="height:2000px; width: 1800px">
  <tbody>
    <tr style="height: 2000px">
      <td id="td" style="width: 600px; height: 2000px"></td>
      <td id="iframe" style="width: 1200px; height: 2000px">
        <iframe style="width: 1000px; height: 2000px" src="resources/middleClickAutoscroll-iframe.html"></iframe>
      </td>
    </tr>
  </tbody>
</table>
</div>
<script>
setAnimationRequiresRaster();
var testIFrame = async_test("Tests that middleClickAutoscroll finds the correct ancestor layoutobject when starting in an iframe, and the latching is correctly implemented.")

testIFrame.step(function() {
  if (!window.eventSender)
    return;
  var iframe = document.getElementById("iframe");
  var div = document.getElementById("div");
  // Start a rightward middle-click-autoscroll in the iframe inside the right
  // td element.
  var startx = Math.max(iframe.getBoundingClientRect().left, 10);
  var starty = Math.max(iframe.getBoundingClientRect().top, 500);
  var endx = startx + 100;
  var endy = starty;
  var pageScrollTop = window.scrollY;
  eventSender.mouseMoveTo(startx, starty);
  eventSender.mouseDown(1);
  eventSender.mouseMoveTo(endx, endy);

  div.onscroll = function() {
    assert_not_equals(div.scrollLeft, 0);
    eventSender.mouseUp(1);
    testIFrame.done();
  };
});
</script>