blob: 05722d04e764198267a3b168ca7a6751c4d671d3 [file] [log] [blame]
<!DOCTYPE html> <!-- webkit-test-runner [ useFlexibleViewport=true ] -->
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<script src="../../../resources/ui-helper.js"></script>
<style>
body {
width: 100%;
height: 100%;
margin: 0;
}
input {
width: 320px;
height: 160px;
display: block;
}
.container {
width: 30px;
height: 30px;
border: solid 2px silver;
box-sizing: border-box;
font-size: 6px;
}
#editor, iframe {
opacity: 0.001;
width: inherit;
height: inherit;
overflow-y: scroll;
}
</style>
</head>
<body>
<input type="button" onclick="focusEditor()" value="Click to focus the div">
<input type="button" onclick="focusSubframe()" value="Click to focus the frame">
<div>The initial page scale is: <span id="initial-scale"></span></div>
<div>The page scale after focusing the div is: <span id="div-scale"></span></div>
<div>The page scale after focusing the iframe is: <span id="iframe-scale"></span></div>
<div class="container">
<div id="editor" contenteditable>Testing</div>
</div>
<div class="container">
<iframe srcdoc="
<head>
<style>body, html { width: 100%; height: 100%; font-size: 6px; }</style>
<script>
function beginEditing() {
document.body.focus();
}
</script>
</head>
<body contenteditable>Testing</body>" onload="runTest()"></iframe>
</div>
<p>Verifies that we don't zoom to the focused element, if the focused element is in a hidden contenteditable area. To manually test, click the button and check that the page scale is still 1.</p>
<script>
loadCount = 0;
addEventListener("load", runTest);
function focusEditor() {
document.querySelector('#editor').focus();
}
function focusSubframe() {
document.querySelector("iframe").contentWindow.beginEditing();
}
async function runTest() {
if (!window.testRunner)
return;
if (++loadCount < 2)
return;
testRunner.dumpAsText();
testRunner.waitUntilDone();
document.querySelector("#initial-scale").textContent = internals.pageScaleFactor().toFixed(3);
await UIHelper.activateAndWaitForInputSessionAt(160, 80);
document.querySelector("#div-scale").textContent = internals.pageScaleFactor().toFixed(3);
UIHelper.resignFirstResponder();
await UIHelper.waitForKeyboardToHide();
await UIHelper.activateAndWaitForInputSessionAt(160, 240);
document.querySelector("#iframe-scale").textContent = internals.pageScaleFactor().toFixed(3);
testRunner.notifyDone();
}
</script>
</body>
</html>