blob: 3352c7d2853a33317714d3a46b5ac1ddbec466b6 [file] [log] [blame]
<!DOCTYPE html> <!-- webkit-test-runner [ useFlexibleViewport=true ] -->
<html>
<head>
<meta name="viewport" content="initial-scale=0.5">
<style>
button {
display: block;
}
iframe {
margin-top: 800px;
}
</style>
<script src="resources/zooming-test-utils.js"></script>
<script>
if (window.testRunner) {
testRunner.dumpAsText();
testRunner.waitUntilDone();
}
if (window.internals)
internals.settings.setFrameFlattening("FullyEnabled")
function getTypingUIScript()
{
return `
(function() {
uiController.typeCharacterUsingHardwareKeyboard('delete', function() {
uiController.uiScriptComplete();
});
})();`
}
function buttonClicked()
{
document.getElementById('frame').contentDocument.getElementById('input').focus();
}
function pageDidScroll()
{
document.getElementById('result').textContent = 'FAIL: page scrolled to ' + document.scrollingElement.scrollTop;
}
function testTyping()
{
window.addEventListener('scroll', pageDidScroll, false);
var uiScript = getTypingUIScript();
testRunner.runUIScript(uiScript, function() {
// Wait for any scroll to happen.
window.setTimeout(function() {
if (window.testRunner)
testRunner.notifyDone();
}, 100);
});
}
function doTest()
{
// Get the text field focused via a user event so we zoom to it.
var point = getPointInsideElement(document.getElementById('target'), 10, 10);
var uiScript = zoomAfterSingleTapUIScript(point.x, point.y, true);
testRunner.runUIScript(uiScript, function(result) {
window.setTimeout(function() {
testTyping();
}, 0);
});
}
window.addEventListener('load', doTest, false);
</script>
</head>
<body>
<p>Tests that typing into a text input in an iframe should not scroll.</p>
<div id="result">
PASS: page did not scroll.
</div>
<button id="target" onclick="buttonClicked()">Click to focus input</button>
<iframe id="frame" srcdoc="<style>input { margin: 400px 20px; }</style>
<input id='input' type='text' value='aaa'>
"></iframe>
</body>
</html>