corner-shape: non-round corner shapes are ignored for composited content (<video>, images, composited descendants) - #71079
Conversation
|
EWS run on previous version of this PR (hash 4157550) Details |
4157550 to
c0af633
Compare
|
EWS run on previous version of this PR (hash c0af633) Details |
c0af633 to
89177bc
Compare
|
EWS run on previous version of this PR (hash 89177bc) Details |
89177bc to
e94d80f
Compare
|
EWS run on previous version of this PR (hash e94d80f) Details |
e94d80f to
f38a271
Compare
|
EWS run on previous version of this PR (hash f38a271) Details |
f38a271 to
ab0c585
Compare
|
EWS run on previous version of this PR (hash ab0c585) Details |
ab0c585 to
979fc43
Compare
|
EWS run on previous version of this PR (hash 979fc43) Details |
979fc43 to
a83ff59
Compare
|
EWS run on previous version of this PR (hash a83ff59) Details |
a83ff59 to
03fbc19
Compare
4a69c45 to
69d607e
Compare
69d607e to
b51259f
Compare
|
EWS run on previous version of this PR (hash b51259f) Details |
b51259f to
d80fa83
Compare
|
EWS run on previous version of this PR (hash d80fa83) Details |
d80fa83 to
349a17b
Compare
|
EWS run on previous version of this PR (hash 349a17b) Details |
349a17b to
9703b9e
Compare
|
EWS run on previous version of this PR (hash 9703b9e) Details |
9703b9e to
b7ab564
Compare
|
EWS run on current version of this PR (hash b7ab564) Details |
…ent (<video>, images, composited descendants) https://bugs.webkit.org/show_bug.cgi?id=321194 rdar://184258503 Reviewed by Simon Fraser. This adds a shape mask for the cases the layer can clip itself, and refuses the directly-composited fast paths for the cases it can't * LayoutTests/TestExpectations: * Source/WebCore/rendering/LayerAncestorClippingStack.h: * Source/WebCore/rendering/RenderLayerBacking.cpp: (WebCore::RenderLayerBacking::~RenderLayerBacking): (WebCore::RenderLayerBacking::updateBackdropFiltersGeometry): (WebCore::RenderLayerBacking::updateAppleVisualEffect): (WebCore::RenderLayerBacking::updateConfigurationAfterStyleChange): (WebCore::RenderLayerBacking::updateConfiguration): (WebCore::contentsClippingRectForCornerShape): (WebCore::RenderLayerBacking::updateGeometry): (WebCore::RenderLayerBacking::updateMaskingLayerGeometry): (WebCore::RenderLayerBacking::updateContentsRects): (WebCore::boxNeedingShapeMaskForClip): (WebCore::RenderLayerBacking::ensureClippingStackLayers): (WebCore::RenderLayerBacking::removeClippingStackLayers): (WebCore::RenderLayerBacking::updateClippingStackLayerGeometry): (WebCore::RenderLayerBacking::needsCornerShapeMask const): (WebCore::RenderLayerBacking::updateMaskingLayer): (WebCore::supportsDirectlyCompositedBoxDecorations): (WebCore::RenderLayerBacking::isDirectlyCompositedImage const): (WebCore::setContentsClipShapePath): * Source/WebCore/rendering/RenderLayerBacking.h: * Source/WebCore/rendering/style/BorderData.cpp: (WebCore::BorderData::hasNonRoundCornerShape const): (WebCore::BorderData::hasCornerShapeOutsideBorderRadius const): (WebCore::BorderData::hasCornerShapeOutsideRoundedRect const): * Source/WebCore/rendering/style/BorderData.h: * LayoutTests/compositing/video/corner-shape-video-expected.html: Added. * LayoutTests/compositing/video/corner-shape-video-overflow-expected.html: Added. * LayoutTests/compositing/video/corner-shape-video-overflow.html: Added. * LayoutTests/compositing/video/corner-shape-video.html: Added. * Source/WebCore/rendering/LayerAncestorClippingStack.cpp: (WebCore::LayerAncestorClippingStack::LayerAncestorClippingStack): (WebCore::LayerAncestorClippingStack::updateWithClipData): (WebCore::operator<<): * Source/WebCore/platform/graphics/GraphicsLayer.h: (WebCore::GraphicsLayer::contentsClipShapePath const): (WebCore::GraphicsLayer::setContentsClipShapePath): * Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp: (WebCore::contentsClipShapePathsAreEqual): (WebCore::GraphicsLayerCA::setContentsClipShapePath): (WebCore::GraphicsLayerCA::ensureStructuralLayer): (WebCore::GraphicsLayerCA::setShapeLayerPath): * Source/WebCore/platform/graphics/ca/GraphicsLayerCA.h: * LayoutTests/compositing/corner-shape-ancestor-clip-expected.html: Added. * LayoutTests/compositing/corner-shape-ancestor-clip.html: Added. * LayoutTests/compositing/corner-shape-mask-layer-offset-expected.html: Added. * LayoutTests/compositing/corner-shape-mask-layer-offset.html: Added. * LayoutTests/compositing/corner-shape-ancestor-clip-shape-mask-expected.txt: Added. * LayoutTests/compositing/corner-shape-ancestor-clip-shape-mask.html: Added. * LayoutTests/fast/scrolling/corner-shape-nested-clips-overflow-scroll-expected.html: Added. * LayoutTests/fast/scrolling/corner-shape-nested-clips-overflow-scroll.html: Added. * LayoutTests/fast/scrolling/corner-shape-overflow-scroll-uneven-radii-expected.html: Added. * LayoutTests/fast/scrolling/corner-shape-overflow-scroll-uneven-radii.html: Added. * Source/WebCore/platform/graphics/skia/SkiaCompositingLayer.cpp: (WebCore::SkiaCompositingLayer::paintContents): (WebCore::SkiaCompositingLayer::paintSelfAndChildren): * Source/WebCore/platform/graphics/skia/SkiaCompositingLayer.h: * Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayer.cpp: (WebCore::CoordinatedPlatformLayer::setContentsClipShapePath): (WebCore::CoordinatedPlatformLayer::flushCompositingStateOnTarget): (WebCore::CoordinatedPlatformLayer::flushCompositingStateOnSkiaTarget): * Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayer.h: * Source/WebCore/platform/graphics/texmap/coordinated/GraphicsLayerCoordinated.cpp: (WebCore::GraphicsLayerCoordinated::setContentsClipShapePath): (WebCore::GraphicsLayerCoordinated::setShapeLayerPath): (WebCore::GraphicsLayerCoordinated::commitLayerChanges): * Source/WebCore/platform/graphics/texmap/coordinated/GraphicsLayerCoordinated.h: Canonical link: https://commits.webkit.org/319257@main
b7ab564 to
e303a71
Compare
|
Committed 319257@main (e303a71): https://commits.webkit.org/319257@main Reviewed commits have been landed. Closing PR #71079 and removing active labels. |
🧪 ios-wk2-wpt
🧪 ios-wk2
e303a71
b7ab564
🧪 win-tests