| 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 ::-webkit-scrollbar { | 7 ::-webkit-scrollbar { |
| 8 width: 0px; | 8 width: 0px; |
| 9 height: 0px; | 9 height: 0px; |
| 10 } | 10 } |
| 11 </style> | 11 </style> |
| 12 <script src="../../../resources/testharness.js"></script> | 12 <script src="../../../resources/testharness.js"></script> |
| 13 <script src="../../../resources/testharnessreport.js"></script> | 13 <script src="../../../resources/testharnessreport.js"></script> |
| 14 <script> | 14 <script> |
| 15 var browserZoomFactor = 1.25; | 15 var browserZoomFactor = 1.25; |
| 16 | 16 |
| 17 function viewport() { |
| 18 return window.visualViewport; |
| 19 } |
| 20 |
| 17 async_test(function(t) { | 21 async_test(function(t) { |
| 18 window.onload = t.step_func(function() { | 22 window.onload = t.step_func(function() { |
| 19 window.scrollTo(100, 100); | 23 window.scrollTo(100, 100); |
| 20 | 24 |
| 21 // TODO(ymalik): Remove hook to internals to pinch-zoom here and browser | 25 // TODO(ymalik): Remove hook to internals to pinch-zoom here and browser |
| 22 // zoom below. This will be required to upstream to w3c repo. | 26 // zoom below. This will be required to upstream to w3c repo. |
| 23 internals.setPageScaleFactor(2); | 27 internals.setPageScaleFactor(2); |
| 24 | 28 |
| 25 // Offset visual viewport by 10px. | 29 // Offset visual viewport by 10px. |
| 26 window.visualViewport.scrollTop = 10; | 30 internals.setVisualViewportOffset(10, 10); |
| 27 window.visualViewport.scrollLeft = 10; | |
| 28 | 31 |
| 29 assert_equals(window.visualViewport.scrollTop, 10); | 32 assert_equals(viewport().scrollTop, 10); |
| 30 assert_equals(window.visualViewport.scrollLeft, 10); | 33 assert_equals(viewport().scrollLeft, 10); |
| 31 assert_equals(window.visualViewport.clientWidth, 400); | 34 assert_equals(viewport().clientWidth, 400); |
| 32 assert_equals(window.visualViewport.clientHeight, 300); | 35 assert_equals(viewport().clientHeight, 300); |
| 33 assert_equals(window.visualViewport.scale, 2); | 36 assert_equals(viewport().scale, 2); |
| 34 | 37 |
| 35 // Apply browser zoom. | 38 // Apply browser zoom. |
| 36 window.internals.setZoomFactor(browserZoomFactor); | 39 window.internals.setZoomFactor(browserZoomFactor); |
| 37 | 40 |
| 38 // Visual viewport dimensions should be scaled by the browser zoom factor. | 41 // Visual viewport dimensions should be scaled by the browser zoom factor. |
| 39 assert_equals(window.visualViewport.scrollTop, 10 / browserZoomFactor); | 42 assert_equals(viewport().scrollTop, 10 / browserZoomFactor); |
| 40 assert_equals(window.visualViewport.scrollLeft, 10 / browserZoomFactor); | 43 assert_equals(viewport().scrollLeft, 10 / browserZoomFactor); |
| 41 assert_equals(window.visualViewport.clientWidth, 400 / browserZoomFactor); | 44 assert_equals(viewport().clientWidth, 400 / browserZoomFactor); |
| 42 assert_equals(window.visualViewport.clientHeight, 300 / browserZoomFactor)
; | 45 assert_equals(viewport().clientHeight, 300 / browserZoomFactor); |
| 43 assert_equals(window.visualViewport.scale, 2); | 46 assert_equals(viewport().scale, 2); |
| 44 | 47 |
| 45 // Verify setting the visual viewport offset under browser zoom. | |
| 46 window.visualViewport.scrollTop = 12.5; | |
| 47 window.visualViewport.scrollLeft = 12.5; | |
| 48 assert_equals(window.visualViewport.scrollTop, 12.5); | |
| 49 assert_equals(window.visualViewport.scrollLeft, 12.5); | |
| 50 assert_equals(window.visualViewport.clientWidth, 400 / browserZoomFactor); | |
| 51 assert_equals(window.visualViewport.clientHeight, 300 / browserZoomFactor)
; | |
| 52 assert_equals(window.visualViewport.scale, 2); | |
| 53 t.done(); | 48 t.done(); |
| 54 }); | 49 }); |
| 55 }, 'Verify viewport dimensions under bowser zoom.'); | 50 }, 'Verify viewport dimensions under bowser zoom.'); |
| 56 </script> | 51 </script> |
| OLD | NEW |