[webkit-changes] [WebKit/WebKit] 7ffc7f: Backdrop-filter forces compositing on the root ele...
mattwoodrow
noreply at github.com
Wed Mar 27 13:35:46 PDT 2024
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 7ffc7f9fd02ae05936e368c7a7c2d6774ff1f6a9
https://github.com/WebKit/WebKit/commit/7ffc7f9fd02ae05936e368c7a7c2d6774ff1f6a9
Author: Matt Woodrow <mattwoodrow at apple.com>
Date: 2024-03-27 (Wed, 27 Mar 2024)
Changed paths:
A LayoutTests/compositing/filters/backdrop-filter-root-element-no-backdrop-root-expected.txt
A LayoutTests/compositing/filters/backdrop-filter-root-element-no-backdrop-root.html
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
A LayoutTests/platform/glib/compositing/filters/backdrop-filter-root-element-no-backdrop-root-expected.txt
M LayoutTests/platform/glib/css3/filters/backdrop/backdrop-filter-does-not-size-properly-absolute-expected.txt
M LayoutTests/platform/glib/css3/filters/backdrop/backdrop-filter-does-not-size-properly-border-and-padding-expected.txt
M LayoutTests/platform/glib/css3/filters/backdrop/backdrop-filter-with-cliprect-expected.txt
M LayoutTests/platform/glib/css3/filters/backdrop/backdrop-filter-with-mask-expected.txt
M LayoutTests/platform/glib/css3/filters/backdrop/backdrop-with-visibility-hidden-changing-expected.txt
M LayoutTests/platform/glib/css3/filters/backdrop/backdrop-with-visibility-hidden-expected.txt
M LayoutTests/platform/glib/css3/filters/backdrop/resource-use-add-more-layers-expected.txt
M LayoutTests/platform/glib/css3/filters/backdrop/resource-use-excessive-expected.txt
M LayoutTests/platform/glib/css3/filters/backdrop/resource-use-ok-expected.txt
M LayoutTests/platform/glib/css3/filters/backdrop/resource-use-remove-some-layers-expected.txt
M LayoutTests/platform/ios/css3/filters/backdrop/backdrop-filter-does-not-size-properly-absolute-expected.txt
M LayoutTests/platform/ios/css3/filters/backdrop/backdrop-filter-with-cliprect-expected.txt
M LayoutTests/platform/ios/css3/filters/backdrop/backdrop-filter-with-mask-expected.txt
M LayoutTests/platform/mac-wk1/TestExpectations
A LayoutTests/platform/mac-wk1/compositing/layer-creation/will-change-on-normal-flow-content-expected.txt
M LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt
M LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/css/css-cascade/all-prop-revert-layer-expected.txt
A LayoutTests/platform/mac-wk1/layer-creation/will-change-on-normal-flow-content-expected.txt
M Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml
M Source/WebCore/rendering/RenderLayer.cpp
M Source/WebCore/rendering/RenderLayerBacking.cpp
M Source/WebCore/rendering/RenderView.cpp
M Tools/DumpRenderTree/TestOptions.cpp
Log Message:
-----------
Backdrop-filter forces compositing on the root element and uses extra memory.
https://bugs.webkit.org/show_bug.cgi?id=271340
<rdar://123831236>
Reviewed by Simon Fraser.
The backdrop-filter spec requires that the root element be a backdrop root, and creates a separate
compositing layer, separate from the base background color of the view. However, most tests are
expecting the base white color to be included in the captured backdrop.
I've filed https://github.com/w3c/fxtf-drafts/issues/557 to try resolve the spec/implementation mismatch.
This change makes the root element only a backdrop root if it also has one of the other grouping
graphics properties. Notably not included is the 'view-transition-name' property, since this is
present on the root as a default UA style.
It also changes RenderView::rootElementShouldPaintBaseBackground so that we don't paint the base
background color as part of the root element's background, if we did end up making the root element
a backdrop root.
It also ensures the default value of CSSUnprefixedBackdropFilterEnabled is always false for
WebKitLegacy, rather than correctly support root background rendering with backdrop filter.
* LayoutTests/compositing/filters/backdrop-filter-root-element-no-backdrop-root-expected.txt: Added.
* LayoutTests/compositing/filters/backdrop-filter-root-element-no-backdrop-root.html: Added.
* LayoutTests/css3/filters/backdrop/backdrop-filter-does-not-size-properly-absolute-expected.txt:
* LayoutTests/css3/filters/backdrop/backdrop-filter-does-not-size-properly-border-and-padding-expected.txt:
* LayoutTests/css3/filters/backdrop/backdrop-filter-with-cliprect-expected.txt:
* LayoutTests/css3/filters/backdrop/backdrop-filter-with-mask-expected.txt:
* LayoutTests/css3/filters/backdrop/backdrop-with-visibility-hidden-changing-expected.txt:
* LayoutTests/css3/filters/backdrop/backdrop-with-visibility-hidden-expected.txt:
* LayoutTests/css3/filters/backdrop/resource-use-add-more-layers-expected.txt:
* LayoutTests/css3/filters/backdrop/resource-use-excessive-expected.txt:
* LayoutTests/css3/filters/backdrop/resource-use-ok-expected.txt:
* LayoutTests/css3/filters/backdrop/resource-use-remove-some-layers-expected.txt:
* LayoutTests/platform/glib/compositing/filters/backdrop-filter-root-element-no-backdrop-root-expected.txt: Added.
* LayoutTests/platform/glib/css3/filters/backdrop/backdrop-filter-does-not-size-properly-absolute-expected.txt:
* LayoutTests/platform/glib/css3/filters/backdrop/backdrop-filter-does-not-size-properly-border-and-padding-expected.txt:
* LayoutTests/platform/glib/css3/filters/backdrop/backdrop-filter-with-cliprect-expected.txt:
* LayoutTests/platform/glib/css3/filters/backdrop/backdrop-filter-with-mask-expected.txt:
* LayoutTests/platform/glib/css3/filters/backdrop/backdrop-with-visibility-hidden-changing-expected.txt:
* LayoutTests/platform/glib/css3/filters/backdrop/backdrop-with-visibility-hidden-expected.txt:
* LayoutTests/platform/glib/css3/filters/backdrop/resource-use-add-more-layers-expected.txt:
* LayoutTests/platform/glib/css3/filters/backdrop/resource-use-excessive-expected.txt:
* LayoutTests/platform/glib/css3/filters/backdrop/resource-use-ok-expected.txt:
* LayoutTests/platform/glib/css3/filters/backdrop/resource-use-remove-some-layers-expected.txt:
* LayoutTests/platform/ios/css3/filters/backdrop/backdrop-filter-does-not-size-properly-absolute-expected.txt:
* LayoutTests/platform/ios/css3/filters/backdrop/backdrop-filter-with-cliprect-expected.txt:
* LayoutTests/platform/ios/css3/filters/backdrop/backdrop-filter-with-mask-expected.txt:
* LayoutTests/platform/mac-wk1/TestExpectations:
* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:
* Source/WebCore/rendering/RenderLayer.cpp:
(WebCore::RenderLayer::computeCanBeBackdropRoot const):
* Source/WebCore/rendering/RenderView.cpp:
(WebCore::RenderView::rootElementShouldPaintBaseBackground const):
Canonical link: https://commits.webkit.org/276749@main
To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications
More information about the webkit-changes
mailing list