Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 319ecb9c28e377b3bd11e6cbd878008f84e87bb7
      
https://github.com/WebKit/WebKit/commit/319ecb9c28e377b3bd11e6cbd878008f84e87bb7
  Author: Antoine Quint <[email protected]>
  Date:   2024-03-08 (Fri, 08 Mar 2024)

  Changed paths:
    A 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/empty-pseudo-class-with-animation-expected.txt
    A 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/empty-pseudo-class-with-animation.html
    M Source/WebCore/style/StyleTreeResolver.cpp

  Log Message:
  -----------
  :empty selector with animation not working properly
https://bugs.webkit.org/show_bug.cgi?id=269051
rdar://122838142

Reviewed by Antti Koivisto.

If an element is targeted by an animation, it may cause style updates with an 
`AnimationOnly` resolution type.
When `Style::TreeResolver::resolveElement()` is called for that element, 
`resetStyleRelations()` is called on
that element first under `Style::TreeResolver::resolveComposedTree()` while 
iterating through the composed tree.

If an `:empty` pseudo-class rule matches that element, that call to 
`resetStyleRelations()` will remove the
`StyleAffectedByEmpty` flag on that element, but it will not be recomputed 
under `resolveElement()` because when
`styleForStyleable()` is called the `AnimationOnly` resolution type will mean 
that we clone the cached last style
resolution style to return the `ResolvedStyle` value, clear of any relations.

We now avoid calling `resetStyleRelations()` if the resolution type is 
`AnimationOnly`, ensuring that relations
are preserved throughout animation updates.

* 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/empty-pseudo-class-with-animation-expected.txt:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/empty-pseudo-class-with-animation.html:
 Added.
* Source/WebCore/style/StyleTreeResolver.cpp:
(WebCore::Style::TreeResolver::resolveComposedTree):

Canonical link: https://commits.webkit.org/275832@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to