ladybird/Libraries/LibWeb/Layout
Andreas Kling 17902b02ab LibWeb: Stop idle animated CSS image timers
Keep animated ImageStyleValue frame advancement owned by the
style value. The current frame and loop state live there, so a
separate document scheduler would duplicate ownership of that state.

Start the ImageStyleValue timer only while it has layout clients.
Stop it when the last client unregisters, or when a finite animation
completes. Expose a document-scoped active timer count through
internals for focused regression tests.

Clear image observers when layout nodes detach. Use current-node
cleanup for per-DOM-node clearing, and explicit subtree cleanup for
tree replacement, full tree teardown, and synthetic pseudo-elements.
This keeps large document clearing linear.

Unregister generated-content image providers during layout detach
instead of waiting for GC to finalize the provider.

Cover hidden animated background images, generated content images,
layout node replacement, full layout tree teardown, and document
scoping for the internals counter.
2026-05-23 11:36:53 +02:00
..
AudioBox.cpp LibWeb: Make Paintable tree ref-counted 2026-05-07 15:03:44 +02:00
AudioBox.h LibWeb: Make Paintable tree ref-counted 2026-05-07 15:03:44 +02:00
AvailableSpace.cpp Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
AvailableSpace.h Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
BlockContainer.cpp LibWeb: Make Paintable tree ref-counted 2026-05-07 15:03:44 +02:00
BlockContainer.h LibWeb: Make Paintable tree ref-counted 2026-05-07 15:03:44 +02:00
BlockFormattingContext.cpp LibWeb: Let IFC publish inline-end static position 2026-05-23 11:01:58 +02:00
BlockFormattingContext.h LibWeb: Position list marker to the right of right-to-left text 2026-04-30 16:20:10 +02:00
Box.cpp LibWeb: Make Paintable tree ref-counted 2026-05-07 15:03:44 +02:00
Box.h LibWeb: Make Paintable tree ref-counted 2026-05-07 15:03:44 +02:00
BreakNode.cpp LibWeb: Make CSS::ComputedProperties GC-allocated 2024-12-22 10:12:49 +01:00
BreakNode.h Everywhere: Change west consts caught by clang-format-21 to east consts 2025-08-29 18:18:55 +01:00
CanvasBox.cpp LibWeb: Make Paintable tree ref-counted 2026-05-07 15:03:44 +02:00
CanvasBox.h LibWeb: Make Paintable tree ref-counted 2026-05-07 15:03:44 +02:00
CheckBox.cpp LibWeb: Make Paintable tree ref-counted 2026-05-07 15:03:44 +02:00
CheckBox.h LibWeb: Make Paintable tree ref-counted 2026-05-07 15:03:44 +02:00
DominantBaseline.h LibWeb: Implement dominant-baseline for SVG text 2026-02-26 09:23:23 +01:00
FieldSetBox.cpp LibWeb: Make Paintable tree ref-counted 2026-05-07 15:03:44 +02:00
FieldSetBox.h LibWeb: Make Paintable tree ref-counted 2026-05-07 15:03:44 +02:00
FlexFormattingContext.cpp LibWeb: Place single-line flex lines at cross-start 2026-05-17 10:15:38 +02:00
FlexFormattingContext.h LibWeb: Fix flex abspos static positions on reversed cross axes 2026-04-03 14:29:44 +02:00
FormattingContext.cpp LibWeb: Size appearance-none text inputs for max-content 2026-05-20 22:31:38 +02:00
FormattingContext.h LibWeb: Resolve table wrappers from grid areas 2026-05-19 10:41:52 +02:00
GridFormattingContext.cpp LibWeb: Preserve overflowing grid content center alignment 2026-05-20 21:09:32 +02:00
GridFormattingContext.h LibWeb: Resolve table wrappers from grid areas 2026-05-19 10:41:52 +02:00
ImageBox.cpp LibWeb: Make Paintable tree ref-counted 2026-05-07 15:03:44 +02:00
ImageBox.h LibWeb: Make Paintable tree ref-counted 2026-05-07 15:03:44 +02:00
ImageProvider.cpp LibGfx+LibWeb: Make DecodedImageFrame a value type 2026-05-07 16:08:13 +02:00
ImageProvider.h LibWeb: Stop idle animated CSS image timers 2026-05-23 11:36:53 +02:00
InlineFormattingContext.cpp LibWeb: Let IFC publish inline-end static position 2026-05-23 11:01:58 +02:00
InlineFormattingContext.h LibWeb: Let IFC publish inline-end static position 2026-05-23 11:01:58 +02:00
InlineLevelIterator.cpp LibWeb: Make every HTMLElement potentially form-associated 2026-03-25 13:18:15 +00:00
InlineLevelIterator.h LibWeb: Implement word-break functionality using UAX#14 line breaking 2026-02-14 16:23:18 -05:00
InlineNode.cpp LibWeb: Make Paintable tree ref-counted 2026-05-07 15:03:44 +02:00
InlineNode.h LibWeb: Make Paintable tree ref-counted 2026-05-07 15:03:44 +02:00
LayoutState.cpp LibWeb: Guard inline fragment lookups during layout commit 2026-05-23 11:36:45 +02:00
LayoutState.h LibWeb: Let IFC publish inline-end static position 2026-05-23 11:01:58 +02:00
LegendBox.cpp LibWeb: Make CSS::ComputedProperties GC-allocated 2024-12-22 10:12:49 +01:00
LegendBox.h LibWeb: Remove Document.h include from Layout/Node.h 2026-02-08 18:51:13 +01:00
LineBox.cpp LibWeb/Layout: Use is_empty() when fragment text has nothing to trim 2026-03-31 13:48:50 +01:00
LineBox.h LibWeb: Let IFC publish inline-end static position 2026-05-23 11:01:58 +02:00
LineBoxFragment.cpp LibWeb: Store correct text offsets in PaintableFragment 2025-09-12 15:34:09 -04:00
LineBoxFragment.h LibWeb: Mark ellipsized fragments as hidden rather than removing them 2026-04-17 08:03:26 +02:00
LineBuilder.cpp LibWeb: Guard inline fragment lookups during layout commit 2026-05-23 11:36:45 +02:00
LineBuilder.h LibWeb: Preserve inline-flex strut descent 2026-05-23 11:01:58 +02:00
ListItemBox.cpp LibWeb: Make CSS::ComputedProperties GC-allocated 2024-12-22 10:12:49 +01:00
ListItemBox.h Meta: Enforce newlines around namespaces 2025-05-14 02:01:59 -06:00
ListItemMarkerBox.cpp LibWeb: Make Paintable tree ref-counted 2026-05-07 15:03:44 +02:00
ListItemMarkerBox.h LibWeb: Make Paintable tree ref-counted 2026-05-07 15:03:44 +02:00
NavigableContainerViewport.cpp LibWeb: Make Paintable tree ref-counted 2026-05-07 15:03:44 +02:00
NavigableContainerViewport.h LibWeb: Make Paintable tree ref-counted 2026-05-07 15:03:44 +02:00
Node.cpp LibWeb: Stop idle animated CSS image timers 2026-05-23 11:36:53 +02:00
Node.h LibWeb: Stop idle animated CSS image timers 2026-05-23 11:36:53 +02:00
RadioButton.cpp LibWeb: Make Paintable tree ref-counted 2026-05-07 15:03:44 +02:00
RadioButton.h LibWeb: Make Paintable tree ref-counted 2026-05-07 15:03:44 +02:00
ReplacedBox.cpp LibWeb: Allow Layout::ImageBox to be anonymous 2025-07-28 22:46:27 +02:00
ReplacedBox.h LibWeb/Layout: Don't inject natural size in prepare_for_replaced_layout 2026-02-02 14:36:49 +00:00
ReplacedWithChildrenFormattingContext.cpp LibWeb: Allow replaced elements to host children 2026-02-23 07:27:31 +01:00
ReplacedWithChildrenFormattingContext.h LibWeb: Allow replaced elements to host children 2026-02-23 07:27:31 +01:00
SVGBox.cpp LibGC: Enforce that a Cell type must declare the allocator to use 2026-01-20 12:00:11 +01:00
SVGBox.h LibGC: Enforce that a Cell type must declare the allocator to use 2026-01-20 12:00:11 +01:00
SVGClipBox.cpp LibWeb: Make Paintable tree ref-counted 2026-05-07 15:03:44 +02:00
SVGClipBox.h LibWeb: Make Paintable tree ref-counted 2026-05-07 15:03:44 +02:00
SVGForeignObjectBox.cpp LibWeb: Make Paintable tree ref-counted 2026-05-07 15:03:44 +02:00
SVGForeignObjectBox.h LibWeb: Make Paintable tree ref-counted 2026-05-07 15:03:44 +02:00
SVGFormattingContext.cpp LibWeb: Move standalone SVG document layout handling out of BFC 2026-03-31 10:49:15 +02:00
SVGFormattingContext.h LibWeb: Compute SVG mask/clip transforms using layout tree hierarchy 2026-02-05 09:00:56 +01:00
SVGGeometryBox.cpp LibWeb: Make Paintable tree ref-counted 2026-05-07 15:03:44 +02:00
SVGGeometryBox.h LibWeb: Make Paintable tree ref-counted 2026-05-07 15:03:44 +02:00
SVGGraphicsBox.cpp LibWeb: Make Paintable tree ref-counted 2026-05-07 15:03:44 +02:00
SVGGraphicsBox.h LibWeb: Make Paintable tree ref-counted 2026-05-07 15:03:44 +02:00
SVGImageBox.cpp LibWeb: Make Paintable tree ref-counted 2026-05-07 15:03:44 +02:00
SVGImageBox.h LibWeb: Make Paintable tree ref-counted 2026-05-07 15:03:44 +02:00
SVGMaskBox.cpp LibWeb: Make Paintable tree ref-counted 2026-05-07 15:03:44 +02:00
SVGMaskBox.h LibWeb: Make Paintable tree ref-counted 2026-05-07 15:03:44 +02:00
SVGPatternBox.cpp LibWeb: Make Paintable tree ref-counted 2026-05-07 15:03:44 +02:00
SVGPatternBox.h LibWeb: Make Paintable tree ref-counted 2026-05-07 15:03:44 +02:00
SVGSVGBox.cpp LibWeb: Make Paintable tree ref-counted 2026-05-07 15:03:44 +02:00
SVGSVGBox.h LibWeb: Make Paintable tree ref-counted 2026-05-07 15:03:44 +02:00
SVGTextBox.cpp LibWeb: Make Paintable tree ref-counted 2026-05-07 15:03:44 +02:00
SVGTextBox.h LibWeb: Make Paintable tree ref-counted 2026-05-07 15:03:44 +02:00
SVGTextPathBox.cpp LibWeb: Make Paintable tree ref-counted 2026-05-07 15:03:44 +02:00
SVGTextPathBox.h LibWeb: Make Paintable tree ref-counted 2026-05-07 15:03:44 +02:00
TableFormattingContext.cpp LibWeb: Resolve table width constraints as content widths 2026-05-19 10:41:52 +02:00
TableFormattingContext.h LibWeb: Restrict throwaway layout states to their subtree 2026-02-27 19:11:41 +01:00
TableGrid.cpp LibWeb: Walk layout tree for table column groups 2026-05-23 11:36:45 +02:00
TableGrid.h LibWeb: Avoid having the same code in two files 2025-12-24 14:10:27 +01:00
TableWrapper.cpp LibWeb: Make CSS::ComputedProperties GC-allocated 2024-12-22 10:12:49 +01:00
TableWrapper.h LibWeb: Make CSS::ComputedProperties GC-allocated 2024-12-22 10:12:49 +01:00
TextAreaBox.cpp LibWeb: Implement auto_content_box_size for textarea and input 2026-02-02 14:36:49 +00:00
TextAreaBox.h LibWeb: Implement auto_content_box_size for textarea and input 2026-02-02 14:36:49 +00:00
TextInputBox.cpp LibWeb: Size appearance-none text inputs for max-content 2026-05-20 22:31:38 +02:00
TextInputBox.h LibWeb: Size appearance-none text inputs for max-content 2026-05-20 22:31:38 +02:00
TextNode.cpp LibWeb: Apply ::first-letter pseudo-element styles 2026-05-20 12:09:19 +01:00
TextNode.h LibWeb: Apply ::first-letter pseudo-element styles 2026-05-20 12:09:19 +01:00
TextOffsetMapping.cpp LibWeb: Apply ::first-letter pseudo-element styles 2026-05-20 12:09:19 +01:00
TextOffsetMapping.h LibWeb: Apply ::first-letter pseudo-element styles 2026-05-20 12:09:19 +01:00
TreeBuilder.cpp LibWeb: Stop idle animated CSS image timers 2026-05-23 11:36:53 +02:00
TreeBuilder.h LibWeb: Apply ::first-letter pseudo-element styles 2026-05-20 12:09:19 +01:00
VideoBox.cpp LibWeb: Make Paintable tree ref-counted 2026-05-07 15:03:44 +02:00
VideoBox.h LibWeb: Make Paintable tree ref-counted 2026-05-07 15:03:44 +02:00
Viewport.cpp LibWeb: Apply ::first-letter pseudo-element styles 2026-05-20 12:09:19 +01:00
Viewport.h LibWeb: Apply ::first-letter pseudo-element styles 2026-05-20 12:09:19 +01:00