blob: a432e9630f126f45e8c848143d0b33f6f3b3c976 [file] [log] [blame]
<!DOCTYPE html>
<style>
body {
height: 2000px;
width: 2000px;
}
</style>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script>
var browserZoomFactor = 1.25;
var pageScaleFactor = 2;
var scrollbarWidthCSSPixels = 15 / pageScaleFactor;
var scrollbarHeightCSSPixels = 15 / pageScaleFactor;
function viewport() {
return window.visualViewport;
}
async_test(function(t) {
window.onload = t.step_func(function() {
// 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(pageScaleFactor);
// Verify viewport dimensions exclude scrollbar.
assert_equals(
viewport().width,
800 / pageScaleFactor - scrollbarWidthCSSPixels,
"Width with pinch-zoom");
assert_equals(
viewport().height,
600 / pageScaleFactor - scrollbarHeightCSSPixels,
"Height with pinch-zoom");
// Apply browser zoom.
window.internals.setZoomFactor(browserZoomFactor);
// Since the scrollbars don't change size to the user as we zoom, they're
// actuall smaller in CSS pixels.
scrollbarWidthCSSPixels /= browserZoomFactor;
scrollbarHeightCSSPixels /= browserZoomFactor;
// Verify scrollbar exclusion with browser zoom.
assert_equals(
viewport().width,
800 / pageScaleFactor / browserZoomFactor - scrollbarWidthCSSPixels,
"Width with pinch-zoom and browser zoom");
assert_equals(
viewport().height,
600 / pageScaleFactor / browserZoomFactor - scrollbarHeightCSSPixels,
"Height with pinch-zoom and browser zoom");
t.done();
});
}, 'Verify viewport dimensions exclude scrollbars.');
</script>