blob: b90286add9ea34fd791ff436391836d0053469f1 [file] [log] [blame]
<!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>
var browserZoomFactor = 1.25;
async_test(function(t) {
window.onload = t.step_func(function() {
window.scrollTo(100, 100);
// TODO(ymalik): Remove hook to internals to pinch-zoom here and browser
// zoom below. This will be required to upstream to w3c repo.
internals.setPageScaleFactor(2);
// Offset visual viewport by 10px.
window.visualViewport.scrollTop = 10;
window.visualViewport.scrollLeft = 10;
assert_equals(window.visualViewport.scrollTop, 10);
assert_equals(window.visualViewport.scrollLeft, 10);
assert_equals(window.visualViewport.clientWidth, 400);
assert_equals(window.visualViewport.clientHeight, 300);
assert_equals(window.visualViewport.pageScale, 2);
// Apply browser zoom.
window.internals.setZoomFactor(browserZoomFactor);
// Visual viewport dimensions should be scaled by the browser zoom factor.
assert_equals(window.visualViewport.scrollTop, 10 / browserZoomFactor);
assert_equals(window.visualViewport.scrollLeft, 10 / browserZoomFactor);
assert_equals(window.visualViewport.clientWidth, 400 / browserZoomFactor);
assert_equals(window.visualViewport.clientHeight, 300 / browserZoomFactor);
assert_equals(window.visualViewport.pageScale, 2);
// Verify setting the visual viewport offset under browser zoom.
window.visualViewport.scrollTop = 12.5;
window.visualViewport.scrollLeft = 12.5;
assert_equals(window.visualViewport.scrollTop, 12.5);
assert_equals(window.visualViewport.scrollLeft, 12.5);
assert_equals(window.visualViewport.clientWidth, 400 / browserZoomFactor);
assert_equals(window.visualViewport.clientHeight, 300 / browserZoomFactor);
assert_equals(window.visualViewport.pageScale, 2);
t.done();
});
}, 'Verify viewport dimensions under bowser zoom.');
</script>