[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