| <!doctype html> |
| <script src="../../../resources/testharness.js"></script> |
| <script src="../../../resources/testharnessreport.js"></script> |
| <h1>Viewport: Scrollbars Cause Resize</h1> |
| <h4>Test Description: This test checks that the appearance of classic scrollbars will cause a resize event to be fired at window.visualViewport.</h4> |
| <script> |
| document.documentElement.style.overflow = "hidden"; |
| var initialWidth = visualViewport.width; |
| var initialHeight = visualViewport.height; |
| |
| test(function() { |
| assert_equals(window.visualViewport.width, window.innerWidth); |
| assert_equals(window.visualViewport.height, window.innerHeight); |
| }, "view size initially matches window size"); |
| |
| |
| var t = async_test("Resize event was fired at window.visualViewport"); |
| var viewResized = false; |
| window.visualViewport.addEventListener('resize', function() { |
| viewResized = true; |
| }); |
| |
| requestAnimationFrame(t.step_func_done(function() { |
| assert_equals(viewResized, true); |
| })); |
| |
| document.documentElement.style.overflow = ""; |
| document.body.style.width = "10000px"; |
| document.body.style.height = "10000px"; |
| |
| test(function() { |
| assert_equals(window.visualViewport.width, initialWidth - 15); |
| assert_equals(window.visualViewport.height, initialHeight - 15); |
| }, "view size reflects appearance of classic scrollbars"); |
| |
| |
| document.body.style.width = ""; |
| document.body.style.height = ""; |
| </script> |