<html>
    <head>
        <script>
            function test()
            {
                if (window.testRunner)
                    testRunner.dumpAsText();

                window.getSelection().setPosition(document.getElementById('dv'), 1);
                document.execCommand("InsertParagraph");
                document.execCommand("InsertText", false, "this should also be blue over lightgrey");

                document.write("<xmp>" + document.body.innerHTML + "</xmp>");
            }
        </script>
    </head>
    <body onload="test()">
        <div id="dv" contenteditable><span style="background-color: lightgrey">lightgrey background <font color="blue">blue font color over lightgrey background</font></span> 
</div>
    </body>
</html>
