| <!DOCTYPE html> |
| <html> |
| <body> |
| <script src="../../fast/dom/shadow/resources/polyfill.js"></script> |
| <script src="../../fast/dom/resources/event-sender-util.js"></script> |
| |
| <div id="container" contenteditable> |
| <table border="1" id="host" contenteditable> |
| <tr><td>host 1</td></tr> |
| <tr><td>host 2</td></tr> |
| </table> |
| </div> |
| |
| <p id="description">Selecting around a table which is distributed from shadow subtree to nested shadow subtree will trigger an assertion. To try manually, select from "shadow 2" to around "after" and confirm a crash does not occur.</p> |
| |
| <script> |
| if (window.testRunner) |
| testRunner.dumpAsText(); |
| |
| var shadowRoot = host.webkitCreateShadowRoot(); |
| var div = document.createElement('div'); |
| shadowRoot.appendChild(div); |
| div.innerHTML = "<table border='1'><tr><td>shadow 1</td></tr><tr><td id='src'>shadow 2</td></tr></table>"; |
| |
| var nestedShadowRoot = div.webkitCreateShadowRoot(); |
| nestedShadowRoot.innerHTML = "<div contenteditable>before<shadow></shadow>after</div>"; |
| |
| var src = shadowRoot.getElementById('src'); |
| |
| if (window.eventSender) { |
| eventSender.mouseMoveTo(src.offsetLeft + 10, src.offsetTop + src.offsetHeight / 2); |
| eventSender.mouseDown(); |
| eventSender.mouseMoveTo(src.offsetLeft - 10, src.offsetTop + src.offsetHeight / 2); |
| eventSender.mouseUp(); |
| |
| container.innerHTML = "PASS"; |
| } |
| |
| // When description comes before container, this test will not fail if code is wrong. So let's move here. |
| container.parentNode.insertBefore(description, container); |
| </script> |
| </body> |
| </html> |