Bug 1463605 - Set mMayHaveOpacityAnimation and mMayHaveTransformAnimation flag to continuation or IB split sibling frames too. r=birtles
authorHiroyuki Ikezoe <hikezoe@mozilla.com>
Wed, 23 May 2018 18:15:12 +0900
changeset 419628 3025063ca800a38bf0f3b30e577806f67cf3dbe8
parent 419627 b1f8ccb26696d4f347e1ea5fd41576564fe2ab9b
child 419629 9dacb05350d80c4e5591de4d7f10c766b969103e
push id34040
push userebalazs@mozilla.com
push dateThu, 24 May 2018 09:37:05 +0000
treeherdermozilla-central@c411ccb6bb4a [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersbirtles
bugs1463605
milestone62.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1463605 - Set mMayHaveOpacityAnimation and mMayHaveTransformAnimation flag to continuation or IB split sibling frames too. r=birtles Without this fix layout/reftests/css-animations/ib-split-sibling-opacity.html would have failed if the next change in this patch series is applied. MozReview-Commit-ID: CFNXePkXuOs
dom/animation/KeyframeEffect.cpp
--- a/dom/animation/KeyframeEffect.cpp
+++ b/dom/animation/KeyframeEffect.cpp
@@ -1780,22 +1780,24 @@ KeyframeEffect::UpdateEffectSet(EffectSe
                                          mTarget->mPseudoType);
   if (!effectSet) {
     return;
   }
 
   nsIFrame* frame = GetStyleFrame();
   if (HasAnimationOfProperty(eCSSProperty_opacity)) {
     effectSet->SetMayHaveOpacityAnimation();
-    if (frame) {
+    while (frame) {
       frame->SetMayHaveOpacityAnimation();
+      frame = nsLayoutUtils::GetNextContinuationOrIBSplitSibling(frame);
     }
   }
   if (HasAnimationOfProperty(eCSSProperty_transform)) {
     effectSet->SetMayHaveTransformAnimation();
-    if (frame) {
+    while (frame) {
       frame->SetMayHaveTransformAnimation();
+      frame = nsLayoutUtils::GetNextContinuationOrIBSplitSibling(frame);
     }
   }
 }
 
 } // namespace dom
 } // namespace mozilla