Sam Atkins
202c55bf28
LibWeb/CSS: Implement the :state(foo)
pseudo-class
...
This matches custom elements that have `foo` in their custom states set.
The 2 test failures here are because we don't support `::part()` yet.
2025-07-04 18:10:28 +01:00
Sam Atkins
b6ffea8990
LibWeb: Give Element a CustomStateSet, exposed by ElementInternals
2025-07-04 18:10:28 +01:00
Sam Atkins
e63d81b36e
LibWeb: Add CustomStateSet IDL type
2025-07-04 18:10:28 +01:00
Psychpsyo
93ae57114d
LibWeb: Stop clipping the root element's background
2025-07-04 16:18:57 +01:00
Tim Ledbetter
5413716802
LibWeb: Don't crash when setting offscreen canvas size to 0
...
Previously, this would crash because `Gfx::Bitmap` can't have a zero
size.
2025-07-04 16:10:38 +01:00
Gingeh
1b7323fc2d
LibWeb: Interpolate legacy colors in sRGB
2025-07-04 15:28:08 +01:00
Callum Law
778759517e
LibWeb: Support calc
s which resolve to numbers as hue values in colors
...
Gains us 5 new WPT tests.
2025-07-04 13:18:55 +01:00
Callum Law
9ab7c5d08d
LibWeb: Support relative lengths in calc
color values
...
Gains us ~40 WPT tests.
2025-07-04 13:18:55 +01:00
Ryan Liptak
1fd0bf9feb
LibWeb: Add simple named character reference test to TestHTMLTokenizer
2025-07-04 11:57:19 +02:00
ayeteadoe
f737ec2570
CMake: Rename SERENITY_* helper variables to LADYBIRD_*
CI / macOS, arm64, Sanitizer_CI, Clang (push) Waiting to run
CI / Linux, x86_64, Fuzzers_CI, Clang (push) Waiting to run
CI / Linux, x86_64, Sanitizer_CI, GNU (push) Waiting to run
CI / Linux, x86_64, Sanitizer_CI, 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-03 23:19:41 +02:00
ayeteadoe
25f5936dee
CMake: Rename serenity_* helper functions/macros to ladybird_*
2025-07-03 23:19:41 +02:00
Jelle Raaijmakers
c03210e858
LibWeb: Dump PaintableBox dimensions for inline layout nodes
...
We were only dumping a PaintableBox' dimensions if its layout node was a
Layout::Box as well, causing us to not dump the dimensions of paintables
for inline nodes in the paintable tree.
2025-07-03 22:16:48 +02:00
Aliaksandr Kalenik
5874b7a76f
LibWeb: Skip update_associated_selection()
when there's no selection
...
This change fixes at least two issues:
- `update_associated_selection()` is responsible for selectionchange
dispatch, and we were incorrectly dispatching this event on ranges
that were not associated with a selection.
- `Range::get_client_rects()` was using `update_associated_selection()`
to refresh the selection state in the paintable tree for the current
range, but since a range might not be associated with a selection,
this could make the painted selection reflect the state of an
arbitrary range instead of the actual selection range.
Fixes a bug on Discord where any text typed into the message input would
get selected.
2025-07-03 22:16:39 +02:00
Shannon Booth
c63e77142a
Tests/LibWeb: Import webstorage symbol-props WPT test
...
I noticed a subtest in this test failing along with every
other browser. After investigation, the failure was due
to testing the previous specification before:
3fb6ab4
So this imports the now adjusted WPT test as of:
bb3f032
2025-07-03 12:45:31 +01:00
Sam Atkins
994bbcaa75
LibWeb/Painting: Don't paint invisible paintables
...
This check technically isn't necessary in
`SVGForeignObjectPaintable::paint()` because
`PaintableWithLines::paint(context, phase);` does the check already, but
I've added it there anyway to save some debugging time if someone does
add more code there. :^)
2025-07-03 12:39:05 +02:00
Tim Ledbetter
6ee91c4189
LibWeb: Use correct previous word location when moving selection offset
...
Previously, this incorrect offset could cause a crash when moving the
selection to the previous word.
2025-07-03 10:28:38 +01:00
Jelle Raaijmakers
1eb581815a
Tests: Unskip selection-over-multiple-code-units.html
test
...
The flake was reproducible by running the entire LibWeb test suite over
and over again with sanitizers enabled. By making the test async and run
at window `load` time instead of document `DOMContentLoaded` time, I've
not been able to reproduce the issue locally.
Ideally I was able to find the underlying cause for this bug, but for
now I'd rather run this regression test.
2025-07-03 10:27:39 +01:00
Tim Ledbetter
923deb0c01
LibWeb: Parse border-image
shorthand property
2025-07-03 10:19:44 +01:00
Tim Ledbetter
c0390f759c
LibWeb: Parse the border-image-repeat
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
af60e36122
LibWeb/CSS: Don't remove whitespace early when parsing descriptor values
CI / macOS, arm64, Sanitizer_CI, Clang (push) Waiting to run
CI / Linux, x86_64, Fuzzers_CI, Clang (push) Waiting to run
CI / Linux, x86_64, Sanitizer_CI, GNU (push) Waiting to run
CI / Linux, x86_64, Sanitizer_CI, 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-03 08:22:30 +01:00
Tim Ledbetter
9d1373de86
Tests/LibWeb: Import unicode range parsing test from WPT
2025-07-03 08:22:30 +01:00
Tim Ledbetter
8fce09f521
Tests: Replace background-near-zero-svg
test with WPT import
2025-07-02 18:44:21 +02:00
Tim Ledbetter
a959d4dca2
test-web: Match WPT runner reftest-wait
behavior
...
When a test has a `reftest-wait` class, we now wait for fonts to load
and then for 2 `requestAnimationFrame` callbacks. This matches the
behavior of the WPT runner and allows more imported WPT tests to work
correctly.
2025-07-02 18:44:21 +02:00
Sam Atkins
c7166527ce
LibWeb/Painting: Keep alpha for inset/outset border colors
...
Also return the original color when needed, instead of reconstructing it
from HSV.
2025-07-02 15:11:04 +02:00
Gingeh
fa410a67d9
LibWeb: Don't crash with near-zero background sizes
2025-07-02 11:45:34 +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
b8f78e3bc1
LibWeb: Don't crash with invalid transform-origin values
CI / macOS, arm64, Sanitizer_CI, Clang (push) Waiting to run
CI / Linux, x86_64, Fuzzers_CI, Clang (push) Waiting to run
CI / Linux, x86_64, Sanitizer_CI, GNU (push) Waiting to run
CI / Linux, x86_64, Sanitizer_CI, 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-01 14:19:10 +01:00
Gingeh
0e3386bb4c
LibWeb: Throw SyntaxError when FontFaceSet contains var
2025-07-01 11:50:05 +01:00
Gingeh
863092afdc
LibWeb: Don't crash with non-<col> table-column
2025-07-01 11:18:14 +02:00
Tim Ledbetter
5b522c096e
LibWeb: Add border-*-radius
logical properties
2025-07-01 11:16:37 +02:00
Shannon Booth
02e6618554
Tests: Disable flaky selection-over-multiple-code-units test
...
CI / macOS, arm64, Sanitizer_CI, Clang (push) Waiting to run
CI / Linux, x86_64, Fuzzers_CI, Clang (push) Waiting to run
CI / Linux, x86_64, Sanitizer_CI, GNU (push) Waiting to run
CI / Linux, x86_64, Sanitizer_CI, 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
This is flaky in CI.
2025-07-01 03:42:28 +01:00
Tim Ledbetter
844dcd3310
LibWeb: Ignore non-finite OffscreenCanvas
shadow offset values
2025-07-01 13:53:27 +12:00
Tim Ledbetter
7724a96efa
LibWeb: Don't expose XMLHttpRequest.responseXML
in workers
2025-07-01 01:03:58 +02:00
Andreas Kling
b3d9e39bad
LibWeb: Avoid infinite loop in HTMLElement.scrollParent
...
CI / macOS, arm64, Sanitizer_CI, Clang (push) Waiting to run
Push notes / build (push) Waiting to run
CI / Linux, x86_64, Fuzzers_CI, Clang (push) Waiting to run
CI / Linux, x86_64, Sanitizer_CI, GNU (push) Waiting to run
CI / Linux, x86_64, Sanitizer_CI, 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
Build Dev Container Image / build (push) Has been cancelled
We were failing to actually climb up the containing block chain,
causing this API to infinite loop for anything but the most
trivial cases.
By fixing the loop structure, we also make a bunch of the already
imported WPT tests pass. :^)
2025-06-30 20:38:21 +01:00
ayeteadoe
8d1c860fcd
LibWeb: Add OffscreenCanvas to ImageBitmap invalid-types-no-crash test
2025-06-30 12:35:54 -06:00
Bastiaan van der Plaat
1a7932601a
IDLGenerators: Fix Exposed extended attribute codegen
2025-06-30 11:39:16 -06:00
ayeteadoe
81ccb655b4
LibWeb: Implement HTML::ImageBitmap creation from HTML::ImageData
2025-06-30 10:07:28 -06:00
Totto16
8404df55d8
LibWeb: Add OffscreenCanvas tests
...
The tests cover working in Worker and some basic functionality
2025-06-30 09:46:21 -06:00
Totto16
2ad3ce5d37
LibWeb: Implement basics for OffscreenCanvas
...
This implements the basic interface, classes and functions for
OffscreenCanvas. Many are still stubbed out and have many FIXMEs in
them, but it is a basic skeleton.
2025-06-30 09:46:21 -06: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
04a3a227c3
LibWeb: Add the border-inline-*
shorthand properties
2025-06-30 14:52:18 +02:00
Tim Ledbetter
90da2f5418
LibWeb: Add the border-block-*
shorthand properties
2025-06-30 14:52:18 +02:00
Callum Law
2eb44229b4
LibWeb: Implement Selection.modify
2025-06-30 10:44:32 +01:00
Tim Ledbetter
ac25f47e8f
LibWeb/SVG: Disallow negative stroke-dasharray
values
CI / macOS, arm64, Sanitizer_CI, Clang (push) Waiting to run
CI / Linux, x86_64, Fuzzers_CI, Clang (push) Waiting to run
CI / Linux, x86_64, Sanitizer_CI, GNU (push) Waiting to run
CI / Linux, x86_64, Sanitizer_CI, 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-06-27 23:00:13 +02:00
Tim Ledbetter
0c8a90166f
LibWeb/SVG: Disallow negative values for SVG radius properties
CI / Linux, x86_64, Sanitizer_CI, GNU (push) Waiting to run
CI / macOS, arm64, Sanitizer_CI, Clang (push) Waiting to run
CI / Linux, x86_64, Fuzzers_CI, Clang (push) Waiting to run
CI / Linux, x86_64, Sanitizer_CI, 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-06-27 22:16:42 +02:00
Tim Ledbetter
68035a2b8d
LibWeb/CSS: Add the text-rendering
property
2025-06-27 16:51:30 +01:00
Shannon Booth
20d369b96d
LibWeb/HTML: Implement the exception checks for Document.domain setter
2025-06-27 18:45:48 +12:00