OLD | NEW |
| (Empty) |
1 <!DOCTYPE html> | |
2 <script src="../../resources/js-test.js"></script> | |
3 <style> | |
4 #target { | |
5 width: 2000px; | |
6 height: 1500px; | |
7 } | |
8 </style> | |
9 <script> | |
10 var numScrollsReceived = 0; | |
11 var numRAFCalls = 0; | |
12 if (window.testRunner && window.internals) { | |
13 window.jsTestIsAsync = true; | |
14 testRunner.dumpAsText(); | |
15 testRunner.waitUntilDone(); | |
16 setPrintTestResultsLazily(); | |
17 } | |
18 | |
19 description("This test ensures that scrolling the visual viewport doesn't\ | |
20 trigger an onscroll event."); | |
21 | |
22 function runTest() { | |
23 if (!window.testRunner || !window.internals) { | |
24 testFailed("This test requires test runner and internals") | |
25 finishJSTest(); | |
26 return; | |
27 } | |
28 | |
29 internals.settings.setScrollAnimatorEnabled(false); | |
30 | |
31 window.internals.setPageScaleFactor(2.0); | |
32 var target = document.getElementById('target'); | |
33 | |
34 document.onscroll = function() { | |
35 ++numScrollsReceived; | |
36 debug('OnScroll called for scroll #' + numScrollsReceived); | |
37 } | |
38 | |
39 var failureSentinel = function() { | |
40 if (numRAFCalls == 0) { | |
41 // The first scroll should trigger onscroll because it scrolls | |
42 // the layout viewport. | |
43 eventSender.mouseMoveTo(target.offsetLeft + 5, target.offsetTop
+ 5); | |
44 eventSender.continuousMouseScrollBy(0, -400); | |
45 } else if (numRAFCalls == 1) { | |
46 shouldBe('numScrollsReceived', '1'); | |
47 // The second scroll should not trigger onscroll because it only | |
48 // scrolls the visual viewport. | |
49 eventSender.mouseMoveTo(target.offsetLeft + 5, target.offsetTop
+ 5); | |
50 eventSender.continuousMouseScrollBy(0, 40); | |
51 } else { | |
52 shouldBe('numScrollsReceived', '1'); | |
53 finishJSTest(); | |
54 return; | |
55 } | |
56 ++numRAFCalls; | |
57 window.requestAnimationFrame(failureSentinel); | |
58 } | |
59 | |
60 window.requestAnimationFrame(failureSentinel); | |
61 } | |
62 | |
63 onload = runTest; | |
64 </script> | |
65 <div id="target"></div> | |
OLD | NEW |