mirror of
https://github.com/servo/servo.git
synced 2025-08-03 04:30:10 +01:00
style: Don't share styles when an element has animations applied to it.
We already avoid putting styles in the shared style cache for an element that has animations[1] but if we are doing the initial style of two siblings where the _second_ has animations applied, there is nothing to stop us from trying to share with the first (un-animated) element. This patch adds a check to prevent sharing in that case since sharing style between animated elements is unsound for the reasons described in [1]. A number of tests including: testing/web-platform/tests/web-animations/animation-model/animation-types/visibility.html will fail without this fix once we remove the style flush from KeyframeEffect::SetKeyframes later in this patch series. [1] https://searchfox.org/mozilla-central/rev/6e3cc153566f5f288ae768a2172385b8436d61dd/servo/components/style/sharing/mod.rs#597 Differential Revision: https://phabricator.services.mozilla.com/D18913
This commit is contained in:
parent
07cb325402
commit
71d9fe5d60
1 changed files with 5 additions and 0 deletions
|
@ -766,6 +766,11 @@ impl<E: TElement> StyleSharingCache<E> {
|
|||
return None;
|
||||
}
|
||||
|
||||
if target.element.has_animations() {
|
||||
trace!("Miss: Has Animations");
|
||||
return None;
|
||||
}
|
||||
|
||||
if target.matches_user_and_author_rules() !=
|
||||
candidate.element.matches_user_and_author_rules()
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue