| <!DOCTYPE html> <!-- webkit-test-runner [ useFlexibleViewport=true editable=true ] --> |
| <html> |
| <head> |
| <meta charset="utf-8"> |
| <meta name="viewport" content="width=device-width,initial-scale=1"> |
| <script src="../../resources/js-test.js"></script> |
| <script src="../../resources/ui-helper.js"></script> |
| <script> |
| jsTestIsAsync = true; |
| |
| window.internals?.settings?.setUseDarkAppearance(true); |
| |
| addEventListener("load", async () => { |
| description("This test copies and pastes a deeply nested DOM structure inside a contenteditable container and verifies that the web process does not crash."); |
| |
| const container = document.getElementById("container"); |
| let currentElement = container; |
| |
| for (let depth = 0; depth < 500; depth++) { |
| const div = document.createElement("div"); |
| div.textContent = `Depth ${depth}`; |
| currentElement.appendChild(div); |
| currentElement = div; |
| } |
| |
| await UIHelper.ensurePresentationUpdate(); |
| |
| getSelection().selectAllChildren(container); |
| document.execCommand("Cut", true); |
| getSelection().collapse(container, 0); |
| document.execCommand("Paste", true); |
| |
| container.style.display = "none"; |
| testPassed("Did not crash"); |
| finishJSTest(); |
| }); |
| </script> |
| </head> |
| <body> |
| <div id="container" contenteditable></div> |
| </body> |
| </html> |