Created attachment 280097 [details]
If an element that has a backdrop-filter as well as a clip-path applied to it has a reflection, the reflection does not appear.
I have it working but for some reason the background color is missing in the reflection until I resize a window, which I assume is because that causes a layout.
This is a lot trickier than I thought at first. To get this to work, we need to do this:
- in PlatformCALayerCocoa::clone(), also call setShapePath() when we're dealing with a LayerTypeShapeLayer
- in GraphicsLayerCA::fetchCloneLayers(), clone the mask layer in case we have both a backdrop and a mask and set the cloned mask to the cloned backdrop
But this doesn't fully fix the issue, because the way we clone the mask in GraphicsLayerCA::updateLayerMask() isn't quite correct. Ideally, we would clone the mask's PlatformCALayer independently in GraphicsLayerCA::updateLayerMask() and GraphicsLayerCA::fetchCloneLayers(), but this is made difficult due to the mask layer being touched from RenderLayerBacking and due to not having a way to get to the backdrop clone from GraphicsLayerCA since this is all internal to PlatformCALayer.