<!DOCTYPE html>
<html>
<head>
<script src="resources/link-highlight-helper.js"></script>
<link rel="stylesheet" type="text/css" href="resources/link-highlight-style.css">
</head>
<body onload="runTest();">
<div id="targetDiv" style="will-change: transform; position: relative; left: 10px; top: 10px"></div>
<div style="position: relative; left: 10px; top: 40px; width: 300px; height: 150px; overflow-y: scroll; overflow-x: scroll;">
  <div style="position: relative; left: 10px; top: i10px; width: 200px; height: 100px; overflow-y: scroll; overflow-x: scroll;">
    <a href="">Link 1</a><br>
    <a href="">Link 2</a><br>
    <a href="">Link 3</a><br>
    <a href="" class="opaqueHighlight" id="targetLink">Target Link.</a><br>
    <a href="">Link 4</a><br>
    <a href="">Link 5</a><br>
  </div>
  <a href="">Link 6</a><br>
  <a href="">Link 7</a><br>
  <a href="">Link 8</a><br>
  <a href="">Link 9</a><br>
</div>
<div style="position: relative; left: 10px; top: 80px">
This test is successful if "Target Link" above is covered in a green rectangle with square corners.
</div>
<script>
function runTest() {
    useMockHighlight();
    var clientRect = document.getElementById('targetLink').getBoundingClientRect();
    x = (clientRect.left + clientRect.right) / 2;
    y = (clientRect.top + clientRect.bottom) / 2;
    if (window.testRunner)
        testRunner.waitUntilDone();

    if (window.eventSender) {
        eventSender.gestureShowPress(x, y);
        window.setTimeout(function() { testRunner.notifyDone(); }, 0);
    } else {
        debug("This test requires DumpRenderTree.");
    }
}
</script>
</script>
</body>
</html>
