Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: af30a9bb6eef26b7e5f32b8311ecc0d9ac7df8c1
https://github.com/WebKit/WebKit/commit/af30a9bb6eef26b7e5f32b8311ecc0d9ac7df8c1
Author: Nikolas Zimmermann <[email protected]>
Date: 2023-10-07 (Sat, 07 Oct 2023)
Changed paths:
A
LayoutTests/platform/ios/svg/compositing/anonymous-RenderSVGViewportContainer-no-repaints-expected.txt
A
LayoutTests/platform/mac-wk1/svg/compositing/transform-change-repainting-no-viewBox-repaintRects-expected.txt
A
LayoutTests/platform/mac-wk1/svg/compositing/transform-change-repainting-viewBox-repaintRects-expected.txt
A
LayoutTests/svg/compositing/anonymous-RenderSVGViewportContainer-no-repaints-expected.txt
A
LayoutTests/svg/compositing/anonymous-RenderSVGViewportContainer-no-repaints.html
A
LayoutTests/svg/compositing/transform-change-repainting-no-viewBox-expected.html
A
LayoutTests/svg/compositing/transform-change-repainting-no-viewBox-repaintRects-expected.txt
A
LayoutTests/svg/compositing/transform-change-repainting-no-viewBox-repaintRects.html
A LayoutTests/svg/compositing/transform-change-repainting-no-viewBox.html
A
LayoutTests/svg/compositing/transform-change-repainting-viewBox-expected.html
A
LayoutTests/svg/compositing/transform-change-repainting-viewBox-repaintRects-expected.txt
A
LayoutTests/svg/compositing/transform-change-repainting-viewBox-repaintRects.html
A LayoutTests/svg/compositing/transform-change-repainting-viewBox.html
M Source/WebCore/rendering/RenderLayer.cpp
Log Message:
-----------
[LBSE] Errorous/unnecessary repainting when viewBox is used on <svg> elements
https://bugs.webkit.org/show_bug.cgi?id=258351
Reviewed by Rob Buis.
The anonymous RenderSVGViewportContainer, that encloses the entire SVG render
tree,
caused errorous repaints whenever the outermost <svg> specified a viewBox
attribute.
RenderLayerBacking::isSimpleContainerCompositingLayer() returned 'false' for the
anyonmous RenderSVGViewportContainer, as it advertized itself as
'paintsContents()=true',
which is incorrect, since it does not paint on its own.
Alter RenderLayer::computeHasVisibleContent() to return false for the anonymous
RenderSVGViewportContainer, similar to the existing condition, that prevents
repaints for layers that have a 'RenderSVGHiddenContainer' ancestor in the
render
tree hierarchy.
Covered by new tests (graphics layer tree dump will showed 'drawsContent 1'
before and
'contentsVisible 0' after this change for the anonymous
RenderSVGViewportContainer layer).
*
LayoutTests/platform/ios/svg/compositing/anonymous-RenderSVGViewportContainer-no-repaints-expected.txt:
Added.
Taken from iOS 16 Simulator EWS build -- scrollbars on iOS influence the
GraphicsLayer tree dump, so this needs
a platform specific result.
*
LayoutTests/platform/mac-wk1/svg/compositing/transform-change-repainting-no-viewBox-repaintRects-expected.txt:
Added.
*
LayoutTests/platform/mac-wk1/svg/compositing/transform-change-repainting-viewBox-repaintRects-expected.txt:
Added.
Legacy WK1 exposes individual repainting bugs -- add an exception instead of
skipping to document this.
*
LayoutTests/svg/compositing/anonymous-RenderSVGViewportContainer-no-repaints-expected.txt:
Added.
*
LayoutTests/svg/compositing/anonymous-RenderSVGViewportContainer-no-repaints.html:
Added.
*
LayoutTests/svg/compositing/transform-change-repainting-no-viewBox-expected.html:
Added.
*
LayoutTests/svg/compositing/transform-change-repainting-no-viewBox-repaintRects-expected.txt:
Added.
*
LayoutTests/svg/compositing/transform-change-repainting-no-viewBox-repaintRects.html:
Added.
* LayoutTests/svg/compositing/transform-change-repainting-no-viewBox.html:
Added.
*
LayoutTests/svg/compositing/transform-change-repainting-viewBox-expected.html:
Added.
*
LayoutTests/svg/compositing/transform-change-repainting-viewBox-repaintRects-expected.txt:
Added.
*
LayoutTests/svg/compositing/transform-change-repainting-viewBox-repaintRects.html:
Added.
* LayoutTests/svg/compositing/transform-change-repainting-viewBox.html: Added.
* Source/WebCore/rendering/RenderLayer.cpp:
(WebCore::RenderLayer::computeHasVisibleContent const):
Canonical link: https://commits.webkit.org/269034@main
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes