60 lines
1.5 KiB
HTML
60 lines
1.5 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<body>
|
|
<p>This tests inserting or removing shadow tree with slot elements do not cause a crash.</p>
|
|
<script>
|
|
|
|
if (window.testRunner)
|
|
testRunner.dumpAsText();
|
|
|
|
function addShadowWithSlot() {
|
|
var host = document.createElement('div');
|
|
var shadowRoot = host.attachShadow({mode: 'open'});
|
|
var slot = document.createElement('slot');
|
|
shadowRoot.appendChild(slot);
|
|
document.body.appendChild(host);
|
|
|
|
slot.remove();
|
|
slot.setAttribute('name', 'foo');
|
|
}
|
|
|
|
function removeShadowWithSlot() {
|
|
var container = document.createElement('div');
|
|
document.body.appendChild(container);
|
|
|
|
var host = document.createElement('div');
|
|
container.appendChild(host);
|
|
|
|
var shadowRoot = host.attachShadow({mode: 'open'});
|
|
var slot = document.createElement('slot');
|
|
shadowRoot.appendChild(slot);
|
|
|
|
container.remove();
|
|
host.remove();
|
|
}
|
|
|
|
function removeNestedShadowsWithSlot() {
|
|
var outerHost = document.createElement('div');
|
|
document.body.appendChild(outerHost);
|
|
|
|
var outerShadow = outerHost.attachShadow({mode: 'open'});
|
|
var innerHost = document.createElement('div');
|
|
outerShadow.appendChild(innerHost);
|
|
|
|
var innerShadow = innerHost.attachShadow({mode: 'open'});
|
|
var slot = document.createElement('slot');
|
|
innerShadow.appendChild(slot);
|
|
|
|
outerHost.remove();
|
|
innerHost.remove();
|
|
}
|
|
|
|
addShadowWithSlot();
|
|
removeShadowWithSlot();
|
|
removeNestedShadowsWithSlot()
|
|
document.write('PASS');
|
|
|
|
</script>
|
|
</body>
|
|
</html>
|