[Webkit-unassigned] [Bug 265723] New: [LBSE] Determine if post-layout reprints should ever use "outlineBounds"
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Sat Dec 2 11:25:54 PST 2023
https://bugs.webkit.org/show_bug.cgi?id=265723
Bug ID: 265723
Summary: [LBSE] Determine if post-layout reprints should ever
use "outlineBounds"
Product: WebKit
Version: WebKit Nightly Build
Hardware: Unspecified
OS: Unspecified
Status: NEW
Severity: Normal
Priority: P2
Component: SVG
Assignee: webkit-unassigned at lists.webkit.org
Reporter: simon.fraser at apple.com
CC: sabouhallawa at apple.com, zimmermann at kde.org
Post-layout repainting in RenderElement::repaintAfterLayoutIfNeeded() takes two rectangles:
clippedOverflowRect: the renderer's local repaint rect converted up to the repaintContainer, clipped by any ancestors with overflow.
outlineBounds: the renderer's "outline bounds", i.e. border box outset for shadows and outlines, converted up to the repaintContainer, but not clipped.
When requiresFullRepaint is RequiresFullRepaint::Yes, we just repaint the old and new clippedOverflowRect. Otherwise, we repaint the deltas of clippedOverflowRect, and inspect outlineBounds to see if we need to do a full repaint (yes if it moved).
The outlineBounds is consulted for two reasons:
1. The origin of the decorated box changed, in which case we have to do a full repaint.
2. The size of the decorated box changed. Here we compute how much we have to expand the repaint rects to cover things like shadows and outlines.
The expectation is that both clippedOverflowRect and outlineBounds are device-pixel snapped here.
With SVG there are various things to think about:
1. SVG coords are floating point, so diffing LayoutRects (especially after device pixel snapping) can't be used to know if something changed by a fractional pixel.
2. Does the "outline bounds delta" code ever make sense for SVG? What is the behavior of outlines for SVG elements?
I think, initially, we should always use RequiresFullRepaint::Yes for SVG, and refine later.
--
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20231202/0c728bb2/attachment.htm>
More information about the webkit-unassigned
mailing list