Sam Atkins
7b30c94fcf
LibWeb+CodeGenerators: Generate EnvironmentVariable enum and functions
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
Sam Atkins
24f4356c3f
LibWeb/CSS: Specify behavior for OOB CSSStyleDeclaration::item()
...
Corresponds to 56ed462ccd
We already did the right thing.
2025-08-07 14:29:17 +02: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
Timothy Flynn
1bc80848fb
AK+LibWeb: Add a UTF-16 starts/ends with wrapper for a single code unit
2025-08-07 02:05:50 +02:00
Luke Wilde
4aa355658f
LibWeb/CSP: Implement the base-uri directive
2025-08-07 00:45:31 +02:00
Luke Wilde
febe4fdb46
LibWeb/CSP: Implement the frame-ancestors directive
2025-08-07 00:45:31 +02:00
Luke Wilde
f9247116b1
LibWeb/CSP: Implement the form-action directive
2025-08-07 00:45:31 +02: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
add3a095d8
LibWeb/CSS: Rename background-repeat related symbols to align with spec
...
These will be used for the mask-repeat property as well in an upcoming
commit, hence the more generic names. Also, this more closely matches
the names used in the spec.
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
Aliaksandr Kalenik
e3aa3016bf
LibWeb: Correctly calculate grid item size while accommodating fr track
...
Implements text from grid layout specification.
Improves layout on https://cal.com/
2025-08-06 22:42:07 +02: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
c8bd58c0ba
LibWeb: Add method to absolutize CalculatedOr
2025-08-06 17:44:12 +01:00
Callum Law
0df9c225aa
LibWeb: Add method to absolutize PercentageOr
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
9db3c66a85
LibWeb: Use correct font size when absolutizing animated properties
2025-08-06 17:44:12 +01:00
Callum Law
011ab5f714
LibWeb: Use correct SerializationMode when serializing CalculatedOr
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
Andreas Kling
74722cc499
LibWeb: Use the soon-to-be hovered element for tooltip notifications
...
Instead of the currently hovered element.
2025-08-06 17:26:18 +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
Jelle Raaijmakers
cd1cf75f7b
LibWeb: Unbreak SVGFilterElement compilation
...
This was caused by an undetected merge conflict.
2025-08-06 15:47:44 +02: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
Jelle Raaijmakers
3d613a2ac4
LibWeb: Simplify SVGFilterElement::gfx_filter()
...
No functional changes.
2025-08-06 14:00:31 +01:00
Jelle Raaijmakers
400a36aac1
LibWeb: Warn about unknown SVG filters
...
This might give some debug noise, but it's better than remaining silent.
2025-08-06 14:00:31 +01:00
Andreas Kling
28c1dd551b
LibWeb: Don't let aspect-ratio influence size definiteness
...
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
As it turns out, we still have to let the formatting contexts do a bit
of layout work in order to correctly apply the aspect-ratio. Hence we
can't just implicitly transfer definiteness from one size to the other.
This is a revert of 1cfd8b3ac0 .
2025-08-05 21:33:41 +02:00
Andreas Kling
41e8211405
LibWeb: Honor "should treat as auto" cases in aspect-ratio decisions
2025-08-05 21:33:41 +02:00
Aliaksandr Kalenik
7a34bc2700
LibWeb: Re-evaluate media queries only when things they depend on change
...
Before this change we were re-evaluating media queries on every frame
which adds up in 1-4% in profiles on Discord.
2025-08-05 17:24:34 +02:00
Timothy Flynn
04d32deb52
LibWeb: Port SVGFormattingContext to UTF-16
2025-08-05 15:13:36 +02:00
Timothy Flynn
2dc0a3b3ce
AK: Add trim methods to Utf16String that skip allocation when not needed
...
If the string does not begin with any of the provided code units, we do
not need to create a new string.
2025-08-05 15:13:36 +02:00
Timothy Flynn
0efa98a57a
LibJS+LibWeb+WebContent: Port JS::PropertyKey to UTF-16
...
This has quite a lot of fall out. But the majority of it is just type or
UDL substitution, where the changes just fall through to other function
calls.
By changing property key storage to UTF-16, the main affected areas are:
* NativeFunction names must now be UTF-16
* Bytecode identifiers must now be UTF-16
* Module/binding names must now be UTF-16
2025-08-05 07:07:15 -04:00
Callum Law
a70a397501
LibWeb: Support percentages in word-spacing
...
Fixes crash in the created test as well as https://wpt.live/css/css-text
/word-spacing/reference/word-spacing-percent-001-ref.html. The WPT test
hasn't been imported as it passing is currently a false-positive due to
the fact that we don't yet respect `word-spacing` in most cases.
2025-08-05 11:43:55 +01:00
Andreas Kling
b60d465029
LibWeb: Defer updating hovered node until end of mouse event handling
...
Updating the hovered node may fire events, and so we can't assume the
layout and paintable nodes we've found via hit testing will be valid
after doing it.
2025-08-05 11:29:45 +02:00
Andreas Kling
7e06906157
LibWeb: Use GC::Ptr more instead of raw pointers in EventHandler
...
Gives us nicer stack traces in debug builds.
2025-08-05 11:29:45 +02:00
Idan Horowitz
b0fdbe3756
LibCrypto: Convert UnsignedBigInteger::import_data to accept Bytes
...
All the callers are already using Bytes and manually converting to the
old style pointer + length when calling this API.
2025-08-05 09:08:56 +02:00
Idan Horowitz
660a499223
LibCrypto: Convert UnsignedBigInteger::export_data to return a span
...
This helps make callers only use the slice of the output buffer that
was written to.
As part of updating the callers of the API several bugs were fixed and
useless code paths were removed:
- The exported data is not host-endianess dependent (always big endian)
- The exported data does not contain leading zeros
- The output buffer is only written up to the result's size
2025-08-05 09:08:56 +02:00