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
Callum Law
536f8c395c
LibWeb: Set numeric type of asin, acos, atan calculation results
...
Previously we were omitting the numeric type which meant these functions
weren't valid in some cases e.g. within rotate() functions.
2025-06-25 05:19:07 +01:00
Tim Ledbetter
1c2b6ae03e
LibWeb: Don't attempt to set the frozen base url on a null base element
2025-06-25 01:33:45 +12:00
Sam Atkins
8b6c32e3ab
Tests: Import tests for scrollParent() and offsetParent()
2025-06-24 15:26:35 +02:00
Callum Law
6584ae0080
LibWeb: Treat CSS selectors containing undeclared namespaces as invalid
...
Selectors containing undeclared namespaces should be considered invalid,
not just not matching any elements.
Gains us 3 new WPT passes.
2025-06-24 12:51:12 +01:00
Tim Ledbetter
b46378085d
LibWeb: Absolutize keyframe values before interpolating
2025-06-24 12:36:47 +01:00
Callum Law
34a52baeed
LibWeb: Add generic functionality for logical alias computed values
2025-06-23 15:19:07 +01:00
Callum Law
cfc8d3031b
LibWeb: Map logical aliases at cascade time
...
Previously we would incorrectly map these in
`CSSStyleProperties::convert_declarations_to_specified_order`, aside
from being too early (as it meant we didn't maintain them as distinct
from their physical counterparts in CSSStyleProperties), this meant
that we didn't yet have the required context to map them correctly.
We now map them as part of the cascade process. To compute the mapping
context we do a cascade without mapping, and extract the relevant
properties (writing-direction and direction).
2025-06-23 15:19:07 +01:00
Callum Law
80ea865b19
LibWeb: Use correct error for invalid rule in nested insertRule
...
When we try to insert a disallowed (non-nested) statement into a
CSSGroupingRule we should throw a `HierarchyRequestError` as it being
disallowed is a "constraint specified by CSS". Previously we would rely
on `Parser::is_valid_in_the_current_context` and throw a Syntax error.
There are more constraints to be implemented.
2025-06-23 12:52:40 +01:00
Tim Ledbetter
689dff3ee8
Tests: Synchronize imported tests with the WPT repository
2025-06-22 23:51:34 +02:00
Aliaksandr Kalenik
7b077595c3
Tests: Reimport css/css-grid/parsing/grid-template-columns-computed.html
...
Sync this test with upstream WPT where they added a new subtest in this
file.
2025-06-21 22:07:08 +02:00
Tim Ledbetter
07b3b70a10
LibWeb: Return the correct computed value for opacity properties
2025-06-19 10:27:35 +02:00
Tim Ledbetter
269d5bb40e
LibWeb: Resolve percentages for opacity properties at parse time
2025-06-19 10:27:35 +02:00
Tim Ledbetter
e0af205d69
LibWeb/CSS: Implement the empty-cells property
...
This property sets whether table borders and backgrounds are painted
if a given table cell has no visible content.
2025-06-18 14:55:03 +01:00
Tim Ledbetter
c5a3eaaf45
LibWeb: Allow calc() values in steps() easing functions
2025-06-18 08:57:06 +02:00
Veeti Paananen
21b531598d
LibWeb/CSS: Fix reference bug when canonicalizing linear easing stops
...
+2 WPT tests
2025-06-18 08:53:10 +02:00
Tim Ledbetter
701fcb9e87
LibWeb: Allow anonymous layer block rule with no declarations
2025-06-17 08:58:00 +01:00
Tim Ledbetter
30cdacc05a
LibWeb: Add flow relative values for the clear property
...
Currently `inline-start` and `inline-end` are always treated as `left`
and `right` respectively.
2025-06-17 09:26:26 +02:00
Tim Ledbetter
28b24b72bc
LibWeb: Don't resolve flow-relative values for float too early
...
This allows `getComputedStyle()` to return the correct value if `float`
is set to `inline-start` or `inline-end`
2025-06-17 09:26:26 +02:00
Callum Law
f8f4da3b90
LibWeb: Don't serialize shorthand with non-uniform CSS-wide keywords
2025-06-16 12:37:40 +01:00
Tim Ledbetter
d89a67ffee
LibWeb: Don't serialize omitted box-shadow and text-shadow values
2025-06-15 16:05:12 +02:00
Tim Ledbetter
a8d5758777
LibWeb: Only resolve transform-origin keywords for the computed value
...
Previously, we were resolving these keywords at parse time, which gave
an incorrect serialization of the specified value.
2025-06-15 16:01:54 +02:00
Tim Ledbetter
a3f6e71e33
LibWeb/CSS: Disallow third argument in 2D scale functions
2025-06-15 15:59:02 +02:00
Tim Ledbetter
39cef6eeb5
LibWeb: Disallow default as a keyframe name
2025-06-14 17:56:10 -04:00
Tim Ledbetter
028bcd3d67
LibWeb/CSS: Backtrack the parser if a property does not accept a value
2025-06-14 08:22:56 +02:00