51 lines
1.6 KiB
HTML
51 lines
1.6 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<body>
|
|
<script src="../../resources/js-test.js"></script>
|
|
<script>
|
|
|
|
description('This tests adopting a shadow tree with an Attr node.');
|
|
|
|
var referenceCountInSource;
|
|
var referenceCountInDestination;
|
|
function runTest() {
|
|
let startCount = internals.referencingNodeCount(document);
|
|
|
|
const outerHost = document.createElement('shadow-host');
|
|
document.body.appendChild(outerHost);
|
|
const outerRoot = outerHost.attachShadow({mode: 'closed'});
|
|
outerRoot.innerHTML = '<span title="foo"></span>';
|
|
|
|
const innerHost = outerRoot.firstChild;
|
|
const innerRoot = innerHost.attachShadow({mode: 'closed'});
|
|
innerRoot.innerHTML = '<div lang="en"></div>';
|
|
|
|
const outerAttr = innerHost.attributes[0];
|
|
const outerAttrNodeList = outerAttr.childNodes;
|
|
const innerAttr = innerRoot.firstChild.attributes[0];
|
|
const innerAttrNodeList = innerAttr.childNodes;
|
|
|
|
referenceCountInSource = internals.referencingNodeCount(document) - startCount;
|
|
|
|
const iframe = document.createElement('iframe');
|
|
document.body.appendChild(iframe);
|
|
|
|
startCount = internals.referencingNodeCount(iframe.contentDocument);
|
|
iframe.contentDocument.body.appendChild(outerHost);
|
|
referenceCountInDestination = internals.referencingNodeCount(iframe.contentDocument) - startCount;
|
|
|
|
iframe.remove();
|
|
}
|
|
|
|
if (!window.GCController || !window.internals)
|
|
testFailed('This test requires testRunner, internals, and GCController objects.');
|
|
else {
|
|
runTest();
|
|
GCController.collect();
|
|
shouldBe('referenceCountInDestination', 'referenceCountInSource');
|
|
}
|
|
|
|
</script>
|
|
</body>
|
|
</html>
|