<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>
