LibWeb: Ensure scroll offset is applied to mask-images

When recording the display list for a stacking context, the following
operations (relevant to this bug) happened:
* push a stacking context
  * as part of that push a None-value to the scroll frame id stack
* apply filters
* apply masking
* paint recursively

This meant that mask-images were always recorded without scroll frame
id, causing them to be painted without any scroll offset. As a result
mask-images would break as soon as the website using them was scrolled.

Instead, push to the scroll frame id stack later to solve the problem:
* push a stacking context
* apply filters
* apply masking
* push a None-value to the scroll frame id stack
* paint recursively
This commit is contained in:
InvalidUsernameException 2025-05-29 19:57:21 +02:00 committed by Alexander Kalenik
commit 164afdcc59
Notes: github-actions[bot] 2025-05-29 20:03:16 +00:00
4 changed files with 31 additions and 2 deletions

View file

@ -0,0 +1,11 @@
<!DOCTYPE html>
<style>
* { scrollbar-width: none; }
body { height: 200vh; }
div {
width: 100px;
height: 100px;
background-color: green;
}
</style>
<div></div>