<!DOCTYPE html>

<p>Passes if it does not crash in ASAN.</p>

<script>
if (window.testRunner) {
    testRunner.dumpAsText();
    testRunner.waitUntilDone();
}

var iframe = document.createElement('iframe');
iframe.onload = function() {
    var input = document.createElement('input');
    input.autofocus = true;
    iframe.contentDocument.body.offsetTop;
    iframe.contentDocument.body.appendChild(input);
    input.onfocus = function() {
        iframe.contentDocument.body.style.height = '100px';
        iframe.remove();
        if (window.testRunner)
            testRunner.notifyDone();
    };
}

document.documentElement.offsetTop;
document.documentElement.appendChild(iframe);
</script>
