| <!DOCTYPE html> |
| <style> |
| #content { |
| width: 1000px; |
| height: 1000px; |
| } |
| </style> |
| <script src="../../resources/js-test.js"></script> |
| |
| <div id="content"> |
| <span id="select">This text is selected.</span> |
| </div> |
| |
| <script type="text/javascript"> |
| var scrollTopBefore; |
| |
| jsTestIsAsync = true; |
| description("This is a test for http://crbug.com/516245. It ensures that pinch-zooming and selecting doesn't autoscroll the page. To manually test, on Mac, pinch-zoom in and select text below. The page should not autoscroll."); |
| |
| function finishTest() { |
| eventSender.mouseUp(); |
| |
| if (document.scrollingElement.scrollTop == scrollTopBefore) { |
| testPassed("Scroll offset did not change when text selected."); |
| } else { |
| testFailed("Scroll offset changed when text selected."); |
| } |
| document.getElementById('content').style.display = 'none'; |
| finishJSTest(); |
| } |
| |
| function MouseWheelHandler(e) { |
| return false; |
| } |
| |
| window.onload = function () { |
| var element = document.getElementById('select'); |
| // The autoscroll bug happens when there is a mousewheel event listener on |
| // the page. |
| element.addEventListener("mousewheel", MouseWheelHandler, false); |
| |
| if (window.internals && internals.magnifyScaleAroundAnchor(2.5, 0, 30.2)) { |
| element.scrollIntoView(); |
| scrollTopBefore = document.scrollingElement.scrollTop; |
| |
| var y = element.offsetHeight / 2; |
| var endX = element.offsetWidth + 100; |
| eventSender.dragMode = false; |
| eventSender.mouseMoveTo(element.offsetLeft, y); |
| eventSender.mouseDown(); |
| eventSender.mouseMoveTo(endX - 30, y); |
| eventSender.mouseMoveTo(endX, y); |
| // Wait for the autoscroll timer to fire. |
| window.requestAnimationFrame(finishTest); |
| } |
| } |
| </script> |