Tim Ledbetter
1c00279488
LibWeb: Reset Painter when resetting canvas to its initial state
2025-10-23 18:52:36 +02:00
Luke Wilde
85e8d2ba38
LibWeb/IndexedDB: Prevent copying and moving of RequestList
...
RequestList cannot be copied or moved, because m_pending_request_queue
contains lambdas that store pointers to the original RequestList and
completion steps that we don't have a reference to.
Fixes a bunch of WPT regressions and imports the ones that work.
2025-10-23 14:42:45 +02:00
Jelle Raaijmakers
9753b8e62c
Tests: Import WPT canvas repeating pattern test
2025-10-23 13:20:03 +01:00
mikiubo
5b2a71a712
LibWeb: Implement XMLFragmentParser
...
Implement XMLFragmentParser based on the specification:
https://html.spec.whatwg.org/multipage/xhtml.html
Fixes one WPT in:
domparsing/insert_adjacent_html-xhtml.xhtml
2025-10-23 11:06:39 +01:00
Callum Law
fd2f3b1f03
Tests: Import transition parsing tests
2025-10-23 10:09:11 +01:00
Callum Law
1977a976da
LibWeb: Handle inaccuracies resolving transformation matrix type
...
Doing trigonometric calculations with floating point numbers can
introduce small inaccuracies. This meant that we would sometimes
incorrectly generate a 3d rather than 2d matrix for the resolved value
of `transform`.
Gains us 3 WPT tests.
2025-10-23 09:34:12 +01:00
Tim Ledbetter
2fd424ccb6
LibWeb: Draw canvas arcs and ellipses correctly when radius is zero
...
In this case, we should just draw a line from the last point in the
path to the start point. Previously, a division by zero caused nothing
to be drawn.
2025-10-22 16:08:57 +02:00
Tim Ledbetter
976912f3e9
LibWeb: Normalize negative drawImage() source/destination dimensions
2025-10-22 12:29:04 +02:00
Tim Ledbetter
c4e56cc845
LibWeb: Throw error when calling drawImage() with a broken image
2025-10-22 10:44:58 +02:00
Tim Ledbetter
f1571c4217
LibWeb: Ensure drawImage() always uses the first image frame
2025-10-22 01:25:46 +02:00
Tim Ledbetter
7db73118e9
LibWeb+LibGfx: Draw shadows for stroke joins and caps
2025-10-21 18:55:08 +02:00
Tim Ledbetter
0f295e8989
LibWeb: Take transforms into account when drawing shadows
2025-10-21 18:55:08 +02:00
Tim Ledbetter
0516c414d4
LibWeb: Don't draw shadows for transparent gradient fills
2025-10-21 18:55:08 +02:00
Tim Ledbetter
13f551612c
LibWeb: Don't draw shadows if shadow offset and blur are not set
2025-10-21 18:55:08 +02:00
Tim Ledbetter
eb44cca5bd
LibWeb: Ignore non-finite shadow offset values
2025-10-21 18:55:08 +02:00
Tim Ledbetter
b99c0c6a7f
LibWeb: Account for paint style and global alpha when drawing shadows
2025-10-21 18:55:08 +02:00
Tim Ledbetter
494fcc40ac
LibWeb: Account for transforms in isPointInPath()
2025-10-21 17:42:28 +02:00
Tim Ledbetter
d3ca038b2c
LibWeb: Ensure putImageData() is unaffected by drawing state
2025-10-21 09:52:16 +02:00
Tim Ledbetter
2ac4544a81
LibWeb: Align CanvasRenderingContext2D::putImageData() with the spec
...
This change implements `putImageData()` with `dirtyX`, `dirtyY`,
`dirtyWidth` and `dirtyHeight` arguments.
2025-10-21 09:52:16 +02:00
Callum Law
85239fb1da
Tests: Import tree-counting function WPT tests
2025-10-20 16:12:08 +01:00
Sam Atkins
c619c90e23
Tests: Import some @property tests
2025-10-20 13:55:23 +01:00
Tim Ledbetter
08641c9e15
LibWeb: Ensure CanvasPath::arc() nonfinite radius argument is ignored
2025-10-20 12:12:16 +01:00
Tim Ledbetter
303ebc0a67
LibWeb: Ignore non-finite arguments to canvas text drawing methods
2025-10-20 12:12:16 +01:00
Callum Law
4c97b336c3
Tests: Import timing function tests
2025-10-20 11:27:44 +01:00
ljamar
7fb65283c2
LibWeb: Ignore non-finite args in CanvasRenderingContext2D::clear_rect()
2025-10-17 17:41:58 +01:00
Callum Law
fb64be2f78
Tests: Import some css-shapes tests
2025-10-17 11:10:05 +01:00
Tim Ledbetter
24a7eac4ab
LibWeb: Delay module script execution until current script has ended
2025-10-16 16:46:48 +02:00
Lorenz A
e73e0b3c92
LibWeb: Implement CSS decode bytes algo
2025-10-16 16:44:42 +02:00
Tim Ledbetter
b08ecc0cd1
Tests: Update WPT color parsing tests
2025-10-15 18:40:48 +02:00
mikiubo
d4df0e1db9
LibWeb: Make Event.currentTarget return WindowProxy instead of Window
...
Make WindowProxy implement the EventTarget interface. Add a new method
current_target_for_bindings() that returns a WindowProxy object instead
of directly exposing the Window object.
These changes fixes several WPT tests that contain `window ===
currentTarget`.
2025-10-15 15:36:34 +02:00
Sam Atkins
65ba5acf9d
Tests: Import @property { syntax } parsing test
...
This gets some extra passes with the next commit.
2025-10-14 13:41:47 +01:00
ayeteadoe
05f3bd0fa8
Tests/LibWeb: Import several scaling createImageBitmap() tests
2025-10-14 12:19:33 +02:00
Tim Ledbetter
0bdb831c68
LibWeb: Avoid null dereference in ListItemBox specified content check
2025-10-14 10:27:11 +01:00
Tete17
460ffcbe1d
LibWeb: Add new passing WPT tests
2025-10-13 13:22:01 +01:00
Tim Ledbetter
701ef22952
LibWeb: Use correct percentage basis when resolving line height
2025-10-13 10:17:58 +01:00
Tim Ledbetter
1a640b1d95
LibWeb: Avoid crash when shadow root has null focused area
2025-10-12 22:50:12 +01:00
Timothy Flynn
e57176b484
LibWebView: Move headless clipboard management to LibWebView
...
We only supported headless clipboard management in test-web. So when WPT
tests the clipboard APIs, we would blindly try to access the Qt app,
which does not exist.
Note that the AppKit UI has no such restriction, as the NSPasteboard is
accessible even without a GUI.
2025-10-10 15:10:03 -04:00
lukasxcs
c1ff2a845c
LibWeb: Implement DataTransfer.set_data()
2025-10-10 08:02:16 +01:00
Sam Atkins
f61c67792d
LibWeb/CSS: Allow setting shorthand values with StylePropertyMap.set()
...
Shorthands should be broken up into their longhands, instead of setting
them directly.
There's a catch here with our "positional value list shorthands" like
`margin`: Setting margin to a single value like `CSSUnitValue(10, "px")`
is supposed to fail here, but our type-checking code thinks it's valid
because our JSON for `margin` says it accepts lengths. This is the same
kind of issue that we had for `cursor` discussed in the
"LibWeb/CSS: Support converting CSSUnitValue to a StyleValue" commit.
Will get us a few subtest passes for every shorthand that's tested.
2025-10-09 16:14:58 +02:00
Sam Atkins
bd545af210
LibWeb/CSS: Support calculated percentages in line-height
...
Without this, the imported test will crash once we implement
`CSSUnitValue::create_an_internal_representation()`.
2025-10-09 16:14:58 +02:00
Callum Law
0bf6014001
Tests: Import css corner-shape tests
2025-10-09 10:23:20 +01:00
Tim Ledbetter
03fa367d9d
LibWeb: Parse the anchor-scope property
2025-10-07 11:30:23 +01:00
Tim Ledbetter
85a15ea1d4
LibWeb: Parse the position-visibility value
2025-10-07 11:30:23 +01:00
Tim Ledbetter
47966ed589
LibWeb: Parse the position-try-order property
2025-10-07 11:30:23 +01:00
Tim Ledbetter
2bde14b148
LibWeb: Parse the position-try-fallbacks property
2025-10-07 11:30:23 +01:00
Tim Ledbetter
27cdf3a2c8
LibWeb: Parse the position-anchor property
2025-10-07 11:30:23 +01:00
Tim Ledbetter
7374a07fbc
LibWeb: Parse the anchor-name property
2025-10-07 11:30:23 +01:00
Callum Law
e675b95f51
LibWeb: Add absolutized method to OpenTypeTaggedStyleValue
2025-10-07 10:50:01 +01:00
Callum Law
05c336ea4e
LibWeb: Use document's viewport when resolving lengths in media queries
...
Previously we would always use the window's viewport which was incorrect
if we were within an iframe.
This is likely applicable to all uses of
`Length::ResolutionContext::for_window`.
2025-10-07 10:32:59 +01:00
Tim Ledbetter
51ea4a7e2a
LibWeb: Align position-area values with the specification
...
This change renames the following `position-area` values:
x-self-start -> self-x-start
x-self-end -> self-x-end
y-self-start -> self-y-start
y-self-end -> self-y-end
span-x-self-start -> span-self-x-start
span-x-self-end -> span-self-x-end
span-y-self-start -> span-self-y-start
span-y-self-end -> span-self-y-end
2025-10-05 15:48:21 +01:00