ladybird/Libraries/LibWeb/Painting
Tim Ledbetter 8f3992526d LibWeb: Avoid unnecessary scrollbar allocation during hit testing
Most paintable boxes do not expose scrollbars or resize handles. Check
for scrollable axes and resizability before constructing chrome metrics
or creating scrollbar widgets.

This keeps the common no-scrollbar case from creating a `HitTestResult`,
fetching ChromeMetrics, allocating `Scrollbar` objects, and recomputing
scrollbar geometry unnecessarily.
2026-04-29 04:34:07 +02:00
..
AccumulatedVisualContext.cpp LibWeb: Don't tear down an active effect saveLayer during culling check 2026-04-28 16:14:44 +02:00
AccumulatedVisualContext.h LibWeb: Don't tear down an active effect saveLayer during culling check 2026-04-28 16:14:44 +02:00
BackgroundPainting.cpp LibWeb: Don't allocate nested DisplayList for background-clip: text 2026-04-08 04:08:30 +02:00
BackgroundPainting.h LibWeb: Pass ResolvedBackground by const reference in paint_background 2026-02-21 15:53:22 +01:00
BackingStoreManager.cpp LibGfx+LibWeb: Add Linux dmabuf backing stores to SharedImage 2026-04-14 21:49:08 +02:00
BackingStoreManager.h Everywhere: Send IOSurface backing stores via main IPC route on macOS 2026-03-23 23:22:38 +01:00
Blending.cpp LibWeb: Reduce recompilation from editing Enums.json 2026-02-19 11:27:06 +00:00
Blending.h LibWeb: Reduce recompilation from editing Enums.json 2026-02-19 11:27:06 +00:00
BorderPainting.cpp LibWeb: Prevent thin double borders from disappearing 2026-02-11 11:17:11 +01:00
BorderPainting.h LibWeb: Enable EXPLICIT_SYMBOL_EXPORT 2025-08-23 16:04:36 -06:00
BorderRadiiData.cpp LibWeb: Precompute box shadow geometry at display list recording time 2026-03-10 19:08:31 +01:00
BorderRadiiData.h LibWeb: Precompute box shadow geometry at display list recording time 2026-03-10 19:08:31 +01:00
BorderRadiusCornerClipper.cpp LibWeb: Rename PaintContext to DisplayListRecordingContext 2025-08-01 05:25:56 -04:00
BorderRadiusCornerClipper.h LibWeb: Enable EXPLICIT_SYMBOL_EXPORT 2025-08-23 16:04:36 -06:00
BordersData.cpp LibWeb: Rename PaintContext to DisplayListRecordingContext 2025-08-01 05:25:56 -04:00
BordersData.h LibWeb: Reduce recompilation from editing Enums.json 2026-02-19 11:27:06 +00:00
BoxModelMetrics.cpp LibWeb: Store final box model metrics in paint tree, not layout tree 2025-02-17 18:28:29 +01:00
BoxModelMetrics.h LibWeb: Enable EXPLICIT_SYMBOL_EXPORT 2025-08-23 16:04:36 -06:00
CanvasPaintable.cpp LibWeb: Use ExternalContentSource for canvas painting 2026-02-20 18:41:33 +01:00
CanvasPaintable.h LibWeb: Delete CanvasPaintable::layout_box() 2025-10-10 09:03:39 +02:00
CheckBoxPaintable.cpp LibWeb: Separate the active element and the element being activated 2026-03-17 04:01:29 -05:00
CheckBoxPaintable.h LibWeb: Separate the active element and the element being activated 2026-03-17 04:01:29 -05:00
ChromeMetrics.h LibWeb: Implement resizing for eligible elements and update scrollbars 2026-01-12 11:00:14 +00:00
ChromeWidget.h LibWeb: Refactor pointer event handling/dispatch to work closer to spec 2026-03-17 04:01:29 -05:00
DevicePixelConverter.h LibWeb: Inline CSSPixels methods and optimize device pixel math 2026-02-21 15:53:22 +01:00
DisplayList.cpp LibWeb: Don't tear down an active effect saveLayer during culling check 2026-04-28 16:14:44 +02:00
DisplayList.h LibWeb: Replace ScrollStateSnapshotByDisplayList with a plain snapshot 2026-04-07 15:09:43 +02:00
DisplayListCommand.cpp LibWeb: Precompute box shadow geometry at display list recording time 2026-03-10 19:08:31 +01:00
DisplayListCommand.h LibWeb: Store scroll frames by value in contiguous storage 2026-03-12 12:06:40 +01:00
DisplayListPlayerSkia.cpp LibWeb: Replace ScrollStateSnapshotByDisplayList with a plain snapshot 2026-04-07 15:09:43 +02:00
DisplayListPlayerSkia.h LibGfx+LibWeb: Move Skia backend context to process level singleton 2026-03-19 13:35:16 +01:00
DisplayListRecorder.cpp LibWeb: Store scroll frames by value in contiguous storage 2026-03-12 12:06:40 +01:00
DisplayListRecorder.h LibWeb: Store scroll frames by value in contiguous storage 2026-03-12 12:06:40 +01:00
DisplayListRecordingContext.cpp LibWeb: Implement resizing for eligible elements and update scrollbars 2026-01-12 11:00:14 +00:00
DisplayListRecordingContext.h LibGfx+LibWeb: Remove unused code from Gfx::Point/Rect/Size 2026-03-31 10:37:23 +02:00
ExternalContentSource.cpp LibWeb: Introduce ExternalContentSource 2026-02-20 18:41:33 +01:00
ExternalContentSource.h LibWeb: Introduce ExternalContentSource 2026-02-20 18:41:33 +01:00
FieldSetPaintable.cpp LibWeb: Clip <fieldset>'s background painting to exclude the legend 2026-03-10 19:08:15 +00:00
FieldSetPaintable.h LibWeb: Clip <fieldset>'s background painting to exclude the legend 2026-03-10 19:08:15 +00:00
Forward.h Everywhere: Consolidate double/triple click handling to use click count 2026-03-17 04:01:29 -05:00
GradientData.h LibWeb: Use generic <color-interpolation-method> parsing for gradients 2026-03-18 13:21:57 +00:00
GradientPainting.cpp LibWeb: Add generic Length::from_style_value method 2026-02-16 12:09:23 +00:00
GradientPainting.h LibWeb: Rename PaintContext to DisplayListRecordingContext 2025-08-01 05:25:56 -04:00
ImagePaintable.cpp LibWeb: Use CSSPixelFraction to calculate painted image sizes 2026-04-21 19:11:24 -05:00
ImagePaintable.h LibWeb: Remove ViewportClient from ImagePaintable and VideoBox 2026-02-26 09:25:25 +01:00
InputColors.h LibWeb/CSS: Implement the color-scheme CSS property 2025-01-08 11:18:13 +00:00
MarkerPaintable.cpp LibWeb: Make CounterStyle ref counted 2026-02-27 16:25:53 +00:00
MarkerPaintable.h LibWeb: Rename PaintContext to DisplayListRecordingContext 2025-08-01 05:25:56 -04:00
NavigableContainerViewportPaintable.cpp LibWeb: Rasterize each Navigable independently on its own thread 2026-04-07 15:09:43 +02:00
NavigableContainerViewportPaintable.h LibWeb: Delete NavigableContainerViewportPaintable::layout_box() 2025-10-10 09:03:39 +02:00
Paintable.cpp LibWeb: Make ViewportPaintable::visual_context_tree() return reference 2026-04-08 02:41:29 +02:00
Paintable.h LibWeb: Support border-radius in clip-path: inset() 2026-03-21 02:44:49 +00:00
PaintableBox.cpp LibWeb: Avoid unnecessary scrollbar allocation during hit testing 2026-04-29 04:34:07 +02:00
PaintableBox.h LibWeb: Support auto-scrolling contains when the middle mouse is pressed 2026-04-13 13:01:45 -04:00
PaintableFragment.cpp LibWeb: Use glyph positions & widths instead of Harfbuzz for range rects 2026-03-02 17:52:47 +01:00
PaintableFragment.h LibWeb: Implement support for text-decoration in ::selection 2026-02-06 10:47:50 +00:00
PaintableWithLines.cpp LibWeb: Deduplicate some fragment hit testing code 2026-04-26 01:26:13 +02:00
PaintableWithLines.h LibWeb: Remove paint-only properties resolution phase 2026-03-04 19:35:45 +01:00
PaintStyle.cpp LibWeb: Implement SVGPatternElement 2026-02-27 17:14:50 +01:00
PaintStyle.h LibWeb: Implement SVGPatternElement 2026-02-27 17:14:50 +01:00
RadioButtonPaintable.cpp LibWeb: Separate the active element and the element being activated 2026-03-17 04:01:29 -05:00
RadioButtonPaintable.h LibWeb: Separate the active element and the element being activated 2026-03-17 04:01:29 -05:00
ReplacedElementCommon.cpp LibWeb: Use CSSPixelFraction to calculate painted image sizes 2026-04-21 19:11:24 -05:00
ReplacedElementCommon.h LibWeb: Factor out replaced element sizing to its own file 2026-04-21 19:11:24 -05:00
ResizeHandle.cpp LibWeb: Refactor pointer event handling/dispatch to work closer to spec 2026-03-17 04:01:29 -05:00
ResizeHandle.h LibWeb: Refactor pointer event handling/dispatch to work closer to spec 2026-03-17 04:01:29 -05:00
ResolvedCSSFilter.cpp LibWeb: Move effects application into AccumulatedVisualContext 2026-01-21 16:19:18 +01:00
ResolvedCSSFilter.h LibWeb: Move effects application into AccumulatedVisualContext 2026-01-21 16:19:18 +01:00
Scrollbar.cpp LibWeb: Refactor pointer event handling/dispatch to work closer to spec 2026-03-17 04:01:29 -05:00
Scrollbar.h LibWeb: Refactor pointer event handling/dispatch to work closer to spec 2026-03-17 04:01:29 -05:00
ScrollFrame.cpp LibWeb: Store scroll frames by value in contiguous storage 2026-03-12 12:06:40 +01:00
ScrollFrame.h LibWeb: Store scroll frames by value in contiguous storage 2026-03-12 12:06:40 +01:00
ScrollState.cpp LibGfx+LibWeb: Remove unused code from Gfx::Point/Rect/Size 2026-03-31 10:37:23 +02:00
ScrollState.h LibWeb: Store scroll frames by value in contiguous storage 2026-03-12 12:06:40 +01:00
ShadowData.h LibWeb: Add helpers to convert CSS::ShadowData to Painting::ShadowData 2026-02-06 10:47:50 +00:00
ShadowPainting.cpp LibWeb: Precompute box shadow geometry at display list recording time 2026-03-10 19:08:31 +01:00
ShadowPainting.h LibWeb: Precompute box shadow geometry at display list recording time 2026-03-10 19:08:31 +01:00
ShouldAntiAlias.h LibWeb: Use shape-rendering to control anti aliasing for SVG paths 2025-08-19 09:47:28 +01:00
StackingContext.cpp LibWeb: Apply z-index only to positioned elements 2026-04-03 23:28:39 +02:00
StackingContext.h LibWeb: Move CSS transform resolution to visual context assignment 2026-01-31 16:56:05 +01:00
SVGClipPaintable.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
SVGClipPaintable.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
SVGForeignObjectPaintable.cpp LibWeb: Rename PaintContext to DisplayListRecordingContext 2025-08-01 05:25:56 -04:00
SVGForeignObjectPaintable.h LibGfx+LibWeb: Move SVG mask/clip composition from CPU to GPU 2026-01-23 16:23:06 +01:00
SVGGraphicsPaintable.cpp LibWeb: Preserve paintable tree across relayouts 2026-01-21 10:00:17 +01:00
SVGGraphicsPaintable.h LibGfx+LibWeb: Move SVG mask/clip composition from CPU to GPU 2026-01-23 16:23:06 +01:00
SVGMaskable.cpp LibWeb: Derive SVG clipPath bounds from descendants' geometry 2026-04-15 10:26:53 +01:00
SVGMaskable.h Libraries: Move #pragma once above include headers 2026-03-22 14:05:44 +01:00
SVGMaskPaintable.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
SVGMaskPaintable.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
SVGPaintable.cpp LibWeb: Derive SVG clipPath bounds from descendants' geometry 2026-04-15 10:26:53 +01:00
SVGPaintable.h LibWeb: Derive SVG clipPath bounds from descendants' geometry 2026-04-15 10:26:53 +01:00
SVGPathPaintable.cpp LibWeb: Derive SVG clipPath bounds from descendants' geometry 2026-04-15 10:26:53 +01:00
SVGPathPaintable.h LibWeb: Derive SVG clipPath bounds from descendants' geometry 2026-04-15 10:26:53 +01:00
SVGPatternPaintable.cpp LibWeb: Implement SVGPatternElement 2026-02-27 17:14:50 +01:00
SVGPatternPaintable.h LibWeb: Implement SVGPatternElement 2026-02-27 17:14:50 +01:00
SVGSVGPaintable.cpp LibWeb: Store visual context nodes in arena-based tree 2026-03-11 11:16:36 +01:00
SVGSVGPaintable.h LibWeb: Delete unused SVGSVGPaintable::layout_box() 2025-10-10 09:03:39 +02:00
TableBordersPainting.cpp LibWeb: Rename PaintContext to DisplayListRecordingContext 2025-08-01 05:25:56 -04:00
TableBordersPainting.h LibWeb: Enable EXPLICIT_SYMBOL_EXPORT 2025-08-23 16:04:36 -06:00
TextPaintable.cpp LibWeb: Implement label activation behavior in the DOM layer 2026-01-27 18:35:38 +01:00
TextPaintable.h LibWeb: Implement label activation behavior in the DOM layer 2026-01-27 18:35:38 +01:00
VideoPaintable.cpp LibWeb: Handle object-fit in VideoPaintable 2026-04-21 19:11:24 -05:00
VideoPaintable.h LibWeb: Use UA shadow DOM for media elements' controls 2026-02-23 07:27:31 +01:00
ViewportPaintable.cpp LibWeb: Apply z-index only to positioned elements 2026-04-03 23:28:39 +02:00
ViewportPaintable.h LibWeb: Make ViewportPaintable::visual_context_tree() return reference 2026-04-08 02:41:29 +02:00