blob: 9b11bed49df2abec74670331f35148f213c26e64 [file] [log] [blame] [edit]
<!DOCTYPE html>
<html>
<body onload="runTest()">
<p>This test only runs on DumpRenderTree, as it requires existence of window.internals and cross-domain resource access check disabled.</p>
<script src="../../resources/js-test.js"></script>
<script src="../../resources/gc.js"></script>
<script>
description("This test asserts that document doesn't leak when a selection is created inside the document.");
if (window.internals)
jsTestIsAsync = true;
async function runTest() {
if (!window.internals)
return;
try {
let message = await testDocumentIsNotLeaked(async documentCount => {
let frameIdentifiers = [];
for (var i = 0; i < documentCount; i++) {
let frame = document.body.appendChild(document.createElement("iframe"));
frame.src = 'data:text/html;charset=utf-8,<span id="t"></span>';
await new Promise(resolve => { frame.onload = resolve; });
frameIdentifiers.push(internals.documentIdentifier(frame.contentDocument));
let contentWindow = frame.contentWindow;
let element = contentWindow.document.getElementById("t");
contentWindow.getSelection().setPosition(element, 0);
frame.remove();
}
return frameIdentifiers;
});
testPassed(message);
} catch (error) {
testFailed(error.message);
}
finishJSTest();
}
</script>
</body>
</html>