Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 75e7dc79cac94cf706b9f77f016cbd4c805b4719 https://github.com/WebKit/WebKit/commit/75e7dc79cac94cf706b9f77f016cbd4c805b4719 Author: Matt Woodrow <mattwood...@apple.com> Date: 2023-09-19 (Tue, 19 Sep 2023)
Changed paths: M LayoutTests/css3/filters/backdrop/backdrop-filter-does-not-size-properly-absolute-expected.txt M LayoutTests/css3/filters/backdrop/backdrop-filter-does-not-size-properly-border-and-padding-expected.txt M LayoutTests/css3/filters/backdrop/backdrop-filter-with-cliprect-expected.txt M LayoutTests/css3/filters/backdrop/backdrop-filter-with-mask-expected.txt M LayoutTests/css3/filters/backdrop/backdrop-with-visibility-hidden-changing-expected.txt M LayoutTests/css3/filters/backdrop/backdrop-with-visibility-hidden-expected.txt M LayoutTests/css3/filters/backdrop/resource-use-add-more-layers-expected.txt M LayoutTests/css3/filters/backdrop/resource-use-excessive-expected.txt M LayoutTests/css3/filters/backdrop/resource-use-ok-expected.txt M LayoutTests/css3/filters/backdrop/resource-use-remove-some-layers-expected.txt M Source/JavaScriptCore/inspector/protocol/LayerTree.json M Source/WebCore/inspector/agents/InspectorLayerTreeAgent.cpp M Source/WebCore/platform/graphics/GraphicsLayer.cpp M Source/WebCore/platform/graphics/GraphicsLayer.h M Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp M Source/WebCore/platform/graphics/ca/GraphicsLayerCA.h M Source/WebCore/platform/graphics/ca/PlatformCALayer.h M Source/WebCore/platform/graphics/ca/cocoa/PlatformCALayerCocoa.h M Source/WebCore/platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm M Source/WebCore/rendering/RenderLayer.cpp M Source/WebCore/rendering/RenderLayer.h M Source/WebCore/rendering/RenderLayerBacking.cpp M Source/WebCore/rendering/RenderLayerBacking.h M Source/WebCore/rendering/RenderLayerCompositor.cpp M Source/WebCore/rendering/RenderLayerCompositor.h M Source/WebCore/rendering/style/WillChangeData.cpp M Source/WebCore/rendering/style/WillChangeData.h M Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js M Source/WebInspectorUI/UserInterface/Views/LayerTreeDetailsSidebarPanel.js M Source/WebKit/Shared/RemoteLayerTree/LayerProperties.h M Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTree.serialization.in M Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm M Source/WebKit/WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.h M Source/WebKit/WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.mm Log Message: ----------- Implement the 'backdrop root' concept for backdrop-filter. https://bugs.webkit.org/show_bug.cgi?id=261717 <rdar://115703346> Reviewed by Simon Fraser. https://drafts.fxtf.org/filter-effects-2/#backdrop-root Backdrop-filter should only uses the backdrop of the content behind up to the nearest backdrop-root, which isn't yet implemented. Unfortunately no new WPT passes yet, due to other platform rendering issues, but this gets us much closer to spec compliance. * Source/JavaScriptCore/inspector/protocol/LayerTree.json: * Source/WebCore/inspector/agents/InspectorLayerTreeAgent.cpp: (WebCore::InspectorLayerTreeAgent::reasonsForCompositingLayer): * Source/WebCore/platform/graphics/GraphicsLayer.cpp: (WebCore::GraphicsLayer::GraphicsLayer): * Source/WebCore/platform/graphics/GraphicsLayer.h: (WebCore::GraphicsLayer::setIsBackdropRoot): (WebCore::GraphicsLayer::isBackdropRoot const): * Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp: (WebCore::GraphicsLayerCA::setIsBackdropRoot): (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers): (WebCore::GraphicsLayerCA::updateBackdropRoot): (WebCore::GraphicsLayerCA::ensureStructuralLayer): (WebCore::GraphicsLayerCA::layerChangeAsString): (WebCore::GraphicsLayerCA::changeLayerTypeTo): * Source/WebCore/platform/graphics/ca/GraphicsLayerCA.h: * Source/WebCore/platform/graphics/ca/PlatformCALayer.h: * Source/WebCore/platform/graphics/ca/cocoa/PlatformCALayerCocoa.h: * Source/WebCore/platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm: (WebCore::PlatformCALayerCocoa::setIsBackdropRoot): * Source/WebCore/rendering/RenderLayer.cpp: (WebCore::RenderLayer::RenderLayer): (WebCore::RenderLayer::shouldBeBackdropRootCandidate const): (WebCore::RenderLayer::setIsBackdropRootCandidate): (WebCore::RenderLayer::calculateClipRects const): * Source/WebCore/rendering/RenderLayer.h: (WebCore::RenderLayer::hasBackdropFilterDescendantsWithoutRoot const): (WebCore::RenderLayer::setHasBackdropFilterDescendantsWithoutRoot): (WebCore::RenderLayer::isBackdropRootCandidate const): (WebCore::RenderLayer::isBackdropRoot const): * Source/WebCore/rendering/RenderLayerBacking.cpp: (WebCore::RenderLayerBacking::createPrimaryGraphicsLayer): (WebCore::RenderLayerBacking::updateBackdropRoot): (WebCore::RenderLayerBacking::updateConfigurationAfterStyleChange): (WebCore::RenderLayerBacking::updateConfiguration): (WebCore::RenderLayerBacking::updateGeometry): * Source/WebCore/rendering/RenderLayerBacking.h: * Source/WebCore/rendering/RenderLayerCompositor.cpp: (WebCore::RenderLayerCompositor::CompositingState::stateForPaintOrderChildren const): (WebCore::RenderLayerCompositor::CompositingState::updateWithDescendantStateAndLayer): (WebCore::RenderLayerCompositor::computeCompositingRequirements): (WebCore::RenderLayerCompositor::reasonsForCompositing const): (WebCore::compositingReasonToString): (WebCore::RenderLayerCompositor::computeIndirectCompositingReason const): * Source/WebCore/rendering/RenderLayerCompositor.h: * Source/WebCore/rendering/style/WillChangeData.cpp: (WebCore::WillChangeData::canBeBackdropRoot const): * Source/WebCore/rendering/style/WillChangeData.h: * Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js: * Source/WebInspectorUI/UserInterface/Views/LayerTreeDetailsSidebarPanel.js: (WI.LayerTreeDetailsSidebarPanel.prototype._populateListOfCompositingReasons): (WI.LayerTreeDetailsSidebarPanel): * Source/WebKit/Shared/RemoteLayerTree/LayerProperties.h: * Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTree.serialization.in: * Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm: (WebKit::RemoteLayerTreePropertyApplier::applyPropertiesToLayer): * Source/WebKit/WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.h: * Source/WebKit/WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.mm: (WebKit::PlatformCALayerRemote::setIsBackdropRoot): Canonical link: https://commits.webkit.org/268166@main _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes