<p>
    Test for <i><a href="rdar://problem/8119781">rdar://problem/8119781</a>
    Crash zooming into Word document at office.live.com</i>.
</p>
<p>
    The test passes if it does not crash. To test in Safari, make sure View > Zoom Text Only is <i>not</i> selected,
    then choose View > Zoom In.
</p>
<iframe id="iframe"></iframe>
<script>
    var iframe = document.getElementById("iframe");
    var target = iframe.contentDocument.body.appendChild(iframe.contentDocument.createElement("input"));
    target.style.overflow = "hidden";
    iframe.contentWindow.addEventListener("resize", function(event) {
        if (target.parentNode)
            target.parentNode.removeChild(target);
    }, false);

    document.body.offsetTop;

    if (window.testRunner) {
        testRunner.dumpAsText();
        eventSender.zoomPageIn();
    }
</script>
