<script>
if (window.internals) {
    window.internals.settings.setTextAutosizingEnabled(true);
    window.internals.settings.setTextAutosizingWindowSizeOverride(320, 480);
}
</script>
<p>
    This tests that text autosizing is not applied to editable elements and
    documents.
</p>
<div contenteditable style="width: 600px;">
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas eu nisl leo, vel commodo nibh. Fusce suscipit arcu eu elit vulputate non hendrerit velit consequat.
    <br>
    Etiam venenatis posuere nisl id sagittis. Fusce tincidunt velit at sapien porta ornare. Morbi egestas, diam nec ultricies molestie, est velit ultricies leo, aliquet placerat justo libero id arcu.
</div>
<iframe src='data:text/html,
    <script>
        document.designMode = "on";
    </script>
    <div contenteditable style="width: 600px;">
        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas eu nisl leo, vel commodo nibh. Fusce suscipit arcu eu elit vulputate non hendrerit velit consequat.
        <br>
        Etiam venenatis posuere nisl id sagittis. Fusce tincidunt velit at sapien porta ornare. Morbi egestas, diam nec ultricies molestie, est velit ultricies leo, aliquet placerat justo libero id arcu.
    </div>
'>
</iframe>
