<html>
<head>
    <style>
        div { border:2px solid green; width:700px; }
    </style>
    <script>
        function runTest() {
            if (window.layoutTestController)
                window.layoutTestController.dumpAsText();

            var obj = document.getElementById("objectInQuestion");
            var s = window.getSelection();
            s.setPosition(obj, 0);

            document.execCommand("InsertParagraph");
        }
    </script>
</head>
<body onload="runTest()">
    <div contentEditable="true">
        <a href="http://www.facebook.com/">
            <span>
                <object id="objectInQuestion" style="border-color: initial; display: block; position: absolute; background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; "></object>
            </span>
        </a>
    </div>
    <br>
    <br>
    <div>
        This test is solely making sure we don't crash.
        <br>If this page loaded then no crash occured.
    </div>
</body>
</html>