LibWeb: Make CSS :hover selector match shadow-inclusive ancestors

Before this change, :hover wouldn't match anything outside the shadow
boundary when hovering elements inside a shadow tree. This was most
noticeable when hovering the text inside an input element and hover
styles disappearing from the hosting input element itself.
This commit is contained in:
Andreas Kling 2024-08-25 10:14:24 +02:00 committed by Andreas Kling
commit 84ab8bf797
Notes: github-actions[bot] 2024-08-25 10:53:57 +00:00
3 changed files with 25 additions and 1 deletions

View file

@ -0,0 +1,23 @@
<style>
#myShadowHost:hover {
background: green;
}
#myShadowHost {
position: absolute;
width: 100px;
height: 100px;
}
</style>
<body><div id="myShadowHost"><template shadowrootmode="open"><div>hover me</div></template></div></body>
<script src="../include.js"></script>
<script>
test(() => {
if (window.internals && window.internals.movePointerTo)
internals.movePointerTo(50, 50);
let s = getComputedStyle(myShadowHost);
println("hovered bg: " + s.backgroundColor);
myShadowHost.remove();
});
</script>