| <!DOCTYPE html> |
| <style> |
| body { |
| height: 2000px; |
| width: 2000px; |
| } |
| ::-webkit-scrollbar { |
| width: 0px; |
| height: 0px; |
| } |
| </style> |
| |
| <script src="../../../resources/testharness.js"></script> |
| <script src="../../../resources/testharnessreport.js"></script> |
| |
| <script> |
| function viewport() { |
| return window.visualViewport; |
| } |
| |
| async_test(function(t) { |
| window.onload = t.step_func(function() { |
| // Turn off smooth scrolling. |
| internals.settings.setScrollAnimatorEnabled(false); |
| |
| // Scroll both viewports. |
| eventSender.mouseMoveTo(100, 100); |
| eventSender.continuousMouseScrollBy(100, 100); |
| |
| // Initial viewport dimensions. |
| assert_equals(viewport().clientWidth, 800, "initial clientWidth"); |
| assert_equals(viewport().clientHeight, 600, "initial clientHeight"); |
| assert_equals(viewport().scrollLeft, 0, "initial scrollLeft"); |
| assert_equals(viewport().scrollTop, 0, "initial scrollTop"); |
| assert_equals(viewport().scale, 1, "initial scale"); |
| |
| // Scale and scroll visual viewport. |
| internals.setPageScaleFactor(2); |
| internals.setVisualViewportOffset(10, 10); |
| assert_equals(viewport().clientWidth, 400, "scaled width"); |
| assert_equals(viewport().clientHeight, 300, "scaled height"); |
| assert_equals(viewport().scrollLeft, 10, "scrolled left viewport"); |
| assert_equals(viewport().scrollTop, 10, "scrolled top viewport"); |
| assert_equals(viewport().scale, 2, "scale"); |
| |
| // Set scrollTop/Left. |
| internals.setVisualViewportOffset(0, 20); |
| assert_equals(viewport().scrollTop, 20, "set scrollTop"); |
| assert_equals(viewport().scrollLeft, 0, "set scrollLeft"); |
| internals.setVisualViewportOffset(-20, -20); |
| assert_equals(viewport().scrollTop, 0, "negative scrollTop"); |
| assert_equals(viewport().scrollTop, 0, "negative scrollLeft"); |
| |
| t.done(); |
| }); |
| }, 'Verify viewport dimensions'); |
| </script> |
| |