Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: ea0009db79e2559f0ec5de2f5b70ac10299b6b2d
https://github.com/WebKit/WebKit/commit/ea0009db79e2559f0ec5de2f5b70ac10299b6b2d
Author: Nikolas Zimmermann <[email protected]>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M LayoutTests/TestExpectations
R
LayoutTests/platform/glib/svg/compositing/transform-change-repainting-no-viewBox-repaintRects-expected.txt
R
LayoutTests/platform/glib/svg/compositing/transform-change-repainting-viewBox-repaintRects-expected.txt
M LayoutTests/platform/mac-tahoe-wk2-lbse-text/TestExpectations
A
LayoutTests/svg/compositing/adjacent-derived-composited-anchors-expected.html
A
LayoutTests/svg/compositing/adjacent-derived-composited-anchors-with-trailing-expected.html
A
LayoutTests/svg/compositing/adjacent-derived-composited-anchors-with-trailing.html
A LayoutTests/svg/compositing/adjacent-derived-composited-anchors.html
A
LayoutTests/svg/compositing/child-between-derived-composited-anchors-expected.html
A
LayoutTests/svg/compositing/child-between-derived-composited-anchors-layer-tree-expected.txt
A
LayoutTests/svg/compositing/child-between-derived-composited-anchors-layer-tree.html
A LayoutTests/svg/compositing/child-between-derived-composited-anchors.html
A
LayoutTests/svg/compositing/filtered-container-with-composited-child-expected.svg
A LayoutTests/svg/compositing/filtered-container-with-composited-child.svg
R
LayoutTests/svg/compositing/foreground-layer-all-children-composited-expected.svg
R LayoutTests/svg/compositing/foreground-layer-all-children-composited.svg
R LayoutTests/svg/compositing/foreground-layer-composited-group-expected.svg
R LayoutTests/svg/compositing/foreground-layer-composited-group.svg
R
LayoutTests/svg/compositing/foreground-layer-composited-rect-with-svg-transform-expected.svg
R
LayoutTests/svg/compositing/foreground-layer-composited-rect-with-svg-transform.svg
R
LayoutTests/svg/compositing/foreground-layer-composited-transformed-group-between-rects-expected.svg
R
LayoutTests/svg/compositing/foreground-layer-composited-transformed-group-between-rects.svg
R
LayoutTests/svg/compositing/foreground-layer-composited-with-css-transform-expected.svg
R
LayoutTests/svg/compositing/foreground-layer-composited-with-css-transform.svg
R
LayoutTests/svg/compositing/foreground-layer-composited-with-opacity-expected.svg
R LayoutTests/svg/compositing/foreground-layer-composited-with-opacity.svg
R
LayoutTests/svg/compositing/foreground-layer-composited-with-z-index-expected.svg
R LayoutTests/svg/compositing/foreground-layer-composited-with-z-index.svg
R
LayoutTests/svg/compositing/foreground-layer-consecutive-composited-children-expected.svg
R
LayoutTests/svg/compositing/foreground-layer-consecutive-composited-children.svg
R
LayoutTests/svg/compositing/foreground-layer-content-between-composited-children-expected.svg
R
LayoutTests/svg/compositing/foreground-layer-content-between-composited-children.svg
R
LayoutTests/svg/compositing/foreground-layer-first-child-composited-expected.svg
R LayoutTests/svg/compositing/foreground-layer-first-child-composited.svg
R
LayoutTests/svg/compositing/foreground-layer-last-child-composited-expected.svg
R LayoutTests/svg/compositing/foreground-layer-last-child-composited.svg
R
LayoutTests/svg/compositing/foreground-layer-mixed-composited-elements-expected.svg
R LayoutTests/svg/compositing/foreground-layer-mixed-composited-elements.svg
R
LayoutTests/svg/compositing/foreground-layer-nested-group-with-composited-child-expected.svg
R
LayoutTests/svg/compositing/foreground-layer-nested-group-with-composited-child.svg
R
LayoutTests/svg/compositing/foreground-layer-no-composited-children-expected.svg
R LayoutTests/svg/compositing/foreground-layer-no-composited-children.svg
R
LayoutTests/svg/compositing/foreground-layer-noncomposited-overlapping-later-composited-expected.svg
R
LayoutTests/svg/compositing/foreground-layer-noncomposited-overlapping-later-composited.svg
R
LayoutTests/svg/compositing/foreground-layer-only-composited-child-expected.svg
R LayoutTests/svg/compositing/foreground-layer-only-composited-child.svg
R
LayoutTests/svg/compositing/foreground-layer-overlapping-composited-children-expected.svg
R
LayoutTests/svg/compositing/foreground-layer-overlapping-composited-children.svg
R
LayoutTests/svg/compositing/foreground-layer-single-composited-child-expected.svg
R LayoutTests/svg/compositing/foreground-layer-single-composited-child.svg
R
LayoutTests/svg/compositing/foreground-layer-three-composited-children-expected.svg
R LayoutTests/svg/compositing/foreground-layer-three-composited-children.svg
A
LayoutTests/svg/compositing/foreign-object-composited-children-no-segments-expected.html
A
LayoutTests/svg/compositing/foreign-object-composited-children-no-segments.html
A
LayoutTests/svg/compositing/g-container-between-composited-siblings-expected.html
A
LayoutTests/svg/compositing/g-container-between-composited-siblings-layer-tree-expected.txt
A
LayoutTests/svg/compositing/g-container-between-composited-siblings-layer-tree.html
A LayoutTests/svg/compositing/g-container-between-composited-siblings.html
A
LayoutTests/svg/compositing/g-with-multiple-children-between-composited-siblings-expected.html
A
LayoutTests/svg/compositing/g-with-multiple-children-between-composited-siblings-layer-tree-expected.txt
A
LayoutTests/svg/compositing/g-with-multiple-children-between-composited-siblings-layer-tree.html
A
LayoutTests/svg/compositing/g-with-multiple-children-between-composited-siblings.html
A
LayoutTests/svg/compositing/multiple-children-between-composited-siblings-expected.html
A
LayoutTests/svg/compositing/multiple-children-between-composited-siblings-layer-tree-expected.txt
A
LayoutTests/svg/compositing/multiple-children-between-composited-siblings-layer-tree.html
A
LayoutTests/svg/compositing/multiple-children-between-composited-siblings.html
A
LayoutTests/svg/compositing/multiple-children-with-mixed-anchor-types-expected.html
A
LayoutTests/svg/compositing/multiple-children-with-mixed-anchor-types-layer-tree-expected.txt
A
LayoutTests/svg/compositing/multiple-children-with-mixed-anchor-types-layer-tree.html
A LayoutTests/svg/compositing/multiple-children-with-mixed-anchor-types.html
A
LayoutTests/svg/compositing/nested-segments-at-multiple-depths-expected.html
A
LayoutTests/svg/compositing/nested-segments-at-multiple-depths-layer-tree-expected.txt
A
LayoutTests/svg/compositing/nested-segments-at-multiple-depths-layer-tree.html
A LayoutTests/svg/compositing/nested-segments-at-multiple-depths.html
A
LayoutTests/svg/compositing/non-composited-child-after-last-composited-sibling-expected.html
A
LayoutTests/svg/compositing/non-composited-child-after-last-composited-sibling-layer-tree-expected.txt
A
LayoutTests/svg/compositing/non-composited-child-after-last-composited-sibling-layer-tree.html
A
LayoutTests/svg/compositing/non-composited-child-after-last-composited-sibling.html
A
LayoutTests/svg/compositing/non-composited-child-between-composited-siblings-expected.html
A
LayoutTests/svg/compositing/non-composited-child-between-composited-siblings-layer-tree-expected.txt
A
LayoutTests/svg/compositing/non-composited-child-between-composited-siblings-layer-tree.html
A
LayoutTests/svg/compositing/non-composited-child-between-composited-siblings.html
A
LayoutTests/svg/compositing/non-rect-shape-between-composited-siblings-expected.html
A
LayoutTests/svg/compositing/non-rect-shape-between-composited-siblings-layer-tree-expected.txt
A
LayoutTests/svg/compositing/non-rect-shape-between-composited-siblings-layer-tree.html
A
LayoutTests/svg/compositing/non-rect-shape-between-composited-siblings.html
A
LayoutTests/svg/compositing/paint-order-in-nested-transformed-groups-expected.html
A LayoutTests/svg/compositing/paint-order-in-nested-transformed-groups.html
A LayoutTests/svg/compositing/paint-order-in-offset-viewbox-expected.html
A LayoutTests/svg/compositing/paint-order-in-offset-viewbox.html
A LayoutTests/svg/compositing/paint-order-in-scaled-group-expected.html
A LayoutTests/svg/compositing/paint-order-in-scaled-group.html
A LayoutTests/svg/compositing/paint-order-in-scaled-viewbox-expected.html
A LayoutTests/svg/compositing/paint-order-in-scaled-viewbox.html
A
LayoutTests/svg/compositing/paint-order-in-scaled-willchange-group-expected.html
A LayoutTests/svg/compositing/paint-order-in-scaled-willchange-group.html
A
LayoutTests/svg/compositing/paint-order-in-transformed-group-willchange-inner-expected.html
A
LayoutTests/svg/compositing/paint-order-in-transformed-group-willchange-inner.html
A LayoutTests/svg/compositing/paint-order-in-translated-group-expected.html
A LayoutTests/svg/compositing/paint-order-in-translated-group.html
A LayoutTests/svg/compositing/paint-order-in-willchange-group-expected.html
A LayoutTests/svg/compositing/paint-order-in-willchange-group.html
A LayoutTests/svg/compositing/rect-between-composited-anchors-expected.html
A
LayoutTests/svg/compositing/rect-between-composited-anchors-layer-tree-expected.txt
A
LayoutTests/svg/compositing/rect-between-composited-anchors-layer-tree.html
A LayoutTests/svg/compositing/rect-between-composited-anchors.html
A
LayoutTests/svg/compositing/segment-added-after-anchor-element-inserted-expected.html
A
LayoutTests/svg/compositing/segment-added-after-anchor-element-inserted-layer-tree-expected.txt
A
LayoutTests/svg/compositing/segment-added-after-anchor-element-inserted-layer-tree.html
A
LayoutTests/svg/compositing/segment-added-after-anchor-element-inserted.html
A LayoutTests/svg/compositing/segment-all-children-composited-expected.svg
A LayoutTests/svg/compositing/segment-all-children-composited.svg
A LayoutTests/svg/compositing/segment-composited-group-expected.svg
A LayoutTests/svg/compositing/segment-composited-group.svg
A
LayoutTests/svg/compositing/segment-composited-rect-with-svg-transform-expected.svg
A LayoutTests/svg/compositing/segment-composited-rect-with-svg-transform.svg
A
LayoutTests/svg/compositing/segment-composited-transformed-group-between-rects-expected.svg
A
LayoutTests/svg/compositing/segment-composited-transformed-group-between-rects.svg
A
LayoutTests/svg/compositing/segment-composited-with-css-transform-expected.svg
A LayoutTests/svg/compositing/segment-composited-with-css-transform.svg
A LayoutTests/svg/compositing/segment-composited-with-opacity-expected.svg
A LayoutTests/svg/compositing/segment-composited-with-opacity.svg
A LayoutTests/svg/compositing/segment-composited-with-z-index-expected.svg
A LayoutTests/svg/compositing/segment-composited-with-z-index.svg
A
LayoutTests/svg/compositing/segment-consecutive-composited-children-expected.svg
A LayoutTests/svg/compositing/segment-consecutive-composited-children.svg
A
LayoutTests/svg/compositing/segment-content-between-composited-children-expected.svg
A
LayoutTests/svg/compositing/segment-content-between-composited-children.svg
A LayoutTests/svg/compositing/segment-content-far-from-origin-expected.html
A LayoutTests/svg/compositing/segment-content-far-from-origin.html
A LayoutTests/svg/compositing/segment-first-child-composited-expected.svg
A LayoutTests/svg/compositing/segment-first-child-composited.svg
A
LayoutTests/svg/compositing/segment-invalidation-updates-one-slice-expected.html
A LayoutTests/svg/compositing/segment-invalidation-updates-one-slice.html
A LayoutTests/svg/compositing/segment-last-child-composited-expected.svg
A LayoutTests/svg/compositing/segment-last-child-composited.svg
A LayoutTests/svg/compositing/segment-mixed-composited-elements-expected.svg
A LayoutTests/svg/compositing/segment-mixed-composited-elements.svg
A
LayoutTests/svg/compositing/segment-nested-group-with-composited-child-expected.svg
A LayoutTests/svg/compositing/segment-nested-group-with-composited-child.svg
A LayoutTests/svg/compositing/segment-no-composited-children-expected.svg
A LayoutTests/svg/compositing/segment-no-composited-children.svg
A
LayoutTests/svg/compositing/segment-noncomposited-overlapping-later-composited-expected.svg
A
LayoutTests/svg/compositing/segment-noncomposited-overlapping-later-composited.svg
A LayoutTests/svg/compositing/segment-only-composited-child-expected.svg
A LayoutTests/svg/compositing/segment-only-composited-child.svg
A
LayoutTests/svg/compositing/segment-overlapping-composited-children-expected.svg
A LayoutTests/svg/compositing/segment-overlapping-composited-children.svg
A
LayoutTests/svg/compositing/segment-overlay-in-rotated-container-expected.html
A LayoutTests/svg/compositing/segment-overlay-in-rotated-container.html
A
LayoutTests/svg/compositing/segment-overlay-in-scaled-container-expected.html
A
LayoutTests/svg/compositing/segment-overlay-in-scaled-container-layer-tree-expected.txt
A
LayoutTests/svg/compositing/segment-overlay-in-scaled-container-layer-tree.html
A
LayoutTests/svg/compositing/segment-overlay-in-scaled-container-with-transformed-leaf-expected.html
A
LayoutTests/svg/compositing/segment-overlay-in-scaled-container-with-transformed-leaf.html
A LayoutTests/svg/compositing/segment-overlay-in-scaled-container.html
A
LayoutTests/svg/compositing/segment-overlay-in-svg-transformed-container-expected.html
A
LayoutTests/svg/compositing/segment-overlay-in-svg-transformed-container.html
A
LayoutTests/svg/compositing/segment-overlay-in-translated-container-expected.html
A
LayoutTests/svg/compositing/segment-overlay-in-translated-container-layer-tree-expected.txt
A
LayoutTests/svg/compositing/segment-overlay-in-translated-container-layer-tree.html
A LayoutTests/svg/compositing/segment-overlay-in-translated-container.html
A
LayoutTests/svg/compositing/segment-overlay-in-untransformed-container-expected.html
A
LayoutTests/svg/compositing/segment-overlay-in-untransformed-container-layer-tree-expected.txt
A
LayoutTests/svg/compositing/segment-overlay-in-untransformed-container-layer-tree.html
A
LayoutTests/svg/compositing/segment-overlay-in-untransformed-container.html
A
LayoutTests/svg/compositing/segment-overlay-with-transformed-leaf-expected.html
A LayoutTests/svg/compositing/segment-overlay-with-transformed-leaf.html
A
LayoutTests/svg/compositing/segment-reassociated-after-trailing-child-moved-expected.html
A
LayoutTests/svg/compositing/segment-reassociated-after-trailing-child-moved.html
A
LayoutTests/svg/compositing/segment-removed-after-anchor-decomposited-expected.html
A
LayoutTests/svg/compositing/segment-removed-after-anchor-decomposited-layer-tree-expected.txt
A
LayoutTests/svg/compositing/segment-removed-after-anchor-decomposited-layer-tree.html
A LayoutTests/svg/compositing/segment-removed-after-anchor-decomposited.html
A
LayoutTests/svg/compositing/segment-removed-after-anchor-element-removed-expected.html
A
LayoutTests/svg/compositing/segment-removed-after-anchor-element-removed-layer-tree-expected.txt
A
LayoutTests/svg/compositing/segment-removed-after-anchor-element-removed-layer-tree.html
A
LayoutTests/svg/compositing/segment-removed-after-anchor-element-removed.html
A
LayoutTests/svg/compositing/segment-removed-after-derived-anchor-decomposited-expected.html
A
LayoutTests/svg/compositing/segment-removed-after-derived-anchor-decomposited-layer-tree-expected.txt
A
LayoutTests/svg/compositing/segment-removed-after-derived-anchor-decomposited-layer-tree.html
A
LayoutTests/svg/compositing/segment-removed-after-derived-anchor-decomposited.html
A
LayoutTests/svg/compositing/segment-removed-after-reparenting-expected.html
A
LayoutTests/svg/compositing/segment-removed-after-reparenting-layer-tree-expected.txt
A
LayoutTests/svg/compositing/segment-removed-after-reparenting-layer-tree.html
A LayoutTests/svg/compositing/segment-removed-after-reparenting.html
A LayoutTests/svg/compositing/segment-single-composited-child-expected.svg
A LayoutTests/svg/compositing/segment-single-composited-child.svg
A LayoutTests/svg/compositing/segment-three-composited-children-expected.svg
A LayoutTests/svg/compositing/segment-three-composited-children.svg
A LayoutTests/svg/compositing/small-segment-in-large-container-expected.html
A LayoutTests/svg/compositing/small-segment-in-large-container.html
A
LayoutTests/svg/compositing/svg-container-decomposite-no-stacking-context-mutation-expected.html
A
LayoutTests/svg/compositing/svg-container-decomposite-no-stacking-context-mutation.html
A
LayoutTests/svg/compositing/text-after-composited-anchor-slice-bounds-expected.svg
A
LayoutTests/svg/compositing/text-after-composited-anchor-slice-bounds-layer-tree-expected.txt
A
LayoutTests/svg/compositing/text-after-composited-anchor-slice-bounds-layer-tree.html
A LayoutTests/svg/compositing/text-after-composited-anchor-slice-bounds.svg
A
LayoutTests/svg/compositing/three-adjacent-derived-composited-anchors-expected.html
A LayoutTests/svg/compositing/three-adjacent-derived-composited-anchors.html
M
LayoutTests/svg/compositing/transform-change-repainting-no-viewBox-repaintRects-expected.txt
M Source/WebCore/SaferCPPExpectations/UncheckedCallArgsCheckerExpectations
M Source/WebCore/SaferCPPExpectations/UncheckedLocalVarsCheckerExpectations
M Source/WebCore/SaferCPPExpectations/UncountedCallArgsCheckerExpectations
M Source/WebCore/SaferCPPExpectations/UncountedLocalVarsCheckerExpectations
M Source/WebCore/Sources.txt
M Source/WebCore/WebCore.xcodeproj/project.pbxproj
M Source/WebCore/rendering/RenderLayer.cpp
M Source/WebCore/rendering/RenderLayer.h
M Source/WebCore/rendering/RenderLayerBacking.cpp
M Source/WebCore/rendering/RenderLayerBacking.h
A Source/WebCore/rendering/RenderLayerBackingSVGAdditions.cpp
M Source/WebCore/rendering/RenderLayerCompositor.cpp
M Source/WebCore/rendering/RenderLayerCompositor.h
M Source/WebCore/rendering/RenderLayerModelObject.cpp
M Source/WebCore/rendering/RenderLayerModelObject.h
M Source/WebCore/rendering/RenderLayerSVGAdditions.cpp
M Source/WebCore/rendering/svg/RenderSVGBlock.h
M Source/WebCore/rendering/svg/RenderSVGViewportContainer.cpp
M Source/WebCore/style/computed/StyleComputedStyle+GettersInlines.h
M Source/WebCore/style/computed/StyleComputedStyle.h
Log Message:
-----------
[LBSE] Preserve paint order of non-composited children around composited SVG
siblings
https://bugs.webkit.org/show_bug.cgi?id=317592
Reviewed by Simon Fraser.
In the layer-based SVG engine a layered SVG container paints its children from a
single flat list in DOM order, which is also SVG paint order. Most children
paint
straight into the container's own backing store. Some children are composited
and
own a GraphicsLayer of their own, for reasons like will-change, a 3D transform,
or
certain opacity cases. We call such a composited child an anchor.
The hard part is the plain, non-composited children that sit between two
anchors in
paint order, or after the last anchor. The compositor draws each anchor as a
separate
sibling GraphicsLayer, so if every such child painted into the container's one
backing
store they would all end up either behind or in front of the anchors and lose
their
DOM order.
To keep the order correct, the flat child list is divided into contiguous
paint-order
segments at the anchor boundaries. The leading run, meaning everything up to and
including the first anchor, is painted by the container's own primary layer.
Each
later run of non-composited children gets its own overlay GraphicsLayer named
"(svg segment N)", placed in the compositor's child list right after the anchor
it
follows - to ensure it draws at the correct depth. Each overlay paints only its
own
part of the list, described as a half-open [begin, end) range of indices into
the flat
list. That range is passed down the SVG paint path as an argument to the
relevant paint
methods, so a child layer painted through its own paint call never inherits it
and
cannot paint the wrong slice.
To illustrate the functionality, let's dissect this example:
<g style="will-change: transform"> container, owns a backing store
<rect id="r1"/> leading run
<rect id="a1" style="will-change: ..."/> anchor (own GraphicsLayer)
<rect id="r2"/> between anchors
<rect id="r3"/>
<rect id="a2" style="will-change: ..."/> anchor (own GraphicsLayer)
<rect id="r4"/> after last anchor
</g>
The flat list is [r1, a1, r2, r3, a2, r4]. The compositor then emits, in this
order:
the primary layer painting slice [0, 1), which is r1, then a1's own layer, then
an
"overlay" painting slice [2, 4), which is r2 and r3, then a2's own layer, and
finally
an overlay painting slice [4, 6), which is r4. Every child keeps its DOM order,
and
no trailing sibling needs a RenderLayer (or backing store) of its own. A
container with
no composited children produces no segments and no overlays at all, so the
common
case costs nothing, which is an important design goal -- we never want to
penalize
the non-composited painting paths, or introduce performance pitfalls.
The segment set is recomputed from the post-compositing state, and the overlay
layers
are matched to it again whenever the flat list or the compositing state
changes. A
handful of details follow from this design:
An anchor can be _derived_, meaning it anchors only because it hosts a
composited
descendant and has no backing store of its own. A derived anchor paints inline,
so the
segment that ends at it must be emitted even when the run before it is empty,
otherwise
its own content would never be drawn by any layer.
RenderSVGForeignObject is special: it's an SVG layer, but it paints its HTML
subtree
with HTML-style z-order list painting (not using the
paintChildrenInDOMOrderForSVG path)
so it does not contribute to segment building.
An SVG layer is made a stacking context once, at style time. This keeps a
composited
child inside the container's own paint-order lists instead of letting it escape
to an
ancestor, which is what the segmentation relies on. Doing it at style time
keeps it
away from the compositing traversal, where mutating the z-order lists is not
allowed.
For an untransformed container, each overlay's backing store is cropped on all
sides
to the bounds of the slice it paints, so a small slice in a large container
does not
allocate a full-container backing. A transformed container keeps the full
foreground-sized backing instead, because shifting the overlay's origin under a
transform makes the compositor misplace it. This will be addressed in a
follow-up PR.
Invalidation is scoped the same way, so a repaint redraws only the overlays
whose
slice it actually touches.
A new svg/compositing test suite covers anchors with non-composited siblings,
leading
and trailing runs, nested and mixed cases, adjacent and derived anchors,
foreignObject handling, the stacking-context property, and dynamic insert,
remove,
and reparent updates, along with the matching layer-tree rebaselines....
The pre-existing foreground-layer-*.svg tests are renamed to segment-*.svg and
their
comments corrected to describe the overlay-segment mechanism they actually
exercise: a
foreground layer is never built for non-foreignObject SVG content, so these
always went
through segmentation.
* LayoutTests/TestExpectations:
*
LayoutTests/platform/glib/svg/compositing/transform-change-repainting-no-viewBox-repaintRects-expected.txt:
Removed.
*
LayoutTests/platform/glib/svg/compositing/transform-change-repainting-viewBox-repaintRects-expected.txt:
Removed.
* LayoutTests/platform/mac-tahoe-wk2-lbse-text/TestExpectations:
*
LayoutTests/svg/compositing/adjacent-derived-composited-anchors-expected.html:
Added.
*
LayoutTests/svg/compositing/adjacent-derived-composited-anchors-with-trailing-expected.html:
Added.
*
LayoutTests/svg/compositing/adjacent-derived-composited-anchors-with-trailing.html:
Added.
* LayoutTests/svg/compositing/adjacent-derived-composited-anchors.html: Added.
*
LayoutTests/svg/compositing/child-between-derived-composited-anchors-expected.html:
Added.
*
LayoutTests/svg/compositing/child-between-derived-composited-anchors-layer-tree-expected.txt:
Added.
*
LayoutTests/svg/compositing/child-between-derived-composited-anchors-layer-tree.html:
Added.
* LayoutTests/svg/compositing/child-between-derived-composited-anchors.html:
Added.
*
LayoutTests/svg/compositing/filtered-container-with-composited-child-expected.svg:
Added.
* LayoutTests/svg/compositing/filtered-container-with-composited-child.svg:
Added.
*
LayoutTests/svg/compositing/foreground-layer-noncomposited-overlapping-later-composited.svg:
Removed.
*
LayoutTests/svg/compositing/foreign-object-composited-children-no-segments-expected.html:
Added.
*
LayoutTests/svg/compositing/foreign-object-composited-children-no-segments.html:
Added.
*
LayoutTests/svg/compositing/g-container-between-composited-siblings-expected.html:
Added.
*
LayoutTests/svg/compositing/g-container-between-composited-siblings-layer-tree-expected.txt:
Added.
*
LayoutTests/svg/compositing/g-container-between-composited-siblings-layer-tree.html:
Added.
* LayoutTests/svg/compositing/g-container-between-composited-siblings.html:
Added.
*
LayoutTests/svg/compositing/g-with-multiple-children-between-composited-siblings-expected.html:
Added.
*
LayoutTests/svg/compositing/g-with-multiple-children-between-composited-siblings-layer-tree-expected.txt:
Added.
*
LayoutTests/svg/compositing/g-with-multiple-children-between-composited-siblings-layer-tree.html:
Added.
*
LayoutTests/svg/compositing/g-with-multiple-children-between-composited-siblings.html:
Added.
*
LayoutTests/svg/compositing/multiple-children-between-composited-siblings-expected.html:
Added.
*
LayoutTests/svg/compositing/multiple-children-between-composited-siblings-layer-tree-expected.txt:
Added.
*
LayoutTests/svg/compositing/multiple-children-between-composited-siblings-layer-tree.html:
Added.
*
LayoutTests/svg/compositing/multiple-children-between-composited-siblings.html:
Added.
*
LayoutTests/svg/compositing/multiple-children-with-mixed-anchor-types-expected.html:
Added.
*
LayoutTests/svg/compositing/multiple-children-with-mixed-anchor-types-layer-tree-expected.txt:
Added.
*
LayoutTests/svg/compositing/multiple-children-with-mixed-anchor-types-layer-tree.html:
Added.
* LayoutTests/svg/compositing/multiple-children-with-mixed-anchor-types.html:
Added.
* LayoutTests/svg/compositing/nested-segments-at-multiple-depths-expected.html:
Added.
*
LayoutTests/svg/compositing/nested-segments-at-multiple-depths-layer-tree-expected.txt:
Added.
*
LayoutTests/svg/compositing/nested-segments-at-multiple-depths-layer-tree.html:
Added.
* LayoutTests/svg/compositing/nested-segments-at-multiple-depths.html: Added.
*
LayoutTests/svg/compositing/non-composited-child-after-last-composited-sibling-expected.html:
Added.
*
LayoutTests/svg/compositing/non-composited-child-after-last-composited-sibling-layer-tree-expected.txt:
Added.
*
LayoutTests/svg/compositing/non-composited-child-after-last-composited-sibling-layer-tree.html:
Added.
*
LayoutTests/svg/compositing/non-composited-child-after-last-composited-sibling.html:
Added.
*
LayoutTests/svg/compositing/non-composited-child-between-composited-siblings-expected.html:
Added.
*
LayoutTests/svg/compositing/non-composited-child-between-composited-siblings-layer-tree-expected.txt:
Added.
*
LayoutTests/svg/compositing/non-composited-child-between-composited-siblings-layer-tree.html:
Added.
*
LayoutTests/svg/compositing/non-composited-child-between-composited-siblings.html:
Added.
*
LayoutTests/svg/compositing/non-rect-shape-between-composited-siblings-expected.html:
Added.
*
LayoutTests/svg/compositing/non-rect-shape-between-composited-siblings-layer-tree-expected.txt:
Added.
*
LayoutTests/svg/compositing/non-rect-shape-between-composited-siblings-layer-tree.html:
Added.
* LayoutTests/svg/compositing/non-rect-shape-between-composited-siblings.html:
Added.
*
LayoutTests/svg/compositing/paint-order-in-nested-transformed-groups-expected.html:
Added.
* LayoutTests/svg/compositing/paint-order-in-nested-transformed-groups.html:
Added.
* LayoutTests/svg/compositing/paint-order-in-offset-viewbox-expected.html:
Added.
* LayoutTests/svg/compositing/paint-order-in-offset-viewbox.html: Added.
* LayoutTests/svg/compositing/paint-order-in-scaled-group-expected.html: Added.
* LayoutTests/svg/compositing/paint-order-in-scaled-group.html: Added.
* LayoutTests/svg/compositing/paint-order-in-scaled-viewbox-expected.html:
Added.
* LayoutTests/svg/compositing/paint-order-in-scaled-viewbox.html: Added.
*
LayoutTests/svg/compositing/paint-order-in-scaled-willchange-group-expected.html:
Added.
* LayoutTests/svg/compositing/paint-order-in-scaled-willchange-group.html:
Added.
*
LayoutTests/svg/compositing/paint-order-in-transformed-group-willchange-inner-expected.html:
Added.
*
LayoutTests/svg/compositing/paint-order-in-transformed-group-willchange-inner.html:
Added.
* LayoutTests/svg/compositing/paint-order-in-translated-group-expected.html:
Added.
* LayoutTests/svg/compositing/paint-order-in-translated-group.html: Added.
* LayoutTests/svg/compositing/paint-order-in-willchange-group-expected.html:
Added.
* LayoutTests/svg/compositing/paint-order-in-willchange-group.html: Added.
* LayoutTests/svg/compositing/rect-between-composited-anchors-expected.html:
Added.
*
LayoutTests/svg/compositing/rect-between-composited-anchors-layer-tree-expected.txt:
Added.
* LayoutTests/svg/compositing/rect-between-composited-anchors-layer-tree.html:
Added.
* LayoutTests/svg/compositing/rect-between-composited-anchors.html: Added.
*
LayoutTests/svg/compositing/segment-added-after-anchor-element-inserted-expected.html:
Added.
*
LayoutTests/svg/compositing/segment-added-after-anchor-element-inserted-layer-tree-expected.txt:
Added.
*
LayoutTests/svg/compositing/segment-added-after-anchor-element-inserted-layer-tree.html:
Added.
* LayoutTests/svg/compositing/segment-added-after-anchor-element-inserted.html:
Added.
* LayoutTests/svg/compositing/segment-all-children-composited-expected.svg:
Renamed from
LayoutTests/svg/compositing/foreground-layer-all-children-composited-expected.svg.
* LayoutTests/svg/compositing/segment-all-children-composited.svg: Renamed from
LayoutTests/svg/compositing/foreground-layer-all-children-composited.svg.
* LayoutTests/svg/compositing/segment-composited-group-expected.svg: Renamed
from LayoutTests/svg/compositing/foreground-layer-composited-group-expected.svg.
* LayoutTests/svg/compositing/segment-composited-group.svg: Renamed from
LayoutTests/svg/compositing/foreground-layer-composited-group.svg.
*
LayoutTests/svg/compositing/segment-composited-rect-with-svg-transform-expected.svg:
Renamed from
LayoutTests/svg/compositing/foreground-layer-composited-rect-with-svg-transform-expected.svg.
* LayoutTests/svg/compositing/segment-composited-rect-with-svg-transform.svg:
Renamed from
LayoutTests/svg/compositing/foreground-layer-composited-rect-with-svg-transform.svg.
*
LayoutTests/svg/compositing/segment-composited-transformed-group-between-rects-expected.svg:
Renamed from
LayoutTests/svg/compositing/foreground-layer-composited-transformed-group-between-rects-expected.svg.
*
LayoutTests/svg/compositing/segment-composited-transformed-group-between-rects.svg:
Renamed from
LayoutTests/svg/compositing/foreground-layer-composited-transformed-group-between-rects.svg.
*
LayoutTests/svg/compositing/segment-composited-with-css-transform-expected.svg:
Renamed from
LayoutTests/svg/compositing/foreground-layer-composited-with-css-transform-expected.svg.
* LayoutTests/svg/compositing/segment-composited-with-css-transform.svg:
Renamed from
LayoutTests/svg/compositing/foreground-layer-composited-with-css-transform.svg.
* LayoutTests/svg/compositing/segment-composited-with-opacity-expected.svg:
Renamed from
LayoutTests/svg/compositing/foreground-layer-composited-with-opacity-expected.svg.
* LayoutTests/svg/compositing/segment-composited-with-opacity.svg: Renamed from
LayoutTests/svg/compositing/foreground-layer-composited-with-opacity.svg.
* LayoutTests/svg/compositing/segment-composited-with-z-index-expected.svg:
Renamed from
LayoutTests/svg/compositing/foreground-layer-composited-with-z-index-expected.svg.
* LayoutTests/svg/compositing/segment-composited-with-z-index.svg: Renamed from
LayoutTests/svg/compositing/foreground-layer-composited-with-z-index.svg.
*
LayoutTests/svg/compositing/segment-consecutive-composited-children-expected.svg:
Renamed from
LayoutTests/svg/compositing/foreground-layer-consecutive-composited-children-expected.svg.
* LayoutTests/svg/compositing/segment-consecutive-composited-children.svg:
Renamed from
LayoutTests/svg/compositing/foreground-layer-consecutive-composited-children.svg.
*
LayoutTests/svg/compositing/segment-content-between-composited-children-expected.svg:
Renamed from
LayoutTests/svg/compositing/foreground-layer-content-between-composited-children-expected.svg.
* LayoutTests/svg/compositing/segment-content-between-composited-children.svg:
Renamed from
LayoutTests/svg/compositing/foreground-layer-content-between-composited-children.svg.
* LayoutTests/svg/compositing/segment-content-far-from-origin-expected.html:
Added.
* LayoutTests/svg/compositing/segment-content-far-from-origin.html: Added.
* LayoutTests/svg/compositing/segment-first-child-composited-expected.svg:
Renamed from
LayoutTests/svg/compositing/foreground-layer-first-child-composited-expected.svg.
* LayoutTests/svg/compositing/segment-first-child-composited.svg: Renamed from
LayoutTests/svg/compositing/foreground-layer-first-child-composited.svg.
*
LayoutTests/svg/compositing/segment-invalidation-updates-one-slice-expected.html:
Added.
* LayoutTests/svg/compositing/segment-invalidation-updates-one-slice.html:
Added.
* LayoutTests/svg/compositing/segment-last-child-composited-expected.svg:
Renamed from
LayoutTests/svg/compositing/foreground-layer-last-child-composited-expected.svg.
* LayoutTests/svg/compositing/segment-last-child-composited.svg: Renamed from
LayoutTests/svg/compositing/foreground-layer-last-child-composited.svg.
* LayoutTests/svg/compositing/segment-mixed-composited-elements-expected.svg:
Renamed from
LayoutTests/svg/compositing/foreground-layer-mixed-composited-elements-expected.svg.
* LayoutTests/svg/compositing/segment-mixed-composited-elements.svg: Renamed
from LayoutTests/svg/compositing/foreground-layer-mixed-composited-elements.svg.
*
LayoutTests/svg/compositing/segment-nested-group-with-composited-child-expected.svg:
Renamed from
LayoutTests/svg/compositing/foreground-layer-nested-group-with-composited-child-expected.svg.
* LayoutTests/svg/compositing/segment-nested-group-with-composited-child.svg:
Renamed from
LayoutTests/svg/compositing/foreground-layer-nested-group-with-composited-child.svg.
* LayoutTests/svg/compositing/segment-no-composited-children-expected.svg:
Renamed from
LayoutTests/svg/compositing/foreground-layer-no-composited-children-expected.svg.
* LayoutTests/svg/compositing/segment-no-composited-children.svg: Renamed from
LayoutTests/svg/compositing/foreground-layer-no-composited-children.svg.
*
LayoutTests/svg/compositing/segment-noncomposited-overlapping-later-composited-expected.svg:
Renamed from
LayoutTests/svg/compositing/foreground-layer-noncomposited-overlapping-later-composited-expected.svg.
*
LayoutTests/svg/compositing/segment-noncomposited-overlapping-later-composited.svg:
Added.
* LayoutTests/svg/compositing/segment-only-composited-child-expected.svg:
Renamed from
LayoutTests/svg/compositing/foreground-layer-only-composited-child-expected.svg.
* LayoutTests/svg/compositing/segment-only-composited-child.svg: Renamed from
LayoutTests/svg/compositing/foreground-layer-only-composited-child.svg.
*
LayoutTests/svg/compositing/segment-overlapping-composited-children-expected.svg:
Renamed from
LayoutTests/svg/compositing/foreground-layer-overlapping-composited-children-expected.svg.
* LayoutTests/svg/compositing/segment-overlapping-composited-children.svg:
Renamed from
LayoutTests/svg/compositing/foreground-layer-overlapping-composited-children.svg.
*
LayoutTests/svg/compositing/segment-overlay-in-rotated-container-expected.html:
Added.
* LayoutTests/svg/compositing/segment-overlay-in-rotated-container.html: Added.
*
LayoutTests/svg/compositing/segment-overlay-in-scaled-container-expected.html:
Added.
*
LayoutTests/svg/compositing/segment-overlay-in-scaled-container-layer-tree-expected.txt:
Added.
*
LayoutTests/svg/compositing/segment-overlay-in-scaled-container-layer-tree.html:
Added.
*
LayoutTests/svg/compositing/segment-overlay-in-scaled-container-with-transformed-leaf-expected.html:
Added.
*
LayoutTests/svg/compositing/segment-overlay-in-scaled-container-with-transformed-leaf.html:
Added.
* LayoutTests/svg/compositing/segment-overlay-in-scaled-container.html: Added.
*
LayoutTests/svg/compositing/segment-overlay-in-svg-transformed-container-expected.html:
Added.
*
LayoutTests/svg/compositing/segment-overlay-in-svg-transformed-container.html:
Added.
*
LayoutTests/svg/compositing/segment-overlay-in-translated-container-expected.html:
Added.
*
LayoutTests/svg/compositing/segment-overlay-in-translated-container-layer-tree-expected.txt:
Added.
*
LayoutTests/svg/compositing/segment-overlay-in-translated-container-layer-tree.html:
Added.
* LayoutTests/svg/compositing/segment-overlay-in-translated-container.html:
Added.
*
LayoutTests/svg/compositing/segment-overlay-in-untransformed-container-expected.html:
Added.
*
LayoutTests/svg/compositing/segment-overlay-in-untransformed-container-layer-tree-expected.txt:
Added.
*
LayoutTests/svg/compositing/segment-overlay-in-untransformed-container-layer-tree.html:
Added.
* LayoutTests/svg/compositing/segment-overlay-in-untransformed-container.html:
Added.
*
LayoutTests/svg/compositing/segment-overlay-with-transformed-leaf-expected.html:
Added.
* LayoutTests/svg/compositing/segment-overlay-with-transformed-leaf.html: Added.
*
LayoutTests/svg/compositing/segment-reassociated-after-trailing-child-moved-expected.html:
Added.
*
LayoutTests/svg/compositing/segment-reassociated-after-trailing-child-moved.html:
Added.
*
LayoutTests/svg/compositing/segment-removed-after-anchor-decomposited-expected.html:
Added.
*
LayoutTests/svg/compositing/segment-removed-after-anchor-decomposited-layer-tree-expected.txt:
Added.
*
LayoutTests/svg/compositing/segment-removed-after-anchor-decomposited-layer-tree.html:
Added.
* LayoutTests/svg/compositing/segment-removed-after-anchor-decomposited.html:
Added.
*
LayoutTests/svg/compositing/segment-removed-after-anchor-element-removed-expected.html:
Added.
*
LayoutTests/svg/compositing/segment-removed-after-anchor-element-removed-layer-tree-expected.txt:
Added.
*
LayoutTests/svg/compositing/segment-removed-after-anchor-element-removed-layer-tree.html:
Added.
*
LayoutTests/svg/compositing/segment-removed-after-anchor-element-removed.html:
Added.
*
LayoutTests/svg/compositing/segment-removed-after-derived-anchor-decomposited-expected.html:
Added.
*
LayoutTests/svg/compositing/segment-removed-after-derived-anchor-decomposited-layer-tree-expected.txt:
Added.
*
LayoutTests/svg/compositing/segment-removed-after-derived-anchor-decomposited-layer-tree.html:
Added.
*
LayoutTests/svg/compositing/segment-removed-after-derived-anchor-decomposited.html:
Added.
* LayoutTests/svg/compositing/segment-removed-after-reparenting-expected.html:
Added.
*
LayoutTests/svg/compositing/segment-removed-after-reparenting-layer-tree-expected.txt:
Added.
*
LayoutTests/svg/compositing/segment-removed-after-reparenting-layer-tree.html:
Added.
* LayoutTests/svg/compositing/segment-removed-after-reparenting.html: Added.
* LayoutTests/svg/compositing/segment-single-composited-child-expected.svg:
Renamed from
LayoutTests/svg/compositing/foreground-layer-single-composited-child-expected.svg.
* LayoutTests/svg/compositing/segment-single-composited-child.svg: Renamed from
LayoutTests/svg/compositing/foreground-layer-single-composited-child.svg.
* LayoutTests/svg/compositing/segment-three-composited-children-expected.svg:
Renamed from
LayoutTests/svg/compositing/foreground-layer-three-composited-children-expected.svg.
* LayoutTests/svg/compositing/segment-three-composited-children.svg: Renamed
from LayoutTests/svg/compositing/foreground-layer-three-composited-children.svg.
* LayoutTests/svg/compositing/small-segment-in-large-container-expected.html:
Added.
* LayoutTests/svg/compositing/small-segment-in-large-container.html: Added.
*
LayoutTests/svg/compositing/svg-container-decomposite-no-stacking-context-mutation-expected.html:
Added.
*
LayoutTests/svg/compositing/svg-container-decomposite-no-stacking-context-mutation.html:
Added.
*
LayoutTests/svg/compositing/text-after-composited-anchor-slice-bounds-expected.svg:
Added.
*
LayoutTests/svg/compositing/text-after-composited-anchor-slice-bounds-layer-tree-expected.txt:
Added.
*
LayoutTests/svg/compositing/text-after-composited-anchor-slice-bounds-layer-tree.html:
Added.
* LayoutTests/svg/compositing/text-after-composited-anchor-slice-bounds.svg:
Added.
*
LayoutTests/svg/compositing/three-adjacent-derived-composited-anchors-expected.html:
Added.
* LayoutTests/svg/compositing/three-adjacent-derived-composited-anchors.html:
Added.
*
LayoutTests/svg/compositing/transform-change-repainting-no-viewBox-repaintRects-expected.txt:
* Source/WebCore/SaferCPPExpectations/UncheckedCallArgsCheckerExpectations:
* Source/WebCore/SaferCPPExpectations/UncheckedLocalVarsCheckerExpectations:
* Source/WebCore/SaferCPPExpectations/UncountedCallArgsCheckerExpectations:
* Source/WebCore/SaferCPPExpectations/UncountedLocalVarsCheckerExpectations:
* Source/WebCore/Sources.txt:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/rendering/RenderLayer.cpp:
(WebCore::RenderLayer::paintLayerContents):
(WebCore::RenderLayer::calculateClipRects const):
* Source/WebCore/rendering/RenderLayer.h:
* Source/WebCore/rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::~RenderLayerBacking):
(WebCore::RenderLayerBacking::updateDebugIndicators):
(WebCore::RenderLayerBacking::destroyGraphicsLayers):
(WebCore::RenderLayerBacking::updateAllowsBackingStoreDetaching):
(WebCore::RenderLayerBacking::updateConfiguration):
(WebCore::RenderLayerBacking::updateGeometry):
(WebCore::RenderLayerBacking::updateDrawsContent):
(WebCore::RenderLayerBacking::updateEventRegion):
(WebCore::RenderLayerBacking::clearInteractionRegions):
(WebCore::RenderLayerBacking::updatePaintingPhases):
(WebCore::RenderLayerBacking::setRequiresOwnBackingStore):
(WebCore::RenderLayerBacking::setContentsNeedDisplay):
(WebCore::RenderLayerBacking::setContentsNeedDisplayInRect):
(WebCore::RenderLayerBacking::paintIntoLayer):
(WebCore::RenderLayerBacking::paintContents):
(WebCore::RenderLayerBacking::backingStoreMemoryEstimate const):
* Source/WebCore/rendering/RenderLayerBacking.h:
* Source/WebCore/rendering/RenderLayerBackingSVGAdditions.cpp: Added.
(WebCore::RenderLayerBacking::updateSVGSegmentLayers):
(WebCore::RenderLayerBacking::clearSVGSegmentLayers):
(WebCore::RenderLayerBacking::svgSegmentLayerAfterCompositedChild const):
(WebCore::RenderLayerBacking::svgSegmentRangeForGraphicsLayer const):
(WebCore::RenderLayerBacking::computeSVGSegmentBounds):
(WebCore::RenderLayerBacking::updateSVGSegmentLayerGeometry):
(WebCore::RenderLayerBacking::svgSegmentHasInlineContent):
(WebCore::RenderLayerBacking::updateSVGSegmentLayersDrawsContent):
(WebCore::RenderLayerBacking::setSVGSegmentLayersNeedDisplayInRect):
* Source/WebCore/rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::updateRepaintRectsAfterCompositingChange):
(WebCore::RenderLayerCompositor::computeCompositingRequirements):
(WebCore::RenderLayerCompositor::updateBackingAndHierarchy):
(WebCore::RenderLayerCompositor::updateBacking):
(WebCore::RenderLayerCompositor::canBeComposited const):
(WebCore::RenderLayerCompositor::requiresCompositingForTransform const):
(WebCore::RenderLayerCompositor::needsContentsCompositingLayer const):
(WebCore::RenderLayerCompositor::layerHas3DContent const):
(WebCore::styleHas3DTransformOperation): Deleted.
* Source/WebCore/rendering/RenderLayerCompositor.h:
* Source/WebCore/rendering/RenderLayerModelObject.cpp:
(WebCore::RenderLayerModelObject::createLayerIfAllowed):
(WebCore::RenderLayerModelObject::removeOnlyThisLayerWithRepaint):
(WebCore::RenderLayerModelObject::styleDidChange):
* Source/WebCore/rendering/RenderLayerModelObject.h:
* Source/WebCore/rendering/RenderLayerSVGAdditions.cpp:
(WebCore::RenderLayer::paintForegroundChildrenForSVG):
(WebCore::RenderLayer::isCompositedSVGPaintOrderChild const):
(WebCore::RenderLayer::paintsInlineInSVGContainer const):
(WebCore::RenderLayer::isFlattenedByEnclosingSVGReferenceFilter const):
(WebCore::RenderLayer::dirtyChildrenInDOMOrderForSVG):
(WebCore::RenderLayer::invalidateEnclosingSVGContainerSegmentation):
(WebCore::RenderLayer::paintChildrenInDOMOrderForSVG):
* Source/WebCore/rendering/svg/RenderSVGBlock.h:
* Source/WebCore/rendering/svg/RenderSVGViewportContainer.cpp:
(WebCore::RenderSVGViewportContainer::updateFromStyle):
(WebCore::RenderSVGViewportContainer::overflowClipRect const):
* Source/WebCore/style/computed/StyleComputedStyle+GettersInlines.h:
(WebCore::Style::ComputedStyle::has3DTransformOperation const):
* Source/WebCore/style/computed/StyleComputedStyle.h:
Canonical link: https://commits.webkit.org/315674@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications