Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: d83537abc7e7901653c42553b3f7d71505f5dbc8
      
https://github.com/WebKit/WebKit/commit/d83537abc7e7901653c42553b3f7d71505f5dbc8
  Author: Antti Koivisto <[email protected]>
  Date:   2024-03-13 (Wed, 13 Mar 2024)

  Changed paths:
    A 
LayoutTests/fast/animation/animation-with-DOM-mutation-and-display-none-expected.html
    A 
LayoutTests/fast/animation/animation-with-DOM-mutation-and-display-none.html
    M Source/WebCore/style/StyleTreeResolver.cpp

  Log Message:
  -----------
  REGRESSION (iOS 17.4, macOS 14.4, 270890@main): Animating element with 
display: none still remain visible
https://bugs.webkit.org/show_bug.cgi?id=270697
rdar://124289418

Reviewed by Antoine Quint and Darin Adler.

The page sets the root of the overlay containing tree to display:none and 
immediately (before style recall) reinserts
it into another position in the document, causing render tree teardown. When we 
recompute the style (applying display:none)
we don't consider it a style change since there was no existing style due to 
the earlier teardown.
In this case we fail to clear lastStyleChangeEventStyle which has been set by 
an animation on the element.

Another animation triggered style recalc comes along, takes the optimized 
AnimationOnly code path and picks up
the lastStyleChangeEventStyle (which doesn't have display:none) bringing the 
element back alive.

* 
LayoutTests/fast/animation/animation-with-DOM-mutation-and-display-none-expected.html:
 Added.
* LayoutTests/fast/animation/animation-with-DOM-mutation-and-display-none.html: 
Added.
* Source/WebCore/style/StyleTreeResolver.cpp:
(WebCore::Style::TreeResolver::resolveElement):

Fix by clearing lastStyleChangeEventStyle also when we have a style change to 
display:none without existing renderer.

Canonical link: https://commits.webkit.org/276035@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