<!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);
    document.activeElement.blur();
    await UIHelper.waitForKeyboardToHide();

    await UIHelper.activateAndWaitForInputSessionAt(160, 240);
    document.querySelector("#iframe-scale").textContent = internals.pageScaleFactor().toFixed(3);

    document.activeElement.blur();
    await UIHelper.waitForKeyboardToHide();
    testRunner.notifyDone();
}
</script>
</body>
</html>
