| OLD | NEW |
| 1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
| 2 <style> | 2 <style> |
| 3 body { | 3 body { |
| 4 height: 2000px; | 4 height: 2000px; |
| 5 width: 2000px; | 5 width: 2000px; |
| 6 } | 6 } |
| 7 </style> | 7 </style> |
| 8 | 8 |
| 9 <script src="../../../resources/testharness.js"></script> | 9 <script src="../../../resources/testharness.js"></script> |
| 10 <script src="../../../resources/testharnessreport.js"></script> | 10 <script src="../../../resources/testharnessreport.js"></script> |
| 11 <script> | 11 <script> |
| 12 var numCallsScroll = 0; | 12 var numCallsScroll = 0; |
| 13 var numCallsResize = 0; | 13 var numCallsResize = 0; |
| 14 var pageScaleFactor = 2; | 14 var pageScaleFactor = 2; |
| 15 | 15 |
| 16 function viewport() { | 16 function viewport() { |
| 17 return window.visualViewport; | 17 return window.visualViewport; |
| 18 } | 18 } |
| 19 | 19 |
| 20 var t = async_test('verify that the scroll and resize events get fired on wind
ow.visualViewport'); | 20 var t = async_test('verify that the scroll and resize events get fired on wind
ow.visualViewport'); |
| 21 | 21 |
| 22 window.onload = t.step_func(function() { | 22 window.onload = t.step_func(function() { |
| 23 // Turn off smooth scrolling. | 23 // Turn off smooth scrolling. |
| 24 internals.settings.setScrollAnimatorEnabled(false); | 24 internals.settings.setScrollAnimatorEnabled(false); |
| 25 | 25 |
| 26 window.visualViewport.addEventListener('scroll', function(e) { | 26 window.visualViewport.onscroll = function() { |
| 27 numCallsScroll++; | 27 numCallsScroll++; |
| 28 }); | 28 } |
| 29 | 29 window.visualViewport.onresize = function() { |
| 30 window.visualViewport.addEventListener('resize', function(e) { | |
| 31 numCallsResize++; | 30 numCallsResize++; |
| 32 }); | 31 } |
| 33 | 32 |
| 34 // Scroll both viewports. | 33 // Scroll both viewports. |
| 35 eventSender.mouseMoveTo(100, 100); | 34 eventSender.mouseMoveTo(100, 100); |
| 36 eventSender.continuousMouseScrollBy(100, 100); | 35 eventSender.continuousMouseScrollBy(100, 100); |
| 37 assert_equals(numCallsScroll, 0); | 36 assert_equals(numCallsScroll, 0); |
| 38 assert_equals(numCallsResize, 0); | 37 assert_equals(numCallsResize, 0); |
| 39 | 38 |
| 40 // TODO(ymalik): Remove hook to internals to pinch-zoom here and browser | 39 // TODO(ymalik): Remove hook to internals to pinch-zoom here and browser |
| 41 // zoom below. This will be required to upstream to w3c repo. | 40 // zoom below. This will be required to upstream to w3c repo. |
| 42 internals.setPageScaleFactor(pageScaleFactor); | 41 internals.setPageScaleFactor(pageScaleFactor); |
| 43 | 42 |
| 44 // Verify viewport dimensions exclude scrollbar. | 43 // Verify viewport dimensions exclude scrollbar. |
| 45 requestAnimationFrame(function() { | 44 requestAnimationFrame(function() { |
| 46 t.step(function() { | 45 t.step(function() { |
| 47 assert_equals(numCallsScroll, 0, "scroll listener not called for scale")
; | 46 assert_equals(numCallsScroll, 0, "scroll listener not called for scale")
; |
| 48 assert_equals(numCallsResize, 1, "resize listener called for scale"); | 47 assert_equals(numCallsResize, 1, "resize listener called for scale"); |
| 49 }); | 48 }); |
| 50 internals.setVisualViewportOffset(10, 10); | 49 internals.setVisualViewportOffset(10, 10); |
| 51 requestAnimationFrame(function() { | 50 requestAnimationFrame(function() { |
| 52 t.step(function() { | 51 t.step(function() { |
| 53 assert_equals(numCallsScroll, 1, "scroll listener called for offset ch
ange"); | 52 assert_equals(numCallsScroll, 1, "scroll listener called for offset ch
ange"); |
| 54 assert_equals(numCallsResize, 1, "resize listener not called for offse
t change"); | 53 assert_equals(numCallsResize, 1, "resize listener not called for offse
t change"); |
| 55 }); | 54 }); |
| 56 t.done(); | 55 t.done(); |
| 57 }); | 56 }); |
| 58 }); | 57 }); |
| 59 }); | 58 }); |
| 60 </script> | 59 </script> |
| OLD | NEW |