Callum Law
826e947920
LibWeb: Propagate 'auto' value of animation-duration
...
Avoids a crash when `animation-duration` was `auto`
2025-11-28 13:24:11 +00:00
Callum Law
46abc0e8e2
LibWeb: Handle calc in multi-argument rotate property interpolation
...
Previously we assumed the angle would always be an `AngleStyleValue` but
it can also be a `CalculatedStyleValue`
Fixes #6870
2025-11-23 09:43:24 +01:00
Psychpsyo
556699d601
LibWeb: Prevent view transition crashes due to lack of execution context
2025-11-19 10:58:29 -05:00
Callum Law
ec14948175
LibWeb: Handle calc percentages when interpolating scale function
...
Also clean up the corresponding handling in
TransformationStyleValue::to_transformation
2025-11-16 22:50:01 +01:00
Timothy Flynn
1d4f431eb4
LibWeb: Add a crash test for re-importing throwing cyclic modules
...
There was a crash in JS::CyclicModule::evaluate due to a spec bug that
we worked around years ago (1dc9769f7d ).
This bug has now been fixed in ECMA-262. This adds a regression crash
test to ensure we don't crash still after implementing that fix, as this
is really only reachable from an embedder.
2025-11-13 14:05:18 +01:00
Callum Law
cfc22a4075
LibWeb: Dont try to transition custom properties
...
Fixes a crash introduced in dd9d6d2
2025-11-11 07:53:41 +00:00
Tim Ledbetter
74940726d0
LibWeb: Add an Internals method to dump the GC graph
2025-11-04 10:34:43 +01:00
InvalidUsernameException
35254d17d1
LibWeb/CSS: Do not crash when parsing some multi-layer mask shorthands
...
This fixes a silly bug where we would crash when parsing a multi-layer
mask shorthand property that contained the no-clip keyword but no value
for mask-origin.
Fixes a crash when parsing the CSS of https://www.browserbase.com/ . The
site still has other, unrelated problems though.
2025-10-28 23:50:46 -07:00
Zaggy1024
d9e663fc44
Tests: Add a crash test for setting HTMLMediaElement src repeatedly
2025-10-27 17:28:49 -07:00
Timothy Flynn
2a68087dfc
LibWeb: Do not assume hovered URLs are valid
...
Let's just not display any tooltip for invalid URLs. This matches how
Firefox behaves.
2025-10-27 14:15:03 +00:00
caztanj
e93f44112d
LibJS: Do not verify cycle root's status is linked in CyclicModule
...
This VERIFY is both incorrect and redundant. The VERIFY at step 2
verifies the status when evaluate is called on m_cycle_root.
2025-10-22 11:54:56 +02:00
Callum Law
b1801c0bc9
LibWeb: Avoid crash evaluating media query in document lacking window
...
In some cases a document may lack an associated window - to fix this for
now we just return false but perhaps there are some media queries we
should still attempt to resolve.
2025-10-17 18:24:59 +02:00
Callum Law
2af071380e
LibWeb: Dont load a style sheet's fonts until it has an owning document
...
We need a style sheet to have an owning document to load it's fonts (to
generate a length resolution context).
Fixes #6445
2025-10-16 10:27:32 +01:00
Callum Law
3708fc6aa7
LibWeb: Resolve relative lengths in @font-face using correct viewport
...
As with everywhere else we should be using the document rather than the
window's viewports.
Fixes #6467
2025-10-16 10:27:32 +01:00
Tim Ledbetter
1a640b1d95
LibWeb: Avoid crash when shadow root has null focused area
2025-10-12 22:50:12 +01:00
Callum Law
2c7b56511b
LibWeb: Add absolutized method to CounterDefinitionsStyleValue
...
This avoids a crash when a counter value relies on relative units
2025-10-07 10:50:01 +01:00
Callum Law
eeb3890ad7
LibWeb: Resolve stroke-dasharray percentages as lengths
...
Fixes a crash on https://collabskus.github.io/
2025-10-07 10:19:26 +01:00
Johannes Gustafsson
e9e58d83b3
LibWeb: Add WPT tests related to XPath evaluation
2025-10-03 13:16:11 +02:00
Tim Ledbetter
551c7f966b
LibWeb: Use correct root element when resolving paint properties
...
Previously, the first `HTMLHtmlELement` in the given document would
always be used when determining whether to propagate background
properties to the body element. This meant the wrong root element was
used for SVG `foreignObject` elements, which could lead to a crash.
2025-09-10 11:35:02 +02:00
Psychpsyo
905e749575
LibWeb: Use correct style rule index in view transitions
...
This used to crash a lot of attempted view transitions, now it
doesn't anymore.
2025-09-09 12:50:09 +01:00
Jelle Raaijmakers
d87b3030a7
LibWeb: Prevent creation of new UsedValues for nested inline nodes
...
In LayoutState, used_values_per_layout_node should not be modified in
order to determine inline nodes' dimensions - all the required values
should already be in there. In 2585f2da0d
we did accidentally create new values, causing the code further down to
try and get a PaintableBox from an anonymous container and crashing.
Fixes #6015 .
2025-08-28 22:38:15 +02:00
Callum Law
d69e62425e
LibWeb: Resolve CSS-wide keywords in keyframe properties
...
Also resolves the `revert` keyword against longhand properties rather
than potential shorthands as this could cause a crash.
Gains us 20 WPT tests.
2025-08-27 14:50:58 +02:00
Andreas Kling
3873b1d8cf
LibWeb: Create XML document object for SVG-as-image
...
It's not enough to just use the XML parser, we also have to make sure
the DOM document we produce is an actual XML document.
Fixes #5966
2025-08-23 14:01:37 +01:00
Callum Law
71b039a721
LibWeb: Use document's global object in is_base_allowed_for_document
...
Previously we were using the document's window - this was both contrary
to spec and causing crashes when the document did not have a window (for
instance the `temp_document` in `HTMLParser::parse_html_fragment`.
This means we no longer crash when navigating between pages on
https://rocketlabcorp.com
2025-08-16 14:19:05 +02:00
Sam Atkins
7ec374c74c
Tests: Import tests for CSS typed OM
...
This is everything except some failing ref-tests, and
`css/css-typed-om/the-stylepropertymap/properties/*` because importing
a test for every property feels excessive.
2025-08-13 09:47:50 +01: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
Tim Ledbetter
1263d58689
LibWeb: Ignore zero width when calculating SVG intrinsic aspect ratio
...
Previously, an SVG with width of zero would have am intrinsic aspect
ratio of zero. With this change, if an SVG has a width or height of
zero, the intrinsic aspect ratio is determined by the SVG's viewbox.
2025-07-21 11:29:25 +02:00
Gingeh
28774efa22
LibWeb: Don't crash when drawing null image from offscreen canvas
2025-07-20 08:54:53 +02:00
Gingeh
55129644d5
LibWeb: Don't crash when root element becomes a popover or fullscreen
2025-07-20 08:54:53 +02:00
Sam Atkins
5d1ba658c9
Tests: Import attr()-related WPT tests
2025-07-16 14:47:45 +01:00
Tim Ledbetter
d1678e03ff
LibWeb: Check parent node exists before checking its type
2025-07-15 18:37:50 +12:00
Tim Ledbetter
488333aa4b
Tests: Convert an SVG text test to a crash test
...
This should have been a crash test, but the test runner previously
didn't wait long enough for the test to crash.
2025-07-14 13:05:17 -04: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
Tim Ledbetter
689dff3ee8
Tests: Synchronize imported tests with the WPT repository
2025-06-22 23:51:34 +02:00
Shannon Booth
fc62a05c98
LibWeb/DOM: Set Document's origin in JS constructor
...
We were missing this spec step, which meant that the created
document had no origin, causing a crash when accessed for same-origin
checks.
2025-06-18 08:49:01 +02:00
Sam Atkins
0e168ce631
Tests: Reimport dom/nodes/moveBefore tests
...
Apart from these moving out of `tentative/`, the
custom-element-move-reactions.html test was updated to be less flaky:
5e87cd92c0
2025-06-17 13:59:01 +02:00
Jelle Raaijmakers
b42c2c5e8f
LibWeb: Use code unit offsets in Document::find_matching_text()
...
We were passing in byte offsets instead of UTF-16 code unit offsets,
which could lead to crashes if the offsets found exceeded the number of
code units in text fragments on the page.
Fixes #4908 .
Co-authored-by: Tim Ledbetter <tim.ledbetter@ladybird.org >
2025-06-13 15:08:26 +02:00
Timothy Flynn
fbd1f77161
LibWeb: Disentangle both ends of a MessagePort at once
...
Otherwise, the remote end believes it is still entangled and may try to
access its own (now null) remote port. This fixes a crash in WPT.
2025-05-24 10:47:06 +12:00
Lyra
39dae6fb2d
LibWeb: Fix SRI handling of badly-formatted strings
2025-05-06 13:02:58 -04:00
Tim Ledbetter
f854f644a7
LibWeb: Don't crash when interpolating non <number> scale values
2025-04-28 11:46:34 +02:00
Shannon Booth
31a3bc3681
LibWeb: Implement 'State-preserving atomic move integration'
...
This was recently added to both the HTML and DOM specifications,
introducing the new moveBefore DOM API, as well as the new internal
'removing steps'.
See:
* https://github.com/whatwg/html/commit/432e8fb
* https://github.com/whatwg/dom/commit/eaf2ac7
2025-04-26 08:45:37 -06:00
Shannon Booth
a14481ee05
LibWeb/HTML: Handle no parent element for Element::list_owner
...
Fixes a crash when running Speedometer 3.0 as reduced in the included
test case.
2025-04-18 10:48:47 +02:00
Glenn Skrzypczak
1022566bff
LibWeb/Layout: Properly remove layout nodes
...
This properly remove the old layout node subtree when no new layout
node is created during layout update.
2025-03-31 18:19:58 +01:00
Tim Ledbetter
d67a95c37e
Tests: Remove print statement from crash test
...
Print statements aren't necessary in crash tests and will cause a
Javascript error when used.
2025-03-27 19:30:41 +00:00
Tim Ledbetter
40760308c6
LibWeb: Don't crash when border-spacing is set to a calc() value
...
Previously, the browser would crash if the `border-spacing` property
had 2 lengths and either one of these was set to a `calc()` value.
2025-03-21 08:16:30 +00:00
Shannon Booth
b8adf193f5
LibWeb/SVG: Work around no layout node in SVGCircleElement::get_path
...
This is clearly not the correct fix, but instead of crashing let's
log an error and bail.
Works around a crash seen on both:
* https://reddit.com
* https://www.w3.org/TR/web-animations-1 (#879 )
2025-03-17 20:10:11 +01:00
Aliaksandr Kalenik
0f697193f0
LibWeb: Check if navigable has active window before navigating
...
Fixes https://github.com/LadybirdBrowser/ladybird/issues/3733
2025-02-28 23:15:35 +01:00
Aliaksandr Kalenik
da5d4e9f6a
LibWeb: Assign sticky insets to Layout::InlineNode
...
Before this change we were ignoring boxes with `display: inline` while
assigning sticky insets. This was not correct because inline boxes are
allowed to have sticky positioning.
Fixes:
https://github.com/LadybirdBrowser/ladybird/issues/3718
https://github.com/LadybirdBrowser/ladybird/issues/3507
https://github.com/LadybirdBrowser/ladybird/issues/3133
2025-02-27 19:55:46 +01:00
Jelle Raaijmakers
5f5d18d719
LibWeb: Do not crash when inserting block elements into inline SVGBoxes
...
Fixes #3395 .
2025-02-19 13:49:24 +01:00
Tim Ledbetter
dd8cca180f
LibWeb: Remove unintentional recursion in ValidityState::valid
2025-02-18 21:58:35 +01:00