Bug 1463605 - Set mMayHaveOpacityAnimation and mMayHaveTransformAnimation flag to continuation or IB split sibling frames too. r?birtles draft
authorHiroyuki Ikezoe <hikezoe@mozilla.com>
Wed, 23 May 2018 18:15:12 +0900
changeset 798670 617058506bb9bd96050c088832f7853cf5dbf76f
parent 798503 96a6ea5ea3468b4c9e20ff8d9795a7ef136213a9
child 798671 30afd4222e9be5138ed5ebb73f1158313ff760cf
push id110818
push userbmo:hikezoe@mozilla.com
push dateWed, 23 May 2018 09:17:42 +0000
reviewersbirtles
bugs1463605
milestone62.0a1
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