| <!DOCTYPE html> |
| <html> |
| <body> |
| <script src="../../fast/dom/shadow/resources/polyfill.js"></script> |
| <script src="../../fast/dom/resources/event-sender-util.js"></script> |
| |
| <p>Applying document.execCommand('Bold') to elements having insertion points (<shadow> or <content>) shoud not cause a crash.</p> |
| <p>To test manually, make a selection from somewhere in "nested before" to somehwere in "nested after", then press Ctrl+B twice. It should not cause a crash.</p> |
| |
| <div id="container" contenteditable> |
| before host |
| <div id="host"> <span contenteditable="false">not editable<span></div> |
| after host |
| </div> |
| <pre id="console"></pre> |
| |
| <script> |
| if (window.testRunner) |
| testRunner.dumpAsText(); |
| |
| var shadowRoot = host.webkitCreateShadowRoot(); |
| shadowRoot.innerHTML = '<div id="shadow-host"><span contenteditable>shadow before</span><shadow></shadow>shadow (after)</div>'; |
| |
| var nestedShadowHost = shadowRoot.getElementById('shadow-host'); |
| var nestedShadowRoot = nestedShadowHost.webkitCreateShadowRoot(); |
| nestedShadowRoot.innerHTML = '<div id="inner" contenteditable>nested before<shadow></shadow>nested after</div>'; |
| |
| if (window.eventSender) { |
| var div = nestedShadowRoot.getElementById('inner'); |
| |
| eventSender.mouseMoveTo(div.offsetLeft + 5, div.offsetTop + div.offsetHeight / 2); |
| eventSender.mouseDown(); |
| eventSender.mouseMoveTo(div.offsetLeft + div.offsetWidth - 5, div.offsetTop + div.offsetHeight / 2); |
| eventSender.mouseUp(); |
| |
| document.execCommand('Bold'); |
| document.execCommand('Bold'); |
| |
| container.innerHTML = "PASS"; |
| } |
| </script> |
| </body> |
| </html> |