74 lines
2.2 KiB
HTML
74 lines
2.2 KiB
HTML
<!DOCTYPE html> <!-- webkit-test-runner [ useFlexibleViewport=true ] -->
|
|
|
|
<html>
|
|
<head>
|
|
<meta name="viewport" content="initial-scale=1.0">
|
|
<style>
|
|
body {
|
|
width: 1000px;
|
|
height: 2000px;
|
|
}
|
|
.fixed {
|
|
position: fixed;
|
|
background-color: silver;
|
|
top: 10px;
|
|
padding: 10px;
|
|
}
|
|
</style>
|
|
<script>
|
|
if (window.testRunner) {
|
|
testRunner.waitUntilDone();
|
|
testRunner.dumpAsText();
|
|
}
|
|
|
|
function getScrollDownUIScript()
|
|
{
|
|
return `(function() {
|
|
uiController.immediateScrollToOffset(0, 800);
|
|
})();`;
|
|
}
|
|
|
|
function getFocusInputUIScript(x, y)
|
|
{
|
|
return `(function() {
|
|
uiController.didEndZoomingCallback = function() {
|
|
uiController.uiScriptComplete();
|
|
}
|
|
|
|
uiController.singleTapAtPoint(${x}, ${y}, function() {});
|
|
})();`;
|
|
}
|
|
|
|
function runTest()
|
|
{
|
|
if (!window.testRunner || !testRunner.runUIScript)
|
|
return;
|
|
|
|
testRunner.runUIScript(getScrollDownUIScript(), function() {
|
|
window.setTimeout(function() {
|
|
var rect = document.getElementById('input').getBoundingClientRect();
|
|
// singleTapAtPoint takes document coordinates, so add scrollTop to clientRect.top.
|
|
testRunner.runUIScript(getFocusInputUIScript(rect.left, rect.top + document.scrollingElement.scrollTop), function() {
|
|
|
|
if (window.internals) {
|
|
var output = 'Layout viewport: ' + JSON.stringify(internals.layoutViewportRect()) + '\nVisual viewport: ' + JSON.stringify(internals.visualViewportRect()) + '\n';
|
|
document.getElementById('results').innerText = output;
|
|
}
|
|
|
|
testRunner.notifyDone();
|
|
});
|
|
}, 0);
|
|
});
|
|
}
|
|
|
|
window.addEventListener('load', runTest, false);
|
|
</script>
|
|
</head>
|
|
<body>
|
|
<pre id="results"></pre>
|
|
<div class="fixed">
|
|
<input id="input" type="text">
|
|
</div>
|
|
</body>
|
|
</html>
|