| <!DOCTYPE html> |
| <html> |
| <head> |
| <script src="../resources/js-test.js"></script> |
| </head> |
| <body> |
| <video controls id="v"></video> |
| <script> |
| description("Verify that removing a video element from the DOM does not crash."); |
| |
| window.jsTestIsAsync = true; |
| |
| if (window.testRunner) { |
| testRunner.dumpAsText(); |
| testRunner.waitUntilDone(); |
| } |
| |
| function runTest() { |
| if (!window.internals) { |
| finishJSTest(); |
| return; |
| } |
| var video = document.getElementById('v'); |
| var videoShadow = internals.shadowRoot(video); |
| traverse(videoShadow); |
| |
| document.body.removeChild(video); |
| finishJSTest(); |
| } |
| |
| function traverse(node) { |
| if (!node) |
| return; |
| if (node.attributes) |
| Array.prototype.forEach.call(node.attributes, function (n) { node[n && n.localName] = 2; }); |
| if (node.childNodes) |
| Array.prototype.forEach.call(node.childNodes, traverse); |
| if (node.localName == 'input') |
| traverse(internals.shadowRoot(node)); |
| } |
| window.onload = runTest; |
| </script> |
| </html> |