Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 48 additions & 0 deletions visual-viewport/viewport-scale-clamped.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
<!DOCTYPE html>
<html>

<head>
<meta charset="utf-8">
<title>Viewport Scale Clamped: Not Pinch Zoomable</title>
<link rel=help href="https://github.com/w3c/csswg-drafts/issues/9004">
<link rel=help href="https://github.com/servo/servo/issues/40390">
<link rel="author" title="Shubham Gupta" href="mailto:shubham13297@gmail.com">
<meta name="assert" content="The page can not be pinch-zoom.">
<meta name="viewport" content="minimum-scale=1, maximum-scale=1">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/testdriver.js"></script>
<script src="/resources/testdriver-actions.js"></script>
<script src="/resources/testdriver-vendor.js"></script>
<style>
body {
height: 200vh;
width: 200vw;
margin: 0;
overflow: hidden;
}
</style>
</head>

<body>
<div style="font-size: 50px;">This page can not be pinch zoomed, it is clamped using meta viewport scale.</div>
<script> promise_test(async () => {
const x = 200, y = 200;
const initialScale = window.visualViewport.scale;
// Perform pinch zoom
await new test_driver.Actions(defaultTickDuration = 0)
.addPointer("f1", "touch")
.addPointer("f2", "touch")
.pointerMove(x, y, { origin: "viewport", sourceName: "f1" })
.pointerMove(x + 10, y + 10, { origin: "viewport", sourceName: "f2" })
.pointerDown({ sourceName: "f1" })
.pointerDown({ sourceName: "f2" })
.pointerMove(x - 30, y - 30, { origin: "viewport", sourceName: "f1", duration: 0 })
.pointerMove(x + 30, y + 30, { origin: "viewport", sourceName: "f2", duration: 0 })
.pointerUp({ sourceName: "f1" })
.pointerUp({ sourceName: "f2" }).send();
assert_equals(window.visualViewport.scale, initialScale, "Scale should be same");
}) </script>
</body>

</html>
Loading