blob: edce371e3240e171f74051ddf8c0b28dc842feeb [file] [edit]
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS Custom Highlight API: a node inserted inside a highlight range after it has been painted is highlighted</title>
<style>
#target {
font: 16px/20px monospace;
white-space: pre;
width: max-content;
color: black;
}
#target::highlight(test),
#inner::highlight(test) {
background-color: lime;
}
</style>
<script src="../resources/ui-helper.js"></script>
</head>
<body>
<p>PASS if the bar below is one solid lime rectangle with no gap in the middle.</p>
<div id="target">AAAA<span id="inner"></span>AAAA</div>
<script>
if (window.testRunner)
testRunner.waitUntilDone();
(async () => {
// Unlike a live Range, a StaticRange is not told about the insertion below, so nothing about the range
// itself changes when the node is inserted.
const target = document.getElementById("target");
CSS.highlights.set("test", new Highlight(new StaticRange({
startContainer: target.firstChild,
startOffset: 0,
endContainer: target.lastChild,
endOffset: 4,
})));
await UIHelper.renderingUpdate();
document.getElementById("inner").textContent = "AAAA";
if (window.testRunner)
testRunner.notifyDone();
})();
</script>
</body>
</html>