CountBleck
ec051bdec2
LibWeb: Import css/selectors/user-valid.html from WPT
2025-08-14 11:55:02 +02:00
Sam Atkins
7ec374c74c
Tests: Import tests for CSS typed OM
...
This is everything except some failing ref-tests, and
`css/css-typed-om/the-stylepropertymap/properties/*` because importing
a test for every property feels excessive.
2025-08-13 09:47:50 +01:00
Sam Atkins
503d41d02d
LibWeb/CSS: Implement the :heading/:heading() pseudo-class
...
Corresponds to part of
65dc095e44
2025-08-13 09:47:28 +01:00
Callum Law
778da0175e
LibWeb: Clamp and censor top-level calc results
...
We now clamp the values returned from calc into the allowed range (where
we know it) and censor any `NaN`s to `0` both when we resolve and when
we serialize.
Gains us 76 WPT passes.
2025-08-11 17:10:04 +01:00
Sam Atkins
3b97bdc7bf
Tests: Import WPT tests for table rows with visibility:collapse
...
These mostly fail for now.
2025-08-11 11:07:47 +01:00
Callum Law
9e1ace28a6
LibWeb: Import WPT tests related to handling non-finite values in calcs
2025-08-08 11:43:49 +01:00
Sam Atkins
b03e829a49
Tests: Import WPT tests for CSS env()
2025-08-07 16:38:29 +02:00
Sam Atkins
5808eff1f4
LibWeb/CSS: Hyphenate request-url-modifier names
...
Corresponds to e1bf92d49a
Also update our imported WPT tests.
2025-08-07 13:38:25 +01:00
InvalidUsernameException
d51f46a0f7
Tests/LibWeb: Import tests for mask property and longhands
2025-08-06 23:09:07 +01:00
Callum Law
70cb8d23fb
Tests: Import/create tests related to absolutization of StyleValues
...
Done in a separate commit to show progress
2025-08-06 17:44:12 +01:00
Callum Law
c3b1013018
LibWeb: Skip inverted non-canonical values when simplifying product node
...
This matches the logic with the non-inverted children.
Gains us 2 WPT tests.
2025-08-06 14:53:22 +01:00
Tim Ledbetter
1dd3608960
LibWeb/SVG: Apply SVGFeBlendElement blend mode
...
Previously, the blend mode was always assumed to be `normal`.
2025-08-06 15:21:03 +02:00
Callum Law
15cee5cc15
LibWeb: Correctly round non-integer z-indexes
...
Previously we would just cast to an int.
Gains us 3 WPT tests.
2025-08-05 06:37:40 +01:00
norbiros
190745fd58
LibWeb/CSS: Parse initial value using syntax from @property
...
Now we pass all WPT tests in:
`css/css-properties-values-api/at-property-cssom`.
Note: Failing tests were false positives.
Proper handling of inheriting values and detecting computational
independence will be done in another PR.
2025-08-04 11:08:46 +01:00
Tim Ledbetter
1d9e4a6f62
LibWeb: Parse anchor() function for inset properties
2025-08-03 22:09:31 +02:00
Tim Ledbetter
e36df5ea0a
LibWeb: Serialize background-size auto correctly
...
CI / macOS, arm64, Sanitizer, Clang (push) Waiting to run
CI / Linux, x86_64, Fuzzers, Clang (push) Waiting to run
CI / Linux, x86_64, Sanitizer, GNU (push) Waiting to run
CI / Linux, x86_64, Sanitizer, Clang (push) Waiting to run
Package the js repl as a binary artifact / Linux, arm64 (push) Waiting to run
Package the js repl as a binary artifact / macOS, arm64 (push) Waiting to run
Package the js repl as a binary artifact / Linux, x86_64 (push) Waiting to run
Run test262 and test-wasm / run_and_update_results (push) Waiting to run
Lint Code / lint (push) Waiting to run
Label PRs with merge conflicts / auto-labeler (push) Waiting to run
Push notes / build (push) Waiting to run
When `background-size` is `auto` in both axes, the `auto` value is no
longer repeated.
2025-08-02 08:51:23 +02:00
Tim Ledbetter
f2682bb544
LibWeb: Use correct animation type for border-spacing
...
CI / Linux, x86_64, Sanitizer, Clang (push) Waiting to run
CI / macOS, arm64, Sanitizer, Clang (push) Waiting to run
CI / Linux, x86_64, Fuzzers, Clang (push) Waiting to run
CI / Linux, x86_64, Sanitizer, GNU (push) Waiting to run
Package the js repl as a binary artifact / Linux, arm64 (push) Waiting to run
Package the js repl as a binary artifact / macOS, arm64 (push) Waiting to run
Package the js repl as a binary artifact / Linux, x86_64 (push) Waiting to run
Run test262 and test-wasm / run_and_update_results (push) Waiting to run
Lint Code / lint (push) Waiting to run
Label PRs with merge conflicts / auto-labeler (push) Waiting to run
Push notes / build (push) Waiting to run
This follows the `css-tables` specification rather than the older CSS2
specification.
2025-08-01 15:18:17 +02:00
Tim Ledbetter
ca9364983c
LibWeb/CSS: Support interpolating filter and backdrop-filter values
CI / macOS, arm64, Sanitizer, Clang (push) Waiting to run
CI / Linux, x86_64, Fuzzers, Clang (push) Waiting to run
CI / Linux, x86_64, Sanitizer, GNU (push) Waiting to run
CI / Linux, x86_64, Sanitizer, Clang (push) Waiting to run
Package the js repl as a binary artifact / Linux, arm64 (push) Waiting to run
Package the js repl as a binary artifact / macOS, arm64 (push) Waiting to run
Package the js repl as a binary artifact / Linux, x86_64 (push) Waiting to run
Run test262 and test-wasm / run_and_update_results (push) Waiting to run
Lint Code / lint (push) Waiting to run
Label PRs with merge conflicts / auto-labeler (push) Waiting to run
Push notes / build (push) Waiting to run
2025-07-30 23:29:07 +02:00
Jelle Raaijmakers
c4f5e7bee3
LibWeb: Implement anchor-size(..) function parsing
...
This parses `anchor-size(..)` functions in CSS, but does not yet result
in a useful `Size`: we need style & layout interleaving similar to
container queries for this, since the resulting value depends on layout
results.
Not supported yet: `anchor-size()` appearing inside a `calc()` node.
Adds 4280 WPT subtest passes in `css/css-anchor-position`.
2025-07-30 18:13:59 +01:00
Tim Ledbetter
62e52163d6
LibWeb: Interpolate text-shadow values as a shadow list
...
This is the same behavior as is currently used for `box-shadow`.
2025-07-30 10:51:50 +02:00
Tim Ledbetter
484a09d6a2
LibWeb: Support interpolating rotate values
2025-07-22 11:09:45 +01:00
norbiros
ab574deb93
Tests: Import some css/css-properties-values-api WPT tests
...
Casual import of 4 WPT tests related to `CSS.registerProperty`
2025-07-22 10:57:54 +01:00
Luke Wilde
8210a7b3e3
LibWeb: Resolve FontFaceSet::load promise with all loaded FontFaces
...
CI / macOS, arm64, Sanitizer, Clang (push) Waiting to run
CI / Linux, x86_64, Fuzzers, Clang (push) Waiting to run
CI / Linux, x86_64, Sanitizer, GNU (push) Waiting to run
CI / Linux, x86_64, Sanitizer, Clang (push) Waiting to run
Package the js repl as a binary artifact / Linux, arm64 (push) Waiting to run
Package the js repl as a binary artifact / macOS, arm64 (push) Waiting to run
Package the js repl as a binary artifact / Linux, x86_64 (push) Waiting to run
Run test262 and test-wasm / run_and_update_results (push) Waiting to run
Lint Code / lint (push) Waiting to run
Label PRs with merge conflicts / auto-labeler (push) Waiting to run
Push notes / build (push) Waiting to run
Build Dev Container Image / build (push) Has been cancelled
The resulting array is required on https://www.canva.com/
2025-07-21 16:29:55 +01:00
Sam Atkins
11e2dbb555
LibWeb/CSS: Support text-justify: distribute legacy value alias
...
...for `text-justify: inter-character`.
We previously had this mapped in Enums.json, but the behaviour is
different: `a=b` in Enums.json keeps `a` around but makes it behave the
same as `b`. A legacy name alias is instead expected to replace `a`
with `b`, so we have to do that separately.
2025-07-21 10:04:42 +01:00
Gingeh
f38e07e0c5
LibWeb: Don't crash when an unknown property begins with a single dash
2025-07-20 08:54:53 +02:00
Andrew Kaster
50422eb563
Tests: Add XHTML tests for CDATA, PIs and Comment nodes in the DOM
2025-07-19 14:56:20 +02:00
Callum Law
4ee8110449
LibWeb: Handle flood-opacity in line with other opacity properties
...
We now do the proper thing in terms of:
- Allowing percentages
- Returning the computed value in getComputedStyle
- Handling values out of the [0,1] range
Gains us 13 WPT passes in the imported tests.
2025-07-18 11:04:55 -04:00
Sam Atkins
07b5b7ffb6
Tests: Import CSS clip-path: path(...) tests
2025-07-17 13:59:23 -04:00
Sam Atkins
5d1ba658c9
Tests: Import attr()-related WPT tests
2025-07-16 14:47:45 +01:00
Callum Law
1d3e539c09
LibWeb: Account for logical property groups in set_a_declaration
...
When setting a declaration for a property in a logical property group,
it should appear after all other declarations which belong to the same
property group but have different mapping logic (are/aren't a logical
alias).
Gains us 1 WPT pass.
2025-07-16 11:16:49 +01:00
Callum Law
927cd969b2
LibWeb: Generically serialize "positional-value-list-shorthand"s
...
We were previously handling this ad-hoc via logic in
`get_property_internal` but this didn't cover all contexts (for
instance `CSSStyleProperties::serialized`.
Gains us 9 more WPT tests as we now cover properties which weren't
included in the previous ad-hoc approach.
2025-07-15 14:26:02 +01:00
Shannon Booth
9054ff29f0
LibWeb/CSS: Parse the ::slotted pseudo-element
2025-07-15 13:54:17 +01:00
Callum Law
d980321a77
LibWeb: Include own shadow root in for_each_shadow_including_descendant
...
Fixes a crash in wpt.live/css/cssom/CSSStyleSheet-constructable.html
2025-07-11 16:21:11 +02:00
Callum Law
1a0d4487a8
LibWeb: Implement matches attribute on CSSSupportsRule and CSSMediaRule
...
Gains us 4 WPT tests.
2025-07-11 10:57:19 +02:00
Tim Ledbetter
c4cf1ccede
LibWeb: Don't crash when parsing ASF with non comma-separated arguments
2025-07-09 19:47:12 +01:00
Sam Atkins
59f2c8df7a
Tests: Import some custom-property tests
...
To make it easier to track progress and regressions in subsequent
changes.
2025-07-09 16:44:20 +01:00
Callum Law
ceb1c37ba3
LibWeb: Import CSS logical border property parsing WPT tests
2025-07-09 10:10:38 +01:00
Jelle Raaijmakers
e1c93c0ee8
LibWeb: Import WPT elementsFromPoint test
...
This specific test failed for some of the previous iterations of this
changeset, so let's import it and use it as a regression test.
2025-07-05 23:56:42 +01:00
Tim Ledbetter
923deb0c01
LibWeb: Parse border-image shorthand property
2025-07-03 10:19:44 +01:00
Tim Ledbetter
98e63e3dd5
LibWeb: Parse the border-image-outset property
2025-07-03 10:19:44 +01:00
Tim Ledbetter
245905b833
LibWeb: Parse the border-image-slice property
2025-07-03 10:19:44 +01:00
Tim Ledbetter
70c2621634
LibWeb: Parse the border-image-source property
2025-07-03 10:19:44 +01:00
Tim Ledbetter
9d1373de86
Tests/LibWeb: Import unicode range parsing test from WPT
2025-07-03 08:22:30 +01:00
Tim Ledbetter
78b6032940
LibWeb: Validate operator count when parsing a calculation
...
Previously, we would allow calc values such as `calc(min(1 2))`, which
would be simplified to `calc(3)` because we assumed that numbers not
separated by an operator represented a sum. We now validate that the
number of operators we see is as we would expect before collecting
these values into a sum node.
2025-07-02 10:12:58 +01:00
Gingeh
0e3386bb4c
LibWeb: Throw SyntaxError when FontFaceSet contains var
2025-07-01 11:50:05 +01:00
Tim Ledbetter
5b522c096e
LibWeb: Add border-*-radius logical properties
2025-07-01 11:16:37 +02:00
Callum Law
8e9753eadb
LibWeb: Correctly compute consistent type when simplifying hypot
...
Previously we would never get a valid `consistent_type` as we were
trying to make the node types consistent with the initial empty type
which isn't possible.
Gains us 7 WPT tests.
2025-06-30 14:53:04 +02:00
Tim Ledbetter
90da2f5418
LibWeb: Add the border-block-* shorthand properties
2025-06-30 14:52:18 +02:00
Tim Ledbetter
bf37f3400e
LibWeb: Don't treat "--" as a valid custom property name
...
This is reserved for future use by CSS.
2025-06-25 17:09:29 +01:00
Tim Ledbetter
48f56cad08
LibWeb: Handle non-numeric font-weight values in keyframes
...
Previously, using `font-weight` with a keyword or `calc()` value inside
a keyframe rule would cause a crash.
2025-06-25 09:01:56 +02:00