ladybird/Tests/LibWeb
Aliaksandr Kalenik bbc89a383d LibWeb: Fix overflow clip when "complicated" CSS transform is used
Overflow clipping is currently implemented as:
1. Create clip frame for each box with hidden overflow
2. Calculate clip rect for each clip frame by intersecting padding boxes
   of all boxes with hidden overflow in containing block chain
3. Assign enclosing clip frame (closest clip frame in containing block
   chain) to each PaintableBox
4. Apply clip rect of enclosing clip frame in Paintable::before_paint()

It breaks when any CSS transform other than simple translation is lying
between box with hidden overflow and a clipped box, because clip
rectangle will be applied when transform has already changed.

The fix is implemented by relying on the following rule:
"For elements whose layout is governed by the CSS box model, any value
other than none for the transform also causes the element to establish
a containing block for all descendants."

It means everything nested into a stacking context with CSS transform
can't escape its clip, so it's safe to apply its clip for all children.
2024-08-01 12:03:13 +02:00
..
Layout LibWeb/CSS: Treat counters() function with 1 argument as invalid 2024-07-29 12:57:43 -04:00
Ref LibWeb: Fix overflow clip when "complicated" CSS transform is used 2024-08-01 12:03:13 +02:00
Screenshot LibWeb+LibGfx: Use Skia for text rasterization 2024-07-27 08:18:54 +02:00
Text HTML: Partially implement HTMLInputElement's selection{Start,End} 2024-08-01 11:42:39 +02:00
WPT Tests: Enable WPT/run.sh to run an arbitrary subset of tests 2024-07-17 09:55:11 -06:00
add_libweb_test.py Tests/LibWeb: Add a script to create a new test, starting with Text 2024-04-10 17:17:40 -06:00
CMakeLists.txt Everywhere: Don't install code generators and test binaries 2024-07-10 10:13:21 -06:00
rebaseline-libweb-test Tests: Make rebaseline-libweb-test OS aware 2024-07-05 16:29:00 -06:00
TestConfig.ini Tests: Skip css-keyframe-fill-forwards.html ref test 2024-06-26 18:56:33 -06:00
TestCSSIDSpeed.cpp LibWeb: Make value_id_from_string() return Optional 2023-05-25 06:36:10 +02:00
TestCSSPixels.cpp LibWeb: Remove rounding division for CSSPixels 2024-01-06 21:40:27 +01:00
TestFetchInfrastructure.cpp LibWeb: Remove OOM propagation from Fetch::Infrastructure::HTTP 2024-04-27 07:08:14 +02:00
TestFetchURL.cpp LibWeb/Fetch: Use MimeType in DataURL 2024-06-02 19:55:53 +02:00
TestHTMLTokenizer.cpp Everywhere: Remove Serenity specific code from tests 2024-07-05 07:29:51 +02:00
TestMicrosyntax.cpp LibWeb: Add test for week_number_of_the_last_day microsyntax 2023-12-11 14:04:27 -07:00
TestMimeSniff.cpp LibWeb/MimeSniff: Implement "minimize a supported MIME type" 2024-05-19 16:25:50 +02:00
TestNumbers.cpp LibWeb: Implement spec-compliant integer parsing 2023-08-24 22:26:53 +01:00
tokenizer-test.html LibWeb: Fix assertion failure when tokenizing JS regex literals 2021-07-15 01:47:22 +02:00