Edwin Hoksberg
1be31c103f
LibWeb: Stub WebSerial API
2025-08-08 10:23:17 +02:00
Andreas Kling
34ec33d71c
LibWeb: Don't treat SVG "use clone" removals as "use source" removals
...
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
We were failing to discriminate between DOM removals happening to SVG
elements cloned as part of an SVG use element instantiation.
When a "use source" element is removed, all clones of that source must
be updated to reflect the change. But when a "use clone" element is
removed, that's fine.
This was causing the surprising disappearance of use element subtrees,
seen for example on https://cal.com/
2025-08-07 22:15:36 +02:00
Andreas Kling
42802b0785
LibWeb: SVG use element shadow roots should be closed, not open
...
This goes against the spec but matches all other browser engines.
2025-08-07 22:15:36 +02:00
Andreas Kling
1402c143a9
LibWeb: Add Internals.getShadowRoot(element)
...
This lets you access closed shadow roots from JavaScript, even though
they're not normally accessible to JavaScript. This can be used to poke
into UA shadow roots in tests.
2025-08-07 22:15:36 +02:00
Luke Wilde
59162342e6
LibWeb: Set LinkProcessingOptions' cryptographic_nonce_metadata
...
Fixes external CSS being blocked on https://beatsaver.com/ , where they
have a `style-src` directive set to `'self' 'nonce-[value]'`
Relates to #5643 , but does not make the website load.
2025-08-07 19:26:57 +02:00
Luke Wilde
40bb50ac60
LibWeb: Parse and propagate the iframe sandbox attribute
2025-08-07 19:24:39 +02:00
Jelle Raaijmakers
85ad99b98a
LibWeb: Implement <feMerge>
SVG filter
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-08-07 16:41:12 +02:00
Jelle Raaijmakers
1377dba7af
LibWeb: Implement <feOffset>
SVG filter
2025-08-07 16:41:12 +02:00
Sam Atkins
89b59cb5c3
LibWeb/CSS: Implement env() as an arbitrary substitution function
...
Technically, env() should not be an ASF. (😱 ) This is why some tests
still fail - env() as specced is expected to have its syntax checked
fully at parse-time, whereas ASFs are not properly syntax-checked until
later. However, I think this approach was worth doing for a few reasons:
- env() behaves like an ASF otherwise. (It is replaced with a set of
arbitrary component-values that are not known until computed-value
time.)
- env() was defined before the ASF concept existed, so I strongly
suspect it will be updated in the future to match that definition,
with a couple of adjustments. (eg, env() is allowed in some extra
places compared to var() and attr().)
- This was much quicker and easier to implement (under 3 hours in total)
compared to the greater amount of work to implement a whole separate
system just for env().
- Most of these tests are marked tentative, and the spec definition of
env() is still somewhat in flux, so failing some is not a huge deal.
If in the future I turn out to be wrong on this, we can convert it to
its own special thing.
2025-08-07 16:38:29 +02: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
Aliaksandr Kalenik
564003b22a
LibWeb: Mark width & height of grid item definite before inside layout
...
Lint Code / lint (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
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
Label PRs with merge conflicts / auto-labeler (push) Waiting to run
Push notes / build (push) Waiting to run
FFC expects parent formatting context to mark size as definite if that's
the case, because otherwise it cannot figure cross line size correctly.
Fixes incorrect alignment when FFC is nested in GFC.
Progress on https://web.telegram.org/a/ layout.
2025-08-07 09:34:16 +02:00
Jelle Raaijmakers
7162c73b6c
LibWeb: Add SVGUnitTypes
...
The empty `.h` is required since our generated bindings currently always
try to include one.
2025-08-06 23:05:56 -04:00
InvalidUsernameException
6c4483fe0e
LibWeb/CSS: Serialize mask shorthand-property properly
2025-08-06 23:09:07 +01:00
InvalidUsernameException
39b64c9b5c
LibWeb/CSS: Parse mask shorthand-property into longhands
...
This commit regresses a couple tests related to the mask shorthand
property. This is because we now parse the longhands but there are
errors related to serialization. Some of the failures are fixed again in
the next commit. However, for some animation tests this is not the case.
Those failures were simply masked by the fact that we did not parse the
property correctly.
2025-08-06 23:09:07 +01:00
InvalidUsernameException
5fca78e0f9
LibWeb/CSS: Parse mask-image property with multiple values
2025-08-06 23:09:07 +01:00
InvalidUsernameException
f953196cb4
LibWeb/CSS: Parse mask-clip property
2025-08-06 23:09:07 +01:00
InvalidUsernameException
eea6792cf7
LibWeb/CSS: Parse mask-origin property
2025-08-06 23:09:07 +01:00
InvalidUsernameException
866e12f688
LibWeb/CSS: Parse mask-size property
2025-08-06 23:09:07 +01:00
InvalidUsernameException
7c5f1a93ed
LibWeb/CSS: Parse mask-repeat property
2025-08-06 23:09:07 +01:00
InvalidUsernameException
667f195d1e
LibWeb/CSS: Parse mask-position property
2025-08-06 23:09:07 +01:00
InvalidUsernameException
d022eea9fc
LibWeb/CSS: Parse mask-mode property
2025-08-06 23:09:07 +01:00
InvalidUsernameException
22d7a58998
LibWeb/CSS: Parse mask-composite property
2025-08-06 23:09:07 +01:00
InvalidUsernameException
d51f46a0f7
Tests/LibWeb: Import tests for mask property and longhands
2025-08-06 23:09:07 +01:00
Callum Law
04ac06f3c4
LibWeb: Absolutize CursorStyleValues in StyleComputer::absolutize_values
2025-08-06 17:44:12 +01:00
Callum Law
c49afd7b28
LibWeb: Absolutize LengthPercentage members of BorderRadiusStyleValues
2025-08-06 17:44:12 +01:00
Callum Law
315f811d69
LibWeb: Absolutize BackgroundSizeSVs in StyleComputer::absolutize_values
2025-08-06 17:44:12 +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
ba4a57b34d
LibWeb: Absolutize StyleValueList in StyleComputer::absolutize_values
2025-08-06 17:44:12 +01:00
Callum Law
a2ceed27e2
LibWeb: Absolutize CalculatedSVs in StyleComputer::absolutize_values
2025-08-06 17:44:12 +01:00
Callum Law
a5cbcaf698
LibWeb: Use correct SerializationMode when serializing PercentageOr
2025-08-06 17:44:12 +01:00
Callum Law
a44e28fd56
LibWeb: Avoid premature creation of CSSPixels in calc simplification
...
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
Previously we were converting lengths to CSSPixels values when we didn't
need to, this had a couple of effects in that:
- We rounded to CSSPixel resolution prematurely (sometimes giving
incorrect results)
- We converted NaN to 0 when we shouldn't have.
We now avoid prematurely converting lengths to CSSPixels values in two
places:
- `CalculationResult::from_value`
- `CalculatedStyleValue::resolve_length_deprecated` (the new method
already avoided rounding).
Gains us 16 WPT tests.
2025-08-06 14:57:34 +01:00
Callum Law
3fa7bc1919
LibWeb: Simplify calc products including unresolved percentages
2025-08-06 14:53:22 +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
Idan Horowitz
aeb7b442d3
LibWeb: Add initial support for bitmap cropping to createImageBitmap
2025-08-04 23:39:11 +02: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
Sam Atkins
1a599ceb98
LibWeb/CSS: Reject @font-face
and margin rules that have a prelude
...
I couldn't find any WPT coverage for this, so here's a homemade test.
2025-08-04 10:50:09 +01:00
Tim Ledbetter
1d9e4a6f62
LibWeb: Parse anchor()
function for inset properties
2025-08-03 22:09:31 +02:00
Idan Horowitz
3b8ccf4d77
LibWeb: Add initial support for HTMLImageElement
in createImageBitmap
2025-08-03 21:47:48 +02:00
Idan Horowitz
9b11e0051c
LibWeb: Support ImageBitmapOptions's resize{Width,Height} fields
2025-08-03 21:47:48 +02:00
devgianlu
b4deae6abf
LibWeb/Crypto: Add JWK alg attribute to Ed{448,25519} keys
...
Spec PR: https://github.com/WICG/webcrypto-secure-curves/pull/34
2025-08-03 04:52:35 -07:00
devgianlu
3a8984b255
LibWeb/Crypto: Add raw key length checks to {Ed,X}{448,25519} key import
...
Following the spec update we finally can add these checks.
Spec PR: https://github.com/WICG/webcrypto-secure-curves/pull/35
2025-08-03 04:52:35 -07:00
Aliaksandr Kalenik
a41d586117
LibWeb: Merge FillPathUsingPaintStyle and FillPathUsingColor
...
Use `Variant<PaintStyle, Gfx::Color>` in new `FillPath` instead of
duplicating two almost identical display list items.
2025-08-03 10:42:33 +02:00
Glenn Skrzypczak
3dd8b3230e
LibWeb/HTML: Only include direction if dirname applies
...
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
Label PRs with merge conflicts / auto-labeler (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
Push notes / build (push) Waiting to run
This commit changes form data to only include the direction of auto
directionality form associated elements.
2025-08-02 18:27:35 +01: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
Michael Manganiello
e7654c2e08
LibWeb: Fix off-by-one offset error in NodeIterator forward traversal
...
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
As `node->parent()` was being called before comparing `node` with
`stay_within`, the code was incorrectly allowing traversal to the
parent node even when it should not have.
This change ensures that the parent is only checked after
confirming that the current node is not the `stay_within` node.
All `dom/traversal/NodeIterator.html` WPT tests get fixed after this
change.
2025-08-02 07:38:27 +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
4c91b42dd2
LibWeb: Use shortest serialization for repeated style list values
2025-08-01 15:18:17 +02:00