Commit Graph

329 Commits

Author SHA1 Message Date
Sam Atkins
9ac0966fc6 Tests: Import serialize-consecutive-tokens test
This had significant regressions after #6646, so let's import it to
track progress and prevent future regressions.
2025-11-04 14:05:31 +01:00
Sam Atkins
971c0d0126 LibWeb/CSS: Handle whitespace properly for scrollbar properties
Imported a WPT test that regressed without these changes.
2025-11-03 11:23:21 +00:00
Callum Law
fbcef936a9 LibWeb: Update style before getting animation play state
Pending style updates can influence this value
2025-11-02 23:54:00 +01:00
Callum Law
a95cde3660 LibWeb: Separate CSSAnimation::animationName from Animation::id 2025-11-02 23:54:00 +01:00
Callum Law
2447b8a759 LibWeb: Ignore non-animatable properties in keyframes
Gains us 21 WPT tests
2025-11-02 23:54:00 +01:00
ayeteadoe
30729feebb LibWeb: Prevent crash in content calculations for ListItemMarkerBox
In several content calculation methods in FormattingContext, we assumed
that if create_independent_formatting_context_if_needed() fails the
input Layout::Box is a BlockContainer; however, the web platform test
css/css-pseudo/parsing/marker-supported-properties-in-animation.html is
one scenario where the input is a Layout::ListItemMarkerBox instead and
there is no FormattingContext supported for it yet.
2025-10-30 18:21:24 +00:00
Callum Law
c2ca712406 LibWeb: Properly simplify sum nodes containing negated sum nodes
This is ad-hoc, see https://github.com/w3c/csswg-drafts/issues/13020

Gains us 5 WPT tests
2025-10-30 12:18:24 +00:00
Lorenz A
14dba82202 LibWeb: Allow whitespace in not after a boolean-expr-group 2025-10-28 21:54:48 -07:00
Callum Law
76dadd45d6 LibWeb: Favour !important property values over animated values 2025-10-27 09:51:50 +00:00
Callum Law
fd2f3b1f03 Tests: Import transition parsing tests 2025-10-23 10:09:11 +01:00
Callum Law
1977a976da LibWeb: Handle inaccuracies resolving transformation matrix type
Doing trigonometric calculations with floating point numbers can
introduce small inaccuracies. This meant that we would sometimes
incorrectly generate a 3d rather than 2d matrix for the resolved value
of `transform`.

Gains us 3 WPT tests.
2025-10-23 09:34:12 +01:00
Callum Law
85239fb1da Tests: Import tree-counting function WPT tests 2025-10-20 16:12:08 +01:00
Sam Atkins
c619c90e23 Tests: Import some @property tests 2025-10-20 13:55:23 +01:00
Callum Law
4c97b336c3 Tests: Import timing function tests 2025-10-20 11:27:44 +01:00
Callum Law
fb64be2f78 Tests: Import some css-shapes tests 2025-10-17 11:10:05 +01:00
Tim Ledbetter
b08ecc0cd1 Tests: Update WPT color parsing tests 2025-10-15 18:40:48 +02:00
Sam Atkins
65ba5acf9d Tests: Import @property { syntax } parsing test
This gets some extra passes with the next commit.
2025-10-14 13:41:47 +01:00
Tim Ledbetter
0bdb831c68 LibWeb: Avoid null dereference in ListItemBox specified content check 2025-10-14 10:27:11 +01:00
Tim Ledbetter
701ef22952 LibWeb: Use correct percentage basis when resolving line height 2025-10-13 10:17:58 +01:00
Sam Atkins
f61c67792d LibWeb/CSS: Allow setting shorthand values with StylePropertyMap.set()
Shorthands should be broken up into their longhands, instead of setting
them directly.

There's a catch here with our "positional value list shorthands" like
`margin`: Setting margin to a single value like `CSSUnitValue(10, "px")`
is supposed to fail here, but our type-checking code thinks it's valid
because our JSON for `margin` says it accepts lengths. This is the same
kind of issue that we had for `cursor` discussed in the
"LibWeb/CSS: Support converting CSSUnitValue to a StyleValue" commit.

Will get us a few subtest passes for every shorthand that's tested.
2025-10-09 16:14:58 +02:00
Sam Atkins
bd545af210 LibWeb/CSS: Support calculated percentages in line-height
Without this, the imported test will crash once we implement
`CSSUnitValue::create_an_internal_representation()`.
2025-10-09 16:14:58 +02:00
Callum Law
0bf6014001 Tests: Import css corner-shape tests 2025-10-09 10:23:20 +01:00
Tim Ledbetter
03fa367d9d LibWeb: Parse the anchor-scope property 2025-10-07 11:30:23 +01:00
Tim Ledbetter
85a15ea1d4 LibWeb: Parse the position-visibility value 2025-10-07 11:30:23 +01:00
Tim Ledbetter
47966ed589 LibWeb: Parse the position-try-order property 2025-10-07 11:30:23 +01:00
Tim Ledbetter
2bde14b148 LibWeb: Parse the position-try-fallbacks property 2025-10-07 11:30:23 +01:00
Tim Ledbetter
27cdf3a2c8 LibWeb: Parse the position-anchor property 2025-10-07 11:30:23 +01:00
Tim Ledbetter
7374a07fbc LibWeb: Parse the anchor-name property 2025-10-07 11:30:23 +01:00
Callum Law
e675b95f51 LibWeb: Add absolutized method to OpenTypeTaggedStyleValue 2025-10-07 10:50:01 +01:00
Callum Law
05c336ea4e LibWeb: Use document's viewport when resolving lengths in media queries
Previously we would always use the window's viewport which was incorrect
if we were within an iframe.

This is likely applicable to all uses of
`Length::ResolutionContext::for_window`.
2025-10-07 10:32:59 +01:00
Tim Ledbetter
51ea4a7e2a LibWeb: Align position-area values with the specification
This change renames the following `position-area` values:

x-self-start -> self-x-start
x-self-end -> self-x-end
y-self-start -> self-y-start
y-self-end -> self-y-end
span-x-self-start -> span-self-x-start
span-x-self-end -> span-self-x-end
span-y-self-start -> span-self-y-start
span-y-self-end -> span-self-y-end
2025-10-05 15:48:21 +01:00
Sam Atkins
3916e33276 LibWeb/CSS: Parse the container-type property
This applies size, inline-size, and style containment in some cases.
There are other WPT tests for that, but we seem to not implement enough
of containment for this to have an effect so I've not imported those.

Gets us 35 WPT subtests.
2025-09-30 22:05:45 +01:00
Tim Ledbetter
3299ea97c6 LibWeb: Treat word-wrap as an alias for overflow-wrap 2025-09-30 13:50:53 +01:00
Tim Ledbetter
fda5ea8277 LibWeb: Correctly resolve position-area computed value 2025-09-29 12:48:13 +02:00
Tim Ledbetter
eb571a1a46 LibWeb: Parse the position-area property 2025-09-29 09:53:27 +02:00
Callum Law
c4d6deb5c7 LibWeb: Parse widows CSS property 2025-09-26 16:32:54 +01:00
Callum Law
3d85532752 LibWeb: Parse orphans CSS property 2025-09-26 16:32:54 +01:00
Tim Ledbetter
b64cb89b9d LibWeb: Implement compositing of font-variation-settings values 2025-09-26 11:20:54 +01:00
Tim Ledbetter
f9452b77b7 LibWeb: Implement interpolation of font-variation-settings values 2025-09-26 11:20:54 +01:00
Tim Ledbetter
d18d40f7b9 LibWeb: Handle interpolation of grid track size lists
This allows the `grid-template-rows` and `grid-template-columns`
properties to be correctly interpolated.
2025-09-26 11:15:08 +01:00
Callum Law
9ee9be720c LibWeb: Collapse & trim whitespace when serializing UnresolvedStyleValue 2025-09-26 07:30:10 +01:00
Callum Law
43dd0f2dda LibWeb: Properly clamp interpolated opacity values
Opacity values are unique in that the range which calculated and
interpolated values should be clamped to [0,1] is different from the
range of allowed values [-∞,∞].

This fixes 28 WPT tests that were regressed in #6112
2025-09-24 12:01:52 +01:00
Callum Law
4f5feaf3b6 Tests: Import a bunch of animation property parsing tests
Done in a distinct commit to show progress over following commits
2025-09-24 11:58:20 +01:00
Callum Law
a5139733cc Tests: Import line-height WPT tests
Done in a distinct commit to show progress in later commits
2025-09-23 15:57:32 +01:00
Tim Ledbetter
637724f8d9 LibWeb: Add the overflow-inline property 2025-09-19 13:41:27 +01:00
Tim Ledbetter
2e00ff80e5 LibWeb: Add the overflow-block property 2025-09-19 13:41:27 +01:00
Tim Ledbetter
e502f19fa7 LibWeb: Implement the animation-composition property 2025-09-19 10:10:05 +01:00
Callum Law
3b6d17cd42 LibWeb: Import a bunch of CSS font related tests
Done in distinct commit to see progress over multiple following commits
2025-09-19 10:06:33 +01:00
Tim Ledbetter
9b15517052 LibWeb: Apply composite operator to keyframe effects 2025-09-18 16:46:06 +01:00
Callum Law
5d8a859457 Tests: Import text-shadow parsing test
Done in a distinct commit to show progress in following commits
2025-09-18 15:21:22 +01:00